Friday, May 29, 2026

[389-users] Re: Fwd: retrieving 75K objects each with 77 attributes vs. all attributes

On Fri, May 29, 2026 at 6:46 AM Pierre Rogier <progier@redhat.com> wrote: > > Hi Bob, > > The difference between using allids and providing a list of 77 attributes is indeed when determining the list of attributes to send. > i.e calling send_all_attrs instead of send_specific_attrs > > in the first case it walks the attribute list of the given entry > while in the second case for the 77 attributes it iterates on all the attributes to find the searched attribute (i.e performing strcasecmp on the attribute type) > > In you case the 77 lookups spend 25 seconds more while sending less data over the network (because some attributes values are not sent) > > 75682 objects with 870191 attributes means around 12 attributes per entries > ==> most of searched attributes are not in the entry meaning that it loops on all attributes to find them. > so in average something around 75682 * [ 65 * 12 + 12 * 6 ] i.e: 64 M > strcasecmp are performed on 25 seconds > Or 2.5 M strcasecmp per seconds > IMHO that seems a bit low so there is maybe something else than pure CPU bottleneck > paging maybe, or other processes spending the bandwidth ? Thank you for your analysis. I went back to take a closer look at these ~76K objects and indeed there are approximately 77 attributes being retrieved for each object, which makes the total attributes retrieved when specifying all 77 explicitly a bit over 5.8 million. When requesting all attributes the total per object is closer to 87 attributes each. The 870191 number of total attributes I shared initially is clearly wrong, I must have come up with this number by parsing the output through sort | uniq which was incorrect. I'm guessing now that I've clarified the actual number of attributes returned from a query your strcasecmp analysis would indicate a CPU bottleneck. Thank you for sharing these details. Bob -- _______________________________________________ 389-users mailing list -- 389-users@lists.fedoraproject.org To unsubscribe send an email to 389-users-leave@lists.fedoraproject.org Fedora Code of Conduct: https://docs.fedoraproject.org/en-US/project/code-of-conduct/ List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines List Archives: https://lists.fedoraproject.org/archives/list/389-users@lists.fedoraproject.org Do not reply to spam, report it: https://forge.fedoraproject.org/infra/tickets/issues/new

No comments:

Post a Comment