Full_Name: Ben Trask
Version: 
OS: 
URL: ftp://ftp.openldap.org/incoming/
Submission from: (NULL) (192.241.251.11)


Hi,

Transaction commits are one of the few bottlenecks in MDB, because it has to
fsync twice, sequentially.

I think MDB could support mixed low and high durability transactions in the same
database by adding per-page checksums and a third root page. The idea is that
when committing a low-durability transaction, no fsyncs are performed. One of
the two other roots is always consistent on-disk to serve as a "backstop" in the
event of power loss/kernel panic. The two other pages are allowed to alternate,
with consistency only ensured by checksums.

During a restore after a crash, the non-durable roots (if any) get compared
against the third durable root. Any new pages get checksum'd to ensure
integrity. In the worst case, the durable root is used.

Reply via email to