Bug 842440 - memberof performance enhancement
Summary: memberof performance enhancement
Alias: None
Product: Red Hat Enterprise Linux 6
Classification: Red Hat
Component: 389-ds-base
Version: 6.4
Hardware: Unspecified
OS: Unspecified
Target Milestone: rc
: ---
Assignee: Rich Megginson
QA Contact: Sankar Ramalingam
Depends On:
TreeView+ depends on / blocked
Reported: 2012-07-23 21:03 UTC by Nathan Kinder
Modified: 2020-09-13 20:14 UTC (History)
2 users (show)

Fixed In Version: 389-ds-base-
Doc Type: Bug Fix
Doc Text:
Cause: Memberof plugin code executed redundant dn normalizations. Consequence: When memberof plugin is enabled, the redundant dn normalizationslows down the performance. Fix: Enhanced the memberof plugin code to eliminate redundant dn normalizations. Result: Although the performance gain was small, the memberof plugin code is less redundant.
Clone Of:
Last Closed: 2013-02-21 08:20:20 UTC
Target Upstream Version:

Attachments (Terms of Use)

System ID Private Priority Status Summary Last Updated
Github 389ds 389-ds-base issues 412 0 None None None 2020-09-13 20:14:01 UTC
Red Hat Product Errata RHSA-2013:0503 0 normal SHIPPED_LIVE Moderate: 389-ds-base security, bug fix, and enhancement update 2013-02-21 08:18:44 UTC

Description Nathan Kinder 2012-07-23 21:03:05 UTC
This bug is created as a clone of upstream ticket:

It was reported by the IPA team that operation related to memberof was slow.

This will simply require running the memberOf tests to check for regressions for verification.

Comment 1 Noriko Hosoi 2012-07-24 00:00:55 UTC
Cherry-picked and pushed to the external 389-ds-base-1.2.11 branch.

git cherry-pick -e -x 6a21e8e9be90de76549b8fb37dc744ca48234e00

    Trac Ticket #412 - memberof performance enhancement
    Fix description:
    memberof.c: replaced DN strings with Slapi_DN and set the
    normalized info to Slapi_Value flags.  It reduces the number
    of slaip_dn_normalize_ext call by ~25%.
    attr.c, slapi-plugin.h: introduced a new API slapi_attr_
    value_cmp_ext which takes Slapi_Value instead of struct
    berval.  By replacing with Slapi_Value, the value flag
    (e.g., normalized info) can be passed to the syntax plugin.
    value.c: changed slapi_value_compare to call slapi_attr_
    value_cmp_ext instead of slapi_attr_value_cmp.
    (cherry picked from commit 6a21e8e9be90de76549b8fb37dc744ca48234e00)

$ git push origin 389-ds-base-1.2.11-ext:389-ds-base-1.2.11
Enter passphrase for key '/home/nhosoi/.ssh/id_rsa': 
Counting objects: 21, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (11/11), done.
Writing objects: 100% (11/11), 3.78 KiB, done.
Total 11 (delta 8), reused 0 (delta 0)
To ssh://git.fedorahosted.org/git/389/ds.git
   8e72028..f16d3a0  389-ds-base-1.2.11-ext -> 389-ds-base-1.2.11

Comment 2 Noriko Hosoi 2012-07-24 00:11:21 UTC
Cherry-picked and pushed to the internal 389-ds-base-1.2.11 branch, as well.

$ git push redhat 389-ds-base-1.2.11-int:389-ds-base-1.2.11
Enter passphrase for key '/home/nhosoi/.ssh/id_rsa': 
nhosoi.eng.bos.redhat.com's password: 
Counting objects: 21, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (11/11), done.
Writing objects: 100% (11/11), 3.78 KiB, done.
Total 11 (delta 8), reused 0 (delta 0)
To ssh://git.app.eng.bos.redhat.com/srv/git/389-ds-base.git
   8e72028..9d17dbd  389-ds-base-1.2.11-int -> 389-ds-base-1.2.11

Comment 3 Jenny Severance 2012-07-24 12:20:05 UTC
QE verify sanity only, no regressions found with memberOf testing.

Comment 5 Sankar Ramalingam 2012-11-15 20:18:53 UTC
This needs to verified by running mbo and memOfEnhancement acceptance tests and check no regressions.

Comment 6 Sankar Ramalingam 2012-11-19 10:45:11 UTC
No regressions found for member of tests. Hence marking the bug as Verified.
MemberOf run elapse time : 00:50:15
    MemberOf run Tests PASS      : 100% (75/75)

Comment 7 errata-xmlrpc 2013-02-21 08:20:20 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory, and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.


Note You need to log in before you can comment on or make changes to this bug.