Scenarios
Pick a key/value engine by what your workload does most: read-heavy, write-ingest, mixed read-update, durable writes, ordered scans, or smallest footprint. Each scenario has real numbers.
The fastest way to pick an engine is to name what your workload does most, then read the one scenario that matches. Each page below states the question, names the winners with real numbers from four machines, and says plainly what to avoid and why.
All throughput figures are operations per second. Unless a table says otherwise, the headline number is an Apple M4 laptop (10 cores, 24 GB), 100,000 keys of 1 KB each, 8 concurrent clients. Where an engine scales differently on a server, the page shows the cross-machine numbers too.
| Scenario | The question | Top picks |
|---|---|---|
| Read-heavy | Mostly reading keys you already wrote | tamnd/kv, pogreb, buntdb |
| Write ingest | A firehose of new keys | pebble, badger, buntdb |
| Mixed read-update | Reads and updates in roughly equal measure | buntdb, badger, pebble |
| Durable writes | Every write must survive a crash | badger, sqlite |
| Range scans | Walking keys in sorted order | bbolt, pebble, goleveldb |
| Smallest footprint | Least disk per byte stored | goleveldb, pebble |
If you are not sure which one you are, you are probably mixed read-update: most real services read and write in roughly equal measure. Start there.