OpenLDAP
Up to top level
Build   Contrib   Development   Documentation   Historical   Incoming   Software Bugs   Software Enhancements   Web  

Logged in as guest

Viewing Software Bugs/8868
Full headers

From: quanah@openldap.org
Subject: Inefficiency when processing certain search filters
Compose comment
Download message
State:
0 replies:
0 followups:

Major security issue: yes  no

Notes:

Notification:


Date: Thu, 21 Jun 2018 20:25:00 +0000
From: quanah@openldap.org
To: openldap-its@OpenLDAP.org
Subject: Inefficiency when processing certain search filters
Full_Name: Quanah Gibson-Mount
Version: 2.4.46
OS: Linux
URL: ftp://ftp.openldap.org/incoming/
Submission from: (NULL) (47.208.148.239)


Certain search filters are not processed efficiently in the back-{bhm}db code
base.

An example is:

"(|(&(subscriberid=1)(objectClass=XYZ))(&(subscriberid=2)(objectClass=XYZ)))"

In this situation, the contiguous list of possibilities for the objectClass
result gets turned into a range, causing each entry to be examined as a match. 
This significantly increases CPU load and causes a delay in returning the
result.  Re-arranging the search in the following manner bypasses this issue:

(&(objectClass=XYZ)(|(subscriberid=1)(subscriberid=2)))"

General timing with back-mdb:

.477 seconds for the expensive search
.020 seconds for the optimized search

For back-bdb, the timing was:
.665 seconds for the expensive search
.020 seconds for the optimized search

Up to top level
Build   Contrib   Development   Documentation   Historical   Incoming   Software Bugs   Software Enhancements   Web  

Logged in as guest


The OpenLDAP Issue Tracking System uses a hacked version of JitterBug

______________
© Copyright 2013, OpenLDAP Foundation, info@OpenLDAP.org