RHEL Engineering is moving the tracking of its product development work on RHEL 6 through RHEL 9 to Red Hat Jira (issues.redhat.com). If you're a Red Hat customer, please continue to file support cases via the Red Hat customer portal. If you're not, please head to the "RHEL project" in Red Hat Jira and file new tickets here. Individual Bugzilla bugs in the statuses "NEW", "ASSIGNED", and "POST" are being migrated throughout September 2023. Bugs of Red Hat partners with an assigned Engineering Partner Manager (EPM) are migrated in late September as per pre-agreed dates. Bugs against components "kernel", "kernel-rt", and "kpatch" are only migrated if still in "NEW" or "ASSIGNED". If you cannot log in to RH Jira, please consult article #7032570. That failing, please send an e-mail to the RH Jira admins at rh-issues@redhat.com to troubleshoot your issue as a user management inquiry. The email creates a ServiceNow ticket with Red Hat. Individual Bugzilla bugs that are migrated will be moved to status "CLOSED", resolution "MIGRATED", and set with "MigratedToJIRA" in "Keywords". The link to the successor Jira issue will be found under "Links", have a little "two-footprint" icon next to it, and direct you to the "RHEL project" in Red Hat Jira (issue links are of type "https://issues.redhat.com/browse/RHEL-XXXX", where "X" is a digit). This same link will be available in a blue banner at the top of the page informing you that that bug has been migrated.
Bug 1044213 - backend performance - introduce optimization levels
Summary: backend performance - introduce optimization levels
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Red Hat Enterprise Linux 7
Classification: Red Hat
Component: 389-ds-base
Version: 7.0
Hardware: Unspecified
OS: Unspecified
low
unspecified
Target Milestone: rc
: ---
Assignee: Rich Megginson
QA Contact: Viktor Ashirov
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2013-12-17 22:26 UTC by Nathan Kinder
Modified: 2020-09-13 20:32 UTC (History)
4 users (show)

Fixed In Version: 389-ds-base-1.3.3.1-1.el7
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2015-03-05 09:33:12 UTC
Target Upstream Version:
Embargoed:


Attachments (Terms of Use)


Links
System ID Private Priority Status Summary Last Updated
Github 389ds 389-ds-base issues 695 0 None None None 2020-09-13 20:32:39 UTC
Red Hat Product Errata RHSA-2015:0416 0 normal SHIPPED_LIVE Important: 389-ds-base security, bug fix, and enhancement update 2015-03-05 14:26:33 UTC

Description Nathan Kinder 2013-12-17 22:26:45 UTC
This bug is created as a clone of upstream ticket:
https://fedorahosted.org/389/ticket/47358

modify performance is highly impacted by the backend lock and entry cache lock contention.
A couple of tickets are related to this and suggest changes to improve performance, but 
- it is not guranteed that each optimization id good for all deployments
- it is a sensitive area and there is a possibility of unexpected side effects 

To move forward I suggest to implement some backend related optimizations, but allow to turn them on or off, so it is possible to keep the current behaviour and deploy the optimizations after testing in a specific deployment.

For the beginning, I think the following optimizations should be considered:

- do not update the database ruv in the modify transaction, let it be done by the calls to _replica_update_state in the event loop. This is handled specifically by#564, but it is not finally commited and some environments may want to keep the ruv update in the modify txn

- reverse order of txn_begin/commit and backend_lock/unlock:
with the fix for #568 it is save to use batching of transaction log flush, but if the transaction is nested inside the backend lock, always only one transaction will be active, so the effect is not visible

- move code out of the backend lock:
in a modify operation there is a lot of initial work done after taking the backend lock, but not everything requires this protection as no database access is involved, eg
-- check for illegal mods
-- check access to the entry
-- make copies of the mods to restore in a retry
-- make copies of the entry for use in plugins
some of the above depend on the enty already be found and locked in the entry cache (the entrycache itself is addressed in performance tickets #414,#614).
There is no obvious reason that the find_entry2modify cannot be done before taking the backend lock, but this would request thorough investigation and testing. For testing it could help to have a switch to turn this behaviour on

Comment 8 Noriko Hosoi 2015-01-30 17:53:45 UTC
Hi Viktor, Hi Ami,

I agree with Viktor that there are some issues in the test cases... (I'm referring CLU now.)

It looks to me there's no impact from the optimization level, though.  So, I believe we can set VERIFIED to this bug.  Looking into the tet test results...

Thanks!!
--noriko

Comment 9 Viktor Ashirov 2015-01-30 18:19:53 UTC
Thank you so much, Noriko! 

Marking as VERIFIED.

Comment 11 errata-xmlrpc 2015-03-05 09:33:12 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.

https://rhn.redhat.com/errata/RHSA-2015-0416.html


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