Bug 842440

Summary: memberof performance enhancement
Product: Red Hat Enterprise Linux 6 Reporter: Nathan Kinder <nkinder>
Component: 389-ds-baseAssignee: Rich Megginson <rmeggins>
Status: CLOSED ERRATA QA Contact: Sankar Ramalingam <sramling>
Severity: unspecified Docs Contact:
Priority: high    
Version: 6.4CC: jgalipea, nhosoi
Target Milestone: rc   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: 389-ds-base-1.2.11.12-1.el6 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: Environment:
Last Closed: 2013-02-21 08:20:20 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Nathan Kinder 2012-07-23 21:03:05 UTC
This bug is created as a clone of upstream ticket:
https://fedorahosted.org/389/ticket/412

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
    
    https://fedorahosted.org/389/ticket/412
    
    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.

http://rhn.redhat.com/errata/RHSA-2013-0503.html