Sorry, forgot this one.
On 01/06/2015 03:18 PM, Howard Chu wrote:
Hallvard Breien Furuseth wrote:
Another issue: After an MDB_NOSYNC commit, mdb_env_sync() only fdatasync()s. It does not know when the file grew.
I suppose we can change the FORCE flag to also cause fsync() to be used.
Insufficient if the user commits with MDB_NOSYNC (maybe when creating the DB), then turns off MDB_NOSYNC and does mdb_env_sync(env, 0). Or another process without MDB_NOSYNC doing mdb_env_sync(env, 0).
The lockfile could track what has been synced how, though. Except it won't know at init, so if someone does a lot of <open env, commit, close env> they'll end up fsync'ing each time.