TurboKV: Insanely fast Rust key-value store
Points and comments are a snapshot, not live.
TurboKV is an async embedded key-value store with configurable durability and high throughput.
TurboKV is an async embedded key-value store for Rust, offering atomic batches, ordered range scans, compression (LZ4, Snappy, Zstd), and background compaction. It uses preallocated mmap segments for its WAL to avoid per-write system calls. Three durability presets: fast (no WAL), durable (WAL without per-write sync), and paranoid (sync before acknowledging). Benchmarks on an Apple M4 show sequential batch writes (100 keys/txn) at 3.8M keys/s (fast), 2.3M/s (durable), and 20.7K/s (paranoid). Single-key paranoid throughput is ~200/s due to storage-sync latency. It requires hardware AES support for Bloom filters.
What commenters are saying
The main contention is about the "durable" preset, which does not fsync before acknowledging writes, only surviving process crash but not power loss. Commenters argue this mislabels durability and echoes past MongoDB controversies. The author clarifies that periodic flushes, WAL rotation, and clean close provide checkpoints, but paranoid() is the true sync-before-ack mode. Some debate whether mmap-based WAL can ever provide true durability. A few note that other embedded DBs use similar tradeoffs, and benchmark figures reflect these distinctions.