#47326 idl switch does not work
Closed: Fixed None Opened 7 years ago by lkrispen.

There is a configuration option nsslapd-idl-switch to choose "old" or "new" idl index code and format, but "old" does not work:

  • the entryrdn index uses DB flags, which are not available if the db is opened in "old" mode.
  • the switch is always reset to "new"

I made it work with the attached patch, just to be able to run tests, it is not a clean fix.

In my performance tests "old" was superior for search loads like "uid=aaaa" by about 10%
For modify loads with updateing substring indexes, the "new" code is far superior, almost 50%.

So it might be worth to have it configurable depending on the deployment and workload, eventually by index and not general for the whole db.

Attached patch to address idl-switch not working. To make it configurable per index is out of the scope of this ticket, and a new ticket should be opened.

Sending out for review.

Your fix looks good.

Backend dblayer stores the backend version info in DBVERSION files. db dir has one and each db instance dir has its own. Could you double check if old idl is chosen, the corresponding column gets "oldidl"? Thanks!!

head DBVERSION */DBVERSION

==> DBVERSION <==
bdb/5.3/libback-ldbm/newidl/rdn-format-2/dn-4514
^^^^^^

==> NetscapeRoot/DBVERSION <==
bdb/5.3/libback-ldbm/newidl/rdn-format-2/dn-4514
^^^^^^

Looks good:

userRoot - using old idl

head DBVERSION 
bdb/4.7/libback-ldbm/rdn-format-2/dn-4514-1

userRoot - using new idl

head DBVERSION 
bdb/4.7/libback-ldbm/newidl/rdn-format-2/dn-4514-1

git merge ticket47326
Merge made by recursive.
ldap/servers/slapd/back-ldbm/back-ldbm.h | 15 ++++++++-------
ldap/servers/slapd/back-ldbm/dblayer.c | 22 +++++++++++++++++-----
ldap/servers/slapd/back-ldbm/id2entry.c | 4 ++--
ldap/servers/slapd/back-ldbm/ldbm_attr.c | 2 +-
ldap/servers/slapd/back-ldbm/ldbm_config.c | 21 +++++++++++++++++++++
ldap/servers/slapd/back-ldbm/ldbm_config.h | 1 +
ldap/servers/slapd/back-ldbm/upgrade.c | 13 ++++++++-----
7 files changed, 58 insertions(+), 20 deletions(-)

git push origin master
Counting objects: 34, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (18/18), done.
Writing objects: 100% (18/18), 2.50 KiB, done.
Total 18 (delta 14), reused 0 (delta 0)
To ssh://git.fedorahosted.org/git/389/ds.git
a541936..930ca39 master -> master

commit 0c3ca8a
Author: Mark Reynolds mreynolds@redhat.com
Date: Thu May 23 15:55:54 2013 -0400

Please avoid merge commits in the future

Replying to [comment:9 rmeggins]:

Please avoid merge commits in the future

Sorry, I forgot to rebase with master before the merge, it was not intentional.

Metadata Update from @lkrispen:
- Issue assigned to mreynolds
- Issue set to the milestone: 1.3.2 - 05/13 (May)

3 years ago

Login to comment on this ticket.

Metadata