[Date Prev][Date Next] [Chronological] [Thread] [Top]

(ITS#8875) [Patch] Performance problems in back-mdb with large DITs and many aliases



Full_Name: Henrik Bohnenkamp
Version: >= 2.4.44, HEAD
OS: Ubuntu 18.04, Coreos 7.5
URL: https://github.com/hbo/openldap-mdb-deref-problem
Submission from: (NULL) (77.176.95.241)


This is a followup to
http://www.openldap.org/lists/openldap-technical/201805/msg00065.html

When MDB is used as backend database and with large DITs (O(10^6)) with many
alias entries (O(10^5)), search requests with deref=always and scope=sub will
take prohibitively long. Servers with a high request rate might become utterly
unresponsive. This problem is not present in the HDB backend.

In this issue I want to contribute two things:
- a means to demonstrate the problem; this in the form of two scripts
(bash/python) which set up a large test  DIT and start two slapds (one HDB, one
MDB) to allow easy comparisons of the performance
- a patch to fix the problem

The patch is certainly not production ready (or, if it is, it needs still
exhaustive testing to inspire  confidence), however, I think it is far enough to
at least discuss the approach. 

Both the scripts and the patch, together with instructions how to use the former
can be found here: 

https://github.com/hbo/openldap-mdb-deref-problem

I am looking forward to discuss the patch.