4 ms·
I just found these today which are LSM-based storage engines which supposedly support both transactions. Sled can operate on a single file, I'm not sure about w
by minhmeoke 4y ago
I just found these today which are LSM-based storage engines which supposedly support both transactions. Sled can operate on a single file, I'm not sure about wiredtiger. I've never used either of these before though, so please perform your own due diligence:
- https://github.com/spacejam/sled https://github.com/spacejam/sled
- http://source.wiredtiger.com/11.0.0/overview.html http://source.wiredtiger.com/11.0.0/overview.html
To add transaction support, you probably need a good understanding of how the memtable works in Log Structured Merge trees:
https://creativcoder.dev/what-is-lsm-tree https://creativcoder.dev/what-is-lsm-tree
as well as how to implement something like
https://en.wikipedia.org/wiki/Optimistic_concurrency_control https://en.wikipedia.org/wiki/Optimistic_concurrency_control
You might also be interested in the design of the Nova database:
https://www.usenix.org/conference/fast16/technical-sessions/presentation/xu https://www.usenix.org/conference/fast16/technical-sessions/...
There are probably newer system designs out there, this just happened to be linked from the creativcoder.dev article above.