33We wrote Badger with these design goals in mind:
44
55- Write a key-value database in pure Go
6- - Use latest research to build the fastest KV database for data sets spanning
7- terabytes
6+ - Use latest research to build the fastest KV database for data sets spanning terabytes
87- Optimize for modern storage devices
98
109Badger’s design is based on a paper titled
1110[ WiscKey: Separating Keys from Values in SSD-conscious Storage] ( https://www.usenix.org/system/files/conference/fast16/fast16-papers-lu.pdf ) .
1211
1312## References
1413
15- The following blog posts are a great starting point for learning more about
16- Badger and the underlying design principles:
14+ The following blog posts are a great starting point for learning more about Badger and the
15+ underlying design principles:
1716
1817- [ Introducing Badger: A fast key-value store written natively in Go] ( https://hypermode.com/blog/badger/ )
1918- [ Make Badger crash resilient with ALICE] ( https://hypermode.com/blog/alice/ )
@@ -37,22 +36,19 @@ Badger and the underlying design principles:
3736| TTL support | Yes | Yes | No |
3837| 3D access (key-value-version) | Yes<sup >4</sup > | No | No |
3938
40- <sup >1</sup > The WiscKey paper (on which Badger is based) saw big wins with
41- separating values from keys, significantly reducing the write amplification
42- compared to a typical LSM tree.
39+ <sup >1</sup > The WiscKey paper (on which Badger is based) saw big wins with separating values from
40+ keys, significantly reducing the write amplification compared to a typical LSM tree.
4341
44- <sup >2</sup > RocksDB is an SSD-optimized version of LevelDB, which was designed
45- specifically for rotating disks. As such RocksDB's design isn't aimed at SSDs.
42+ <sup >2</sup > RocksDB is an SSD-optimized version of LevelDB, which was designed specifically for
43+ rotating disks. As such RocksDB's design isn't aimed at SSDs.
4644
47- <sup >3</sup > SSI: Serializable Snapshot Isolation. For more details, see the
48- blog post [ Concurrent ACID Transactions in
49- Badger] ( https://hypermode.com/blog/badger-txn/ )
45+ <sup >3</sup > SSI: Serializable Snapshot Isolation. For more details, see the blog post
46+ [ Concurrent ACID Transactions in Badger] ( https://hypermode.com/blog/badger-txn/ )
5047
51- <sup >4</sup > Badger provides direct access to value versions via its Iterator
52- API. Users can also specify how many versions to keep per key via Options.
48+ <sup >4</sup > Badger provides direct access to value versions via its Iterator API. Users can also
49+ specify how many versions to keep per key via Options.
5350
5451## Benchmarks
5552
56- We've run comprehensive benchmarks against RocksDB, BoltDB, and LMDB. The
57- benchmarking code with detailed logs are in the
58- [ badger-bench] ( https://github.com/dgraph-io/badger-bench ) repo.
53+ We've run comprehensive benchmarks against RocksDB, BoltDB, and LMDB. The benchmarking code with
54+ detailed logs are in the [ badger-bench] ( https://github.com/dgraph-io/badger-bench ) repo.
0 commit comments