Badger

Data

key-value store

SHOW HN2017

88points
33comments
#516of 2,242 in 2017
Top 24%of 2017 by points

How HN took it

CuriousMostly questions and neutral comments

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 HN
    • As 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 HN
    • Go 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 HN
    • It'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 HN
    • I 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 HN
    • 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
  • 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

Category, keywords, summaries and labels on this page were made by AI (Thread Reader v2) and not checked by hand. Each point links to the comments it came from.

Add a badge to your READMEShown on HackerShow
[![Shown on HackerShow](https://hackershow.org/badge.svg)](https://hackershow.org/show/14633216)