[Date Prev][Date Next]
[Chronological]
[Thread]
[Top]
testing indexing in v2
Is it too early to be testing indexes in v2? I've loaded a rather large
database into it to test, but simple equality searches seem to devolve
into scans of the entire database.
Below is some debug output to ponder. By the way, the first two candidates
it says matches the filter don't. I've manually edited the debug output
to hide the identity of my client, but it retains the basic information
needed to see what happenned.
ber_get_next on fd 7 failed errno=35 (Operation would block)
do_search
ber_scanf fmt ({aiiiib) ber:
SRCH "o=myorg.org" 2 0 0 0 0
begin get_filter
EQUALITY
ber_scanf fmt ({oo}) ber:
end get_filter 0
filter: (uid=100007)
ber_scanf fmt ({v}}) ber:
attrs:
=> ldbm_back_search
dn2entry_r: dn: "O=MYORG.ORG"
=> dn2id( "O=MYORG.ORG" )
=> ldbm_cache_open( "/disk8/OpenLDAP2.0-db/dn2id.dbb", 7, 600 )
ldbm_cache_open (blksize 8192) (maxids 1022) (maxindirect 9)
<= ldbm_cache_open (opened 0)
<= dn2id 926
=> id2entry_r( 926 )
=> ldbm_cache_open( "/disk8/OpenLDAP2.0-db/id2entry.dbb", 7, 600 )
ldbm_cache_open (blksize 8192) (maxids 1022) (maxindirect 9)
<= ldbm_cache_open (opened 1)
=> str2entry
<= str2entry(o=myorg.org) -> -1 (0x1400935e0)
entry_rdwr_rlock: ID: 926
<= id2entry_r( 926 ) 0x1400935e0 (disk)
search_candidates: base="O=MYORG.ORG" s=2 d=0
=> filter_candidates
AND
=> list_candidates 0xa0
=> filter_candidates
DN SUBTREE
=> dn2idl( "@O=MYORG.ORG" )
=> ldbm_cache_open( "/disk8/OpenLDAP2.0-db/dn2id.dbb", 7, 600 )
<= ldbm_cache_open (cache 0)
=> ldbm_cache_open( "/disk8/OpenLDAP2.0-db/nextid.dbb", 7, 600 )
ldbm_cache_open (blksize 8192) (maxids 1022) (maxindirect 9)
<= ldbm_cache_open (opened 2)
<= filter_candidates 238844
=> filter_candidates
OR
=> list_candidates 0xa1
=> filter_candidates
EQUALITY
=> equality_candidates
<= filter_candidates 238844
=> filter_candidates
EQUALITY
=> equality_candidates
=> ldbm_cache_open( "/disk8/OpenLDAP2.0-db/uid.dbb", 16384, 600 )
ldbm_cache_open (blksize 8192) (maxids 1022) (maxindirect 9)
<= ldbm_cache_open (opened 3)
=> key_read
<= index_read 26 candidates
<= equality_candidates 26
<= filter_candidates 26
<= list_candidates 238844
<= filter_candidates 238844
<= list_candidates 238844
<= filter_candidates 238844
entry_rdwr_runlock: ID: 926
====> cache_return_entry_r( 926 ): created (0)
=> id2entry_r( 1 )
=> ldbm_cache_open( "/disk8/OpenLDAP2.0-db/id2entry.dbb", 7, 600 )
<= ldbm_cache_open (cache 1)
=> str2entry
<= str2entry(ng=myorg.00-1,uid=10001,o=myorg.org) ->
-1 (0x140093a00)
entry_rdwr_rlock: ID: 1
<= id2entry_r( 1 ) 0x140093a00 (disk)
=> test_filter
EQUALITY
<= test_filter 5
candidate 1 does match filter
entry_rdwr_runlock: ID: 1
====> cache_return_entry_r( 1 ): created (0)
daemon: select: listen=6 active_threads=1 tvp=NULL
=> id2entry_r( 2 )
=> ldbm_cache_open( "/disk8/OpenLDAP2.0-db/id2entry.dbb", 7, 600 )
<= ldbm_cache_open (cache 1)
=> str2entry
<= str2entry(ng=myorg.00-2,uid=10002,o=myorg.org) ->
-1 (0x140093d00)
entry_rdwr_rlock: ID: 2
<= id2entry_r( 2 ) 0x140093d00 (disk)
=> test_filter
EQUALITY
<= test_filter 5
candidate 2 does match filter
entry_rdwr_runlock: ID: 2
etc.
Randy