Bug 842440 - memberof performance enhancement
memberof performance enhancement
Product: Red Hat Enterprise Linux 6
Classification: Red Hat
Component: 389-ds-base (Show other bugs)
Unspecified Unspecified
high Severity unspecified
: rc
: ---
Assigned To: Rich Megginson
Sankar Ramalingam
Depends On:
  Show dependency treegraph
Reported: 2012-07-23 17:03 EDT by Nathan Kinder
Modified: 2015-09-27 22:32 EDT (History)
2 users (show)

See Also:
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.
Story Points: ---
Clone Of:
Last Closed: 2013-02-21 03:20:20 EST
Type: ---
Regression: ---
Mount Type: ---
Documentation: ---
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---

Attachments (Terms of Use)

External Trackers
Tracker ID Priority Status Summary Last Updated
Red Hat Product Errata RHSA-2013:0503 normal SHIPPED_LIVE Moderate: 389-ds-base security, bug fix, and enhancement update 2013-02-21 03:18:44 EST

  None (edit)
Description Nathan Kinder 2012-07-23 17:03:05 EDT
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-23 20:00:55 EDT
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-23 20:11:21 EDT
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@git.app.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 Galipeau 2012-07-24 08:20:05 EDT
QE verify sanity only, no regressions found with memberOf testing.
Comment 5 Sankar Ramalingam 2012-11-15 15:18:53 EST
This needs to verified by running mbo and memOfEnhancement acceptance tests and check no regressions.
Comment 6 Sankar Ramalingam 2012-11-19 05:45:11 EST
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 03:20:20 EST
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.