There is a configuration option nsslapd-idl-switch to choose "old" or "new" idl index code and format, but "old" does not work:
attachment 0001-let-idl-switch-old-work-suppress-auto-adjust.patch
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.
attachment 0001-Ticket-47326-idl-switch-does-not-work.patch
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!!
==> 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]:
Sorry, I forgot to rebase with master before the merge, it was not intentional.
Ticket has been cloned to Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=1044210
Metadata Update from @lkrispen: - Issue assigned to mreynolds - Issue set to the milestone: 1.3.2 - 05/13 (May)
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/663
If you want to receive further updates on the issue, please navigate to the github issue and click on subscribe button.
subscribe
Thank you for understanding. We apologize for all inconvenience.
Metadata Update from @spichugi: - Issue close_status updated to: wontfix (was: Fixed)
Login to comment on this ticket.