Badger
Data
key-value store
SHOW HN2017
How HN took it
3 positive, 11 neutral or asking, 1 mixed, 5 critical, out of 20 comments about the project. Thread score -0.09.
Idea: 1 for, 3 againstDesign: 1 for, 1 againstDocs: 0 for, 1 against
The thread, comment by comment
Each row is a top-level comment and its replies, in HN's order. Select a cell to open that comment on HN.
positive neutral or mixed critical about another commenter or something else the maker
What HN said
What people liked
Design tradeoffs and WiscKey-inspired approach are well explained
From 1 comment
Link to WiscKey paper, discussion of tradeoffs made - awesome. DB vendors, take a page out of their book please. RocksDB does go to some lengths to reduce amplification on SSDs,…
makmanalp on HN
Simple, bare-bones design suited to fast storage
From 1 comment
On bare metal you'll be hard pressed to beat LMDB. It's really about as simple, and as bare bones as you can make a traditional KV storage while still preserving MVCC,…
valarauca1 on HN
Objections
No transactions, MVCC or snapshots, so comparison to RocksDB is considered unfair
From 3 comments
>Keep it simple, stupid. No support for transactions, versioning or snapshots -- anything that can be done outside of the store should be done outside. Not sure how I feel about…
aphextron on HN> The reason we want to KISS is to ensure a solid, robust, and performant layer of storage, that other projects can use to build their transactional versions, etc. Then comparing…
maxpert on HNAs it doesn't offer transactions, or MVCC you really shouldn't compare the two.
valarauca1 on HN
Written in Go, not C++, and Go is slow for random lookups
From 2 comments
Very interesting, though a shame (to me) that it's Go, as I'm actually after a C++ KV store that ideally isn't RocksDB (I want something that's much easier to embed and RocksDB…
Veratyr on HNGo is slow when doing a lot of random lookups. Each lookup into disk is a blocking one, which causes a Goroutine to block the OS thread. A new OS thread then has gets created…
mrjn on HN
Requests
Benchmarks on bare metal
From 1 comment
Very interesting, though a shame (to me) that it's Go, as I'm actually after a C++ KV store that ideally isn't RocksDB (I want something that's much easier to embed and RocksDB…
Veratyr on HN
Questions
What is the benefit over Berkeley DB or RocksDB?
From 1 comment
>Keep it simple, stupid. No support for transactions, versioning or snapshots -- anything that can be done outside of the store should be done outside. Not sure how I feel about…
aphextron on HN
What do people store in KV stores without a database on top?
From 1 comment
What do people typically store in KV stores that do not have a database built on top of them? Terabytes of what? Accessed by what kind of application logic?
wolf550e on HN
How does it compare with WiredTiger?
From 1 comment
How does it compare with wiredtiger which IIRC use also LSM trees?
amirouche on HN
Alternatives named
RocksDB
From 2 comments
Because you were already committed to building a database yourself, so RockDB saves you time in building the base layer. Transaction support comes with a set of performance…
true_religion on HNIt's often a storage layer for some more complex thing - e.g. riak had a leveldb "backend". Facebook uses rocksdb similarly, plus there's the myrocks storage engine for using…
makmanalp on HN
LevelDB
From 2 comments
Very interesting, though a shame (to me) that it's Go, as I'm actually after a C++ KV store that ideally isn't RocksDB (I want something that's much easier to embed and RocksDB…
Veratyr on HNI currently use leveldb in my project as a way to handle an intermediate data processing step that chews on much-larger-than-RAM datasets. And I didn't feel like this processing…
ereyes01 on HN
LMDB
From 2 comments
Very interesting, though a shame (to me) that it's Go, as I'm actually after a C++ KV store that ideally isn't RocksDB (I want something that's much easier to embed and RocksDB…
Veratyr on HNOn bare metal you'll be hard pressed to beat LMDB. It's really about as simple, and as bare bones as you can make a traditional KV storage while still preserving MVCC,…
valarauca1 on HN
Kyoto and Tokyo Cabinet
From 1 comment
Have you heard of Kyoto and Tokyo Cabinet libraries? That's the first thing I think of when I think of a KV in C++: http://fallabs.com/kyotocabinet/…
FRex on HN
WiredTiger
From 1 comment
How does it compare with wiredtiger which IIRC use also LSM trees?
amirouche on HN