#51255 performance search rate: checking if an entry is a referral is expensive
Closed: wontfix by spichugi. Opened by tbordaz.

Issue Description

During search rate, the server checks that the base search is not a referral (attribute 'ref').
Most of the time this check is useless as the base entry is not a referral. The checking of the entry is expensive. Improving this tests improves searchrate by 5%

(gdb) where
#0  0x00007f46038ac470 in attrlist_find 
#1  0x00007f46038c6046 in slapi_entry_attr_find 
#2  0x00007f45f599f97e in check_entry_for_referral 
    at ldap/servers/slapd/back-ldbm/findentry.c:35
#3  0x00007f45f599fe5f in find_entry_internal_dn 
#4  0x00007f45f599fe5f in find_entry_internal 
    at ldap/servers/slapd/back-ldbm/findentry.c:322
#5  0x00007f45f599fe5f in find_entry_internal 
    at ldap/servers/slapd/back-ldbm/findentry.c:302
#6  0x00007f45f59a02bf in find_entry 
#7  0x00007f45f59d05b4 in ldbm_back_search 
#8  0x00007f46038fec2b in op_shared_search 
#9  0x000055a1fe0278f3 in do_search 
#10 0x000055a1fe01525d in connection_dispatch_operation 
#11 0x000055a1fe01525d in connection_threadmain 
#12 0x00007f460123e568 in _pt_root 
#13 0x00007f4600bd8322 in start_thread 
#14 0x00007f4600367823 in clone

Package Version and Platform

all versions

Steps to reproduce

to be provided

Actual results

Expected results


This improvement could be done with a flag into the entry in the entry cache. If the entry is a referral, flag it. It will avoid a search for an attribute.

Note the improvement will also improve the 'ref' check when returning an entry (returned candidate).

Metadata Update from @tbordaz:
- Custom field origin adjusted to None
- Custom field reviewstatus adjusted to None

389-ds-base is moving from Pagure to Github. This means that new issues and pull requests
will be accepted only in 389-ds-base's github repository.

This issue has been cloned to Github and is available here:
- https://github.com/389ds/389-ds-base/issues/4308

If you want to receive further updates on the issue, please navigate to the github issue
and click on subscribe button.

Thank you for understanding. We apologize for all inconvenience.

Metadata Update from @spichugi:
- Issue close_status updated to: wontfix
- Issue status updated to: Closed (was: Open)

Metadata