Tobias Oberstein wrote:
FastDB also appears to use locking, while LMDB is MVCC and readers
Yeah, MVCC is the right thing ..
require no locks, so even with all of the other disadvantages out of the way, LMDB will scale better across multiple CPUs.
So _one_ LMDB can be concurrently used from multiple threads and multiple processes, with multiple readers and writers?
Writers wont block readers, but writers require exclusive lock?
When used from different process, the single-layer design making use of the filesystem buffer cache will mean there is no "buffer cache" per process, and memory-consumption won't skyrocket?
Correct. I've already demonstrated this by running SLAMD benchmarks against two slapds operating on the same database. (Due to inefficiencies in slapd's frontend/connection manager/threadpool, you can actually double slapd throughput using 2 slapds on the same database.)