Iowow – C11 skiplist-based persistent key/value storage engine
iowow.io
iowow.io
https://github.com/cyrusimap/cyrus-imapd/blob/master/lib/cyr...
https://github.com/cyrusimap/cyrus-imapd/blob/master/lib/cyr...
They take slightly different tradeoffs. I wrote twoskip to work around a handful of issues with skiplist around crash recovery. The big cost still is repack speed, which is why I have a project to build something called zeroskip, which won't be single-file, but will have some very nice never-rewrite behaviour.
http://opera.brong.fastmail.fm/talks/twoskip/twoskip-yapc12.... describes the design of twoskip a bit.
Although BTrees are slower when it comes to writing, they don't have compaction issues and are generally better are reading data from disk.
I also like there is a lower-level API should you wish to build your own database logic on top of the block manager.
It would be interesting to have more information about how data is actually written to disk and I think such approach could benefit from being able to mount a device directly.
Last but not least, 255 GB will seriously limit this database to embedded use cases.
(Yes, I know that for some platforms you can mmap memory.)
[1]: https://news.ycombinator.com/item?id=1171468
[2]: https://stackoverflow.com/questions/45115047/why-redis-sorte...