#197 rhds82 rfe - BDB backend - clear free page files to reduce changelog size
Closed: Fixed None Opened 7 years ago by rmeggins.


Description of problem:

RFE for RHDS BDB backend to possibly reduce a changelog size
clear Berkeley DB free page files that does not compromise usage for Directory,
thereby reducing the size of the changelog file after reseeding?

Version-Release number of selected component (if applicable):

How reproducible:

Steps to Reproduce:

Actual results:

Expected results:

Additional info:

batch update moving tickets to future

set default ticket origin to Community

Added initial screened field value.

Bug description: Even if entries in the database and changes in the
changelog database are deleted/trimmed, the unused pages of the data-
bases were not returned to the filesystem.

Fix description: This patch calls the compact API that Berkeley DB
provides, which compacts the database.

2 config parameters are introduced to specify the interval of the
compact calls.
Primary DBs (id2entry):
dn: cn=config,cn=ldbm database,cn=plugins,cn=config
nsslapd-db-compactdb-interval: <seconds>
Changelog DBs:
dn: cn=changelog5,cn=config
nsslapd-changelogcompactdb-interval: <seconds>
By default, 2592000 seconds (30 days)

Reviewed by Rich (Thank you!!)

Pushed to master:
e6fd70b..d01155c master -> master
commit d01155c

Set up MMR.
Set following config parameters some reasonable values, e.g., 240 (seconds) on one master. Please note that unless you set nsslapd-changelogmaxage in cn=changelog5 as well as nsds5ReplicaPurgeDelay and nsds5ReplicaTombstonePurgeInterval in the replica entry, the changelogs as well as the deleted entries won't be really removed from the dbs.
Primary DBs (id2entry):
dn: cn=config,cn=ldbm database,cn=plugins,cn=config
nsslapd-db-compactdb-interval: 240

Changelog DBs:
  dn: cn=changelog5,cn=config
  nsslapd-changelogcompactdb-interval: 240
  nsslapd-changelogmaxage: 200

  dn: cn=replica,cn=dc\3Dexample\2Cdc\3Dcom,cn=mapping tree,cn=config
  nsds5ReplicaPurgeDelay: 10
  nsds5ReplicaTombstonePurgeInterval: 240

Run series of adds and deletes monitoring the size of id2entry and changelog db. If the size is reduced at the interval timing, the fix is verified.

ls -l /var/lib/dirsrv/slapd-M0/changelogdb/b9fd337e-092711e3-a8ce8123-6a055cd2_5212ab4f000000010000.db /var/lib/dirsrv/slapd-M0/db/userRoot/id2entry.db

-rw-------. 1 nobody nobody 4186112 8/21 15:35 /var/lib/dirsrv/slapd-M0/changelogdb/b9fd337e-092711e3-a8ce8123-6a055cd2_5212ab4f000000010000.db
-rw-------. 1 nobody nobody 15302656 8/21 15:35 /var/lib/dirsrv/slapd-M0/db/userRoot/id2entry.db

ls -l /var/lib/dirsrv/slapd-M0/changelogdb/b9fd337e-092711e3-a8ce8123-6a055cd2_5212ab4f000000010000.db /var/lib/dirsrv/slapd-M0/db/userRoot/id2entry.db

-rw-------. 1 nobody nobody 49152 8/21 15:42 /var/lib/dirsrv/slapd-M0/changelogdb/b9fd337e-092711e3-a8ce8123-6a055cd2_5212ab4f000000010000.db
-rw-------. 1 nobody nobody 1400832 8/21 15:44 /var/lib/dirsrv/slapd-M0/db/userRoot/id2entry.db

Note: nsslapd-db-compactdb-interval & nsslapd-changelogcompactdb-interval need to be doc'ed in "Configuration Command and File Reference".

Metadata Update from @nhosoi:
- Issue assigned to nhosoi
- Issue set to the milestone: 1.3.2 - 08/13 (August)

2 years ago

Login to comment on this ticket.