[Date Prev][Date Next] [Chronological] [Thread] [Top]

Re: LMDB crash consistency, again

Another sync issue:

mdb_env_sync() syncs the wrong way (msync vs fdatasync) if it
runs in a process with a different MDB_WRITEMAP setting than
one which committed with MDB_NOSYNC or MDB_NOMETASYNC.

I.e. this statement in lmdb.h is too weak:

 * Processes with and without MDB_WRITEMAP on the same environment do
 * not cooperate well.

I think I added it after an IRC chat.  But it should either say
that it can break ACID, or env_sync() called explicitly should
sync more aggressively - at least if the MDB_env did not commit
all transactions since last known sync.