[HN Gopher] Show HN: CaskDB - project to teach you building a ke... ___________________________________________________________________ Show HN: CaskDB - project to teach you building a key value store Author : avinassh Score : 97 points Date : 2022-05-08 15:25 UTC (7 hours ago) (HTM) web link (github.com) (TXT) w3m dump (github.com) | ofpiyush wrote: | That is some thorough documentation! | pandemicsyn wrote: | Nice! A (really terrible) Bitcask implementation was one of the | first things I ever wrote in Go | (https://github.com/pandemicsyn/bitcasket). Had no clue wtf i was | doing but the Riak bitcask paper was clear enough that I was able | to at least make a go of it. That whole experiment sent me on a | different career trajectory - and was key to me switching from | Devops/SRE style career path to a dev path. | dandanua wrote: | In short, keys are stored in a hash table in RAM, k/v pairs are | written to log files. Dead simple, but powerful enough. | avinassh wrote: | Hey HN! For the past few months, I have been learning about the | internals of database systems. After doing a batch at Recurse | Center (Nov 2021) researching databases, I have been working on | writing my toy database. I found many excellent articles on | building compilers, but I could not find many practical resources | for databases. CaskDB is the project I wish I had started with. | | CaskDB is based on Riak's Bitcask paper. The idea of Bitcask is | brilliant yet straightforward, which makes it attractive for | newbies to learn about key-value store internals and implement | one. | | I have set up this project in TDD fashion with the tests. So, you | start with simple functions, pass the tests, and the difficulty | level goes up. There are hints if you get stuck (e.g. | https://github.com/avinassh/py-caskdb/blob/e0819f7/format.py...). | When all the tests pass, in the end, you would have written a | persistent key-value store. | | I had great fun implementing this, and I hope you do too. And I | hope this makes you dig deep into the fantastic world of database | engineering. | | link - https://github.com/avinassh/py-caskdb ___________________________________________________________________ (page generated 2022-05-08 23:00 UTC)