From: Howard Chu Date: Mon, 3 Dec 2001 14:04:06 +0000 (+0000) Subject: Don't maintain a DN_SUBTREE index for the backend suffix, just return X-Git-Tag: LDBM_PRE_GIANT_RWLOCK~801 X-Git-Url: https://git.sur5r.net/?a=commitdiff_plain;h=180e1d526991b950ba280162a44be9d062bccba9;p=openldap Don't maintain a DN_SUBTREE index for the backend suffix, just return BDB_IDL_ALL. This has a huge impact on I/O and txn logs. --- diff --git a/servers/slapd/back-bdb/dn2id.c b/servers/slapd/back-bdb/dn2id.c index 0e73b95738..d9a89325be 100644 --- a/servers/slapd/back-bdb/dn2id.c +++ b/servers/slapd/back-bdb/dn2id.c @@ -70,7 +70,7 @@ bdb_dn2id_add( } { - char **subtree = dn_subtree( NULL, dn ); + char **subtree = dn_subtree( be, dn ); if( subtree != NULL ) { int i; @@ -152,7 +152,7 @@ bdb_dn2id_delete( } { - char **subtree = dn_subtree( NULL, dn ); + char **subtree = dn_subtree( be, dn ); if( subtree != NULL ) { int i; @@ -363,6 +363,12 @@ bdb_dn2idl( Debug( LDAP_DEBUG_TRACE, "=> bdb_dn2idl( \"%s\" )\n", dn, 0, 0 ); + if (prefix == DN_SUBTREE_PREFIX && be_issuffix(be, dn)) + { + BDB_IDL_ALL(bdb, ids); + return 0; + } + DBTzero( &key ); key.size = strlen( dn ) + 2; key.data = ch_malloc( key.size );