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

Re: MDB v2: Replace meta pages with "meta position" word

Howard Chu writes:
>Hallvard Breien Furuseth wrote:
>> Then I'm not sure what's the point of so many speedup options like it
>> has now.
> MDB_NOSYNC is perfectly safe on some filesystems like ZFS that guarantee write 
> order.

Nice.  Should tweak the doc a bit, then.

Do you mean safe without MDB_WRITEMAP - i.e. it orders write system
calls correctly?  Or even with MDB_WRITEMAP - notices the order of
updates to mmap pages?  I imagine the latter would be rather tough.

Sounds like this needs yet another mode for best performance, though:
Sync after but not before writing the meta page.

> Some apps want the ability to return immediately from txn_commit while 
> performing syncs in a background thread. MAPASYNC lets us do that.

Only with MDB_WRITEMAP and if you do not care about consistency after
a system crash, as mentioned in my other mail.  Unless on ZFS and
(MDB_NOSYNC & MDB_WRITEMAP) is safe, as above.

> What you're talking about may also do that. I just want to be clear
> about the motivation and the expected benefit.
> Using variably positioned meta pages seems like something we would try to cut 
> down on seek overhead, but looking closer it doesn't appear that it can do that.

Right, default mode will still write the file header every time.  Hm,
and it'll be a bit slower since some commits will need one more page:
When none of the committed pages have room for the MDB_meta.

Fewer seeks would only be a side effect of choosing fewer syncs.