[{"data":1,"prerenderedAt":295},["ShallowReactive",2],{"project-14633216":3},{"id":4,"name":5,"line":6,"line_source":7,"title":8,"url":9,"domain":10,"maker":11,"posted_at":12,"year":13,"points":14,"comments":15,"rank_in_year":16,"shown_in_year":17,"top":18,"tier":19,"category":20,"subcategory":21,"format":22,"keywords":23,"reception":28,"sentiment":29,"stance_mix":30,"scored_comments":35,"aspects":36,"strip":42,"post_text":43,"what":44,"said":59,"maker_in_thread":160,"shape":171,"grid":175,"attempts":257,"same_week":258,"maker_shows":255,"maker_hidden":287,"reader_version":288,"card":289},"14633216","Badger","an embeddable, persistent key-value store written in Go","title","Show HN: Badger – an embeddable, persistent key-value store written in Go","https:\u002F\u002Fgithub.com\u002Fdgraph-io\u002Fbadger","github.com","mrjn",1498439076,2017,88,33,516,2242,24,"notable","data","key-value store","library",[21,24,25,26,27],"embeddable database","golang","lsm tree","leveldb alternative","curious",-0.089,{"positive":31,"neutral":32,"mixed":33,"critical":34},3,11,1,5,20,{"design":37,"idea":38,"docs":39,"performance":41},{"positive":33,"critical":33},{"positive":33,"critical":31},{"positive":40,"critical":33},0,{"positive":40,"critical":40},[34,31,33,40,33,31,33,40,33,40,40,31,40,40,40,31,31,31,31,34,31,31,34,31,40,31,40,40,40,31,33,40,40],null,{"problem":45,"audience":43,"pricing":43,"motivation":43,"time_to_build":43,"stack":52,"openness":58,"stage":58,"team_size":58},{"value":46,"source":47,"evidence":48},"Provides a simple, fast persistent storage layer for building databases or applications","maker",[49],{"id":50,"by":11,"text":51},"14633826","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. One can take…",[53],{"value":54,"source":47,"evidence":55},"Go",[56],{"id":57},"post","unknown",{"praise":60,"objections":76,"requests":101,"questions":106,"alternatives":125},[61,69],{"value":62,"source":63,"evidence":64},"Design tradeoffs and WiscKey-inspired approach are well explained","commenter",[65],{"id":66,"by":67,"text":68},"14633505","makmanalp","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,…",{"value":70,"source":63,"evidence":71},"Simple, bare-bones design suited to fast storage",[72],{"id":73,"by":74,"text":75},"14634374","valarauca1","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,…",[77,91],{"value":78,"source":63,"evidence":79},"No transactions, MVCC or snapshots, so comparison to RocksDB is considered unfair",[80,84,88],{"id":81,"by":82,"text":83},"14633779","aphextron",">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…",{"id":85,"by":86,"text":87},"14633998","maxpert","> 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…",{"id":89,"by":74,"text":90},"14634378","As it doesn't offer transactions, or MVCC you really shouldn't compare the two.",{"value":92,"source":63,"evidence":93},"Written in Go, not C++, and Go is slow for random lookups",[94,98],{"id":95,"by":96,"text":97},"14633487","Veratyr","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…",{"id":99,"by":11,"text":100},"14633669","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…",[102],{"value":103,"source":63,"evidence":104},"Benchmarks on bare metal",[105],{"id":95,"by":96,"text":97},[107,111,118],{"value":108,"source":63,"evidence":109},"What is the benefit over Berkeley DB or RocksDB?",[110],{"id":81,"by":82,"text":83},{"value":112,"source":63,"evidence":113},"What do people store in KV stores without a database on top?",[114],{"id":115,"by":116,"text":117},"14633495","wolf550e","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?",{"value":119,"source":63,"evidence":120},"How does it compare with WiredTiger?",[121],{"id":122,"by":123,"text":124},"14634290","amirouche","How does it compare with wiredtiger which IIRC use also LSM trees?",[126,136,144,149,156],{"value":127,"source":63,"evidence":128},"RocksDB",[129,133],{"id":130,"by":131,"text":132},"14633977","true_religion","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…",{"id":134,"by":67,"text":135},"14633518","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…",{"value":137,"source":63,"evidence":138},"LevelDB",[139,140],{"id":95,"by":96,"text":97},{"id":141,"by":142,"text":143},"14634170","ereyes01","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…",{"value":145,"source":63,"evidence":146},"LMDB",[147,148],{"id":95,"by":96,"text":97},{"id":73,"by":74,"text":75},{"value":150,"source":63,"evidence":151},"Kyoto and Tokyo Cabinet",[152],{"id":153,"by":154,"text":155},"14634448","FRex","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:\u002F\u002Ffallabs.com\u002Fkyotocabinet\u002F…",{"value":157,"source":63,"evidence":158},"WiredTiger",[159],{"id":122,"by":123,"text":124},{"comments":161,"answered":162,"key":163},6,4,[164,165,168],{"id":50,"text":51},{"id":166,"text":167},"14634047","It's not. The comparison is using the same APIs as provided by LevelDB\u002FRocksDB. Not the transactional ones mentioned below. TransactionDB* txn_db; Status s =…",{"id":169,"text":170},"14634120","Badger should outperform LevelDB easily, particularly as the value sizes increase. The design and our benchmarks are both consistent with this. I haven't had a chance to…",{"commenters":172,"max_depth":162,"maker_replies":161,"first_comment_mins":173,"lifespan_hours":174},22,55,188,[176,180,184,186,188,192,194,196,198,200,204,206,208,212,214,215,216,217,220,223,225,227,229,231,235,237,239,241,243,246,248,249,253],[177,40,34,178,179,40],"14633501","project\u002Fpositive\u002Fnone","skybrian",[181,40,31,182,183,40],"14633606","maker\u002Fneutral\u002Fnone","slackingoff2017",[81,33,33,185,82,40],"project\u002Fcritical\u002Fdesign",[50,33,40,187,11,33],"maker\u002Fneutral\u002Fdesign",[189,33,33,190,191,40],"14633869","project\u002Fcritical\u002Fidea","foodie_",[130,33,31,193,131,40],"project\u002Fneutral\u002Fidea",[85,33,33,195,86,40],"project\u002Fcritical\u002Fdocs",[166,33,40,197,11,33],"maker\u002Fneutral\u002Fdocs",[95,199,33,190,96,40],2,[201,199,40,202,203,40],"14633612","other\u002Fneutral\u002Fnone","V-eHGsd_",[169,199,40,205,11,33],"project\u002Fpositive\u002Fperformance",[73,199,31,207,74,40],"project\u002Fmixed\u002Fperformance",[209,199,40,210,211,40],"14635751","other\u002Fneutral\u002Fperformance","ntoshev",[213,199,40,210,74,40],"14691489",[153,199,40,202,154,40],[115,31,31,193,116,40],[134,31,31,193,67,40],[218,31,31,193,219,40],"14633550","peterhunt",[221,31,31,193,222,40],"14633733","rroblak",[141,31,34,224,142,40],"project\u002Fpositive\u002Fidea",[226,31,31,193,116,40],"14639761",[228,31,31,193,142,40],"14648801",[66,162,34,230,67,40],"project\u002Fpositive\u002Fdesign",[232,34,31,233,234,40],"14633611","project\u002Fneutral\u002Fperformance","continuations",[99,34,40,236,11,33],"maker\u002Fneutral\u002Fperformance",[238,34,31,236,234,40],"14634064",[240,34,40,236,11,33],"14634139",[242,161,40,202,11,33],"14634895",[244,161,40,202,245,40],"14634915","detaro",[122,247,31,193,123,40],7,[89,247,33,190,74,40],[250,247,40,251,252,40],"14634521","commenter\u002Fneutral\u002Fnone","fh973",[254,255,40,202,256,40],"14648793",8,"dylz",[],[259,264,269,274,278,282],{"id":260,"name":261,"points":262,"category":263},"14644539","GreenPiThumb",537,"hardware",{"id":265,"name":266,"points":267,"category":268},"14625795","Insect",354,"dev_tools",{"id":270,"name":271,"points":272,"category":273},"14652217","Hackerhunt",335,"productivity",{"id":275,"name":276,"points":277,"category":268},"14612440","Sourcetrail",328,{"id":279,"name":280,"points":281,"category":268},"14614304","pack3d",260,{"id":283,"name":284,"points":285,"category":286},"14636699","HyperLogLog",194,"languages",false,"v2",{"id":290,"name":5,"line":6,"ai":287,"cat":20,"year":13,"points":14,"comments":15,"rec":28,"s":291,"top":18,"kw":292,"maker":11,"domain":10,"tier":19,"attempts":40,"strip":293,"url":9,"mix":294,"praise":62,"objection":78,"sub":21},14633216,-0.09,[21,24,25,26,27],"531013101003000333353353030003100",[31,32,33,34],1794036556661]