Bug 2116948
| Summary: | LMDB import is very slow | ||
|---|---|---|---|
| Product: | Red Hat Enterprise Linux 9 | Reporter: | mreynolds |
| Component: | 389-ds-base | Assignee: | Pierre Rogier <progier> |
| Status: | MODIFIED --- | QA Contact: | LDAP QA Team <idm-ds-qe-bugs> |
| Severity: | medium | Docs Contact: | |
| Priority: | high | ||
| Version: | 9.1 | CC: | bsmejkal, idm-ds-dev-bugs, pasik, tbordaz, vashirov |
| Target Milestone: | rc | Keywords: | TestCaseProvided, Triaged |
| Target Release: | 9.3 | ||
| Hardware: | Unspecified | ||
| OS: | Unspecified | ||
| Whiteboard: | sync-to-jira | ||
| Fixed In Version: | 389-ds-base-2.3.4-2.el9 | Doc Type: | Bug Fix |
| Doc Text: |
Cause: To be able to build the entryrdn index, LMDB import worker threads were waiting for the other worker threads to ensure that the parent entry processing was done.
Consequence: This generated lock contention that
drastically slowed import (up to ten entries per seconds )
Fix: The ldif import over lmdb database was redesigned so the data about the entry rdn and its parents gets stored in a temporary database by the provider thread that the worker use to build the entry rdn index.
Result: There is no more any needs to synchronize the worker threads and the average import rate is much better (around a thousand entries/ seconds on a 10 millions entries database)
Note: That is still three time slower than bdb import rate but lmdb does not support concurrent write transactions as bdb does. Furthermore the thread handling the lmdb write transaction is 95% busy in lmdb database code so there is not much chances to improve the import rate significantly. )
|
Story Points: | --- |
| Clone Of: | Environment: | ||
| Last Closed: | Type: | Bug | |
| Regression: | --- | Mount Type: | --- |
| Documentation: | --- | CRM: | |
| Verified Versions: | Category: | --- | |
| oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
| Cloudforms Team: | --- | Target Upstream Version: | |
| Embargoed: | |||
|
Description
mreynolds
2022-08-09 15:16:54 UTC
Push upstream (only main) https://github.com/389ds/389-ds-base/issues/5408 |