Hacker News new | past | comments | ask | show | jobs | submit login

I highly recommend people comfortable with Go checkout the building blocks at https://github.com/thomasjungblut/go-sstables

This codebase shows how SSTables, WAL, memtables, recordio, skiplists, segment files, and other storage engine components work in a digestible way. Includes a demo database showing how it all comes together to make a RocksDB / LevelDB competitor (not really).




Very cool! In a similar vein Distributed Services with Go [0] works through SST creating a KV store. I found it helpful for working with BadgerDB [1].

[0] https://pragprog.com/titles/tjgo/distributed-services-with-g...

[1] https://github.com/dgraph-io/badger


BadgerDB is quite a nice piece of software and (from my tests) the best key-value store in Go.

Dgraph wrote a great explanation article about why they wrote Badger and the tradeoffs and designs reasons: http://web.archive.org/web/20181116033431/https://blog.dgrap...


Judging from the precipitous decline in Badger commits since 20221 [0] and that the original/primary author is no longer with dgraph [1] or working on Badger, it may be worth looking at Cockroach's Pebble [2] instead.

[0] https://github.com/dgraph-io/dgraph/graphs/contributors

[1] https://manishrjain.com/about

[2] https://github.com/cockroachdb/pebble


+100 and an upvote. Badger db seems so under-rated to be and is a great drop in replacement for an embedded KV store. Amazing for several simple sharded simple side projects!


Thank you! And thanks for all the stargazers :) Let me know if you have any issues, happy to help and fix things if necessary.


Thank you Thomas, we appreciate you taking the time to open source all this for our benefit.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: