Emmanuel Lécharny wrote:
Le 9/26/12 2:01 PM, Howard Chu a écrit :
> Roman Rybalko wrote:
>> 25.09.2012 14:57, Roman Rybalko пишет:
>>> Also it's not clear for me how objectID set is determined when there
>>> is search on "one" scope? The same when "sub" scope cover
not the full
>>> database contents but a part of the object tree (suffix: cn=test,
>>> search base: cn=test1,cn=test)? I thought that search with base
>>> covering not the full backend suffix (but a partial tree) should work
>>> faster, but seems this is not true, even overhead introduced by
>>> additional objectID set. Right?
>> Howard, can you explain it please?
>
> The scope is just another set, yes. It must be ANDed with the index
> sets. Searches with subtree scope over the entire database use a
> shortcut, instead of reading a scope set we just use a fake set
> representing all IDs. Searches over any other scope cannot take any
> shortcut.
As discussed with Howard last month, OneLevel scope can define a set of
candidate IDs too, as soon as you can extract the children of the base
entry from the Rdn index. Not sure OpenLDAP support that atm. Howard ?
The actual answer depends on which backend you're using. There's little point
in discussing it when you can just read the source code to get the details.
back-bdb uses explicit scope indices. back-hdb and back-mdb use only an rdn index.
--
-- Howard Chu
CTO, Symas Corp.
http://www.symas.com
Director, Highland Sun
http://highlandsun.com/hyc/
Chief Architect, OpenLDAP
http://www.openldap.org/project/