LMDB KDB module design notes

Greg Hudson ghudson at mit.edu
Thu Apr 12 10:59:15 EDT 2018


On 04/12/2018 08:03 AM, Simo Sorce wrote:
>>   The lockout environment is never emptied, never iterated over, and
>>   uses only short-lived transactions, so the KDC is never blocked more
>>   than briefly.
> 
> I am not a fan of setups that use multiple files for databases, especially when
> transactions need to span multiple ones.
> What is the underlying reason to do this in the new design instead of using a
> single database file with all the data ?

Transactions are per-environment, so if we use one database file and a
write transaction for loads, loads would block the KDC.  That's worse
than what we have with DB2.

Alternatively we could load into a temporary database file and rename it
into place like we do with DB2.  But we would then have to close and
reopen the database between operations like we do with DB2, or somehow
signal processes that have the database open to reopen it after a load
completes.


More information about the krbdev mailing list