Hi!

Trying to convert my syncrepl configuration to a delta syncrepl configuration, 
the slave runs out of accesslog space during initial sync.
For the main database about 30MB should be enough, but I configured 50MB, also 
for the accesslog files.
It seems sync continues even if accesslog periodically complains like this:

slapd[13951]: => mdb_idl_insert_keys: c_put id failed: MDB_MAP_FULL: 
Environment mapsize limit reached (-30792)
slapd[13951]: conn=-1 op=0 accesslog_response: got result 0x50 adding log entry 
reqStart=20250314110032.000187Z,cn=changelog-1

>From stat I guess that accesslog needs at least three times as much space as 
>the main database does:
# stat /var/lib/ldap/data.mdb /var/lib/ldap/changelog-1/data.mdb
  File: /var/lib/ldap/data.mdb
  Size: 22888448        Blocks: 44704      IO Block: 4096   regular file
Device: 33h/51d Inode: 259467      Links: 1
Access: (0600/-rw-------)  Uid: (   76/    ldap)   Gid: (   70/    ldap)
Access: 2025-03-14 11:57:46.303713632 +0100
Modify: 2025-03-14 12:01:08.417328586 +0100
Change: 2025-03-14 12:01:08.417328586 +0100
Birth: 2025-03-14 11:57:46.303713632 +0100
  File: /var/lib/ldap/changelog-1/data.mdb
  Size: 52424704        Blocks: 102392     IO Block: 4096   regular file
Device: 33h/51d Inode: 259471      Links: 1
Access: (0600/-rw-------)  Uid: (   76/    ldap)   Gid: (   70/    ldap)
Access: 2025-03-14 11:57:46.323713395 +0100
Modify: 2025-03-14 12:01:08.425328492 +0100
Change: 2025-03-14 12:01:08.425328492 +0100
Birth: 2025-03-14 11:57:46.323713395 +0100

Shouldn't (assuming the sync happens entry-by-entry) the accesslog have about 
the same size as the main database after initial sync (when  all databases were 
empty)?
When setting the size of the accesslog database to twice the size of the 
database it succeeded which stats like this:

# stat /var/lib/ldap/data.mdb /var/lib/ldap/changelog-1/data.mdb
  File: /var/lib/ldap/data.mdb
  Size: 22888448        Blocks: 44704      IO Block: 4096   regular file
Device: 33h/51d Inode: 259514      Links: 1
Access: (0600/-rw-------)  Uid: (   76/    ldap)   Gid: (   70/    ldap)
Access: 2025-03-14 12:39:01.278545521 +0100
Modify: 2025-03-14 12:45:03.558274733 +0100
Change: 2025-03-14 12:45:03.558274733 +0100
Birth: 2025-03-14 12:39:01.278545521 +0100
  File: /var/lib/ldap/changelog-1/data.mdb
  Size: 89657344        Blocks: 175112     IO Block: 4096   regular file
Device: 33h/51d Inode: 259518      Links: 1
Access: (0600/-rw-------)  Uid: (   76/    ldap)   Gid: (   70/    ldap)
Access: 2025-03-14 12:39:01.298545286 +0100
Modify: 2025-03-14 12:45:03.566274639 +0100
Change: 2025-03-14 12:45:03.566274639 +0100
Birth: 2025-03-14 12:39:01.298545286 +0100

So the blocks in the accesslog are roughly four times (3.91 ) as much as in the 
original database.
Is there any doc making statements about the proportion?
(I'm a fan of "small is beautiful" instead of "bigger is better")

Kind regards,
Ulrich Windl

Reply via email to