A fast, append-only key/value store optimized for random read performance on SSD drives, written in C++11.
NuDB is a fast, append-only key/value database specifically optimized for random read performance on SSD drives. It is designed for content-addressable storage, where keys are often cryptographic hashes of the data, and provides constant-time reads regardless of database size. The library is header-only and built with C++11 and Boost, making it easy to integrate into existing projects.
C++ developers building high-performance storage systems, particularly those needing efficient, scalable key/value storage for SSDs in applications like blockchain nodes, content-addressable archives, or logging systems.
Developers choose NuDB for its SSD-optimized design, constant read performance, and low memory overhead. Unlike general-purpose databases, it excels in append-only scenarios, offering reliability and speed without the complexity of update/delete operations.
NuDB: A fast key/value insert-only database for SSD drives in C++11
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Engineered for modern SSDs to maximize random read efficiency, ensuring fast fetches even as the database grows to 281TB.
Read performance and memory usage are independent of database size, supporting scalability without degradation, as highlighted in the README.
Optimized for simultaneous reads without locking during disk I/O, ideal for high-concurrency scenarios like content-addressable storage.
Minimal RAM usage with key and data files optionally on separate devices, reducing resource overhead in production environments.
No separate compilation required; simply include headers in C++ projects, simplifying integration and build processes.
Append-only design means data cannot be modified or removed, limiting use to immutable storage and requiring workarounds for mutable data.
Inserts are serialized, which can slow down write-heavy applications compared to databases supporting concurrent writes, as noted in the algorithm description.
Building tests and examples requires managing git submodules for dependencies like Beast and RocksDB, adding setup steps and potential compatibility issues.
The hashing algorithm can lead to unrecoverable wasted space in data files due to spill records, though typically low (e.g., 1%), requiring offline cleanup.