nessDB is an embedded key-value DBMS written in ANSI C with BSD license. It does not require any external dependencies and works in most POSIX systems.
As for storage engine, nessDB used LSM-tree (Log-Structured Merge Tree) in v1.8, B-Epsilon-tree in v2.0, and will use fractal-tree in v3.0. nessDB also used fractional cascading to speed up query.
Two-Phase Locking (Deadlock Detection)
nessDB v3.0 will use two-phase locking with deadlock detection, but this part does not finish yet. For deadlock detection, nessDB v3.0 will use Helgrind, a thread error detector that can detect potential deadlocks arising from lock ordering problems.
For nessDB v2.0, it is a single-thread engine. The engine can process a single request at a time.
nessDB v3.0 used Snappy, a data compression and decompression library written in C++ by Google, to compress the buffered-tree node data when serializing the node to disk and decompress it when deserializing. nessDB v2.0 used QuickLZ, a compression library written in C, to compress the key-value pair.
https://github.com/BohuTANG/nessDB
https://github.com/BohuTANG/nessDB
https://github.com/BohuTANG/nessDB/wiki
Bohu Tang
2011
2016