Howard Chu wrote:
Nikolaos Milas wrote:
On 4/9/2012 5:14 μμ, Howard Chu wrote:
It seems to me this can only be a viable mode of operation if you're always going to run asynch and don't care much about transaction durability or DB recoverability. Running in this mode offers absolutely zero crash resistance; the entire DB will almost always be irreparably damaged after a system crash.
Would you run like that, if it offered you the potential of maybe 10x faster write performance?
Absolutely not! DB reliability is crucial to us. Transaction durability too, esp. since we are using syncrepl in refreshAndPersist mode and numerous production systems (consumers) are affected.
Thanks for asking!
Thanks for your response; that's my view on it as well. Still, there's room for experimentation and there are other folks using the MDB library in their own applications, who may be OK with different reliability levels. It looks like we can actually support all of these optional behaviors without too much fuss.
I've posted new microbenchmarks results with the writable mmap.
http://highlandsun.com/hyc/mdb/microbench/
In asynchronous mode MDB writes are pretty much fastest all across the board. In fully synchronous mode it's slower but still quite competitive.
Now that these features are in the library, some additional work remains to allow configuring them in back-mdb. (So much for back-mdb having no performance tuning options. I guess that was never going to last...)