On Sun, Jun 7, 2015 at 11:46 PM, Stefano Fratini <
ma...@stefanofratini.it> wrote:
> CouchDB (where each and every read or write op hits the hard disk) or more
> traditional SQL engines sound like a better candidates to test the
> improvements brought forward by NVMe
AFAIUI, the NVMe improvements include not using a filesystem, or even
a block-device abstraction, but rather 'look' like nonvolatile memory
(which is what Flash is, after all). couchDB, or any other disk-based
application would indeed benefit from the greater speed, but the
bottleneck becomes the "disk emulation"
maybe a more impressive demo of NVMe (which is what the OP is after, i
guess) would be LMDB, which is a "mmap() and use storage as memory"
database. currently it suffers from bad locality (which is why
leveldb beats it on some write-heavy benchmarks), but maybe replacing
the mmap()'ing of a file with the corresponding NVMe primitive for
mmapping a chunk of the device could avoid the whole filesystem+block
device overhead, and exploit the nearly-random-access nature of good
Flash managers.
in the Redis case, it might be possible to simply map the NVMe device
as a huge chunk of memory and use it for Redis storage, making it
conceivable to simply turn off disk persistency and trust the
non-volatility of Flash. But, as you noted, it's still orders of
magnitude slower than main RAM. It would be better than the disaster
that it's currently to fall into virtual memory (even with fast SSDs),
but i doubt it would "feel" like normal, RAM-based Redis.
--
Javier