https://bugs.openldap.org/show_bug.cgi?id=9842

          Issue ID: 9842
           Summary: Page should not be spilled if MDB_RESERVE is used
           Product: LMDB
           Version: unspecified
          Hardware: All
                OS: All
            Status: UNCONFIRMED
          Keywords: needs_review
          Severity: normal
          Priority: ---
         Component: liblmdb
          Assignee: [email protected]
          Reporter: [email protected]
  Target Milestone: ---

The documentation for the function mdb_cursor_put states for MDB_RESERVE the
following: "return a pointer to the reserved space, which the caller can fill
in later". 
However this seems only to be valid if no other operation is performed on the
cursor. Once the cursor is moved the page where the reserved data resides on
might become untracked and therefore eligible to be spilled at any time. 
This problems occurrs however only for large transactions where lmdb starts to
spill and flush pages.

I'm using only lmdb and I'm a bit confused as the branches master
(https://git.openldap.org/openldap/openldap/-/tree/master/libraries/liblmdb)
and mdb.master
(https://git.openldap.org/openldap/openldap/-/tree/mdb.master/libraries/liblmdb)
are not the same. 
For example the function mdb_pages_xkeep differs and master and mdb.master.
Will the branches be consolidated again?

-- 
You are receiving this mail because:
You are on the CC list for the issue.

Reply via email to