[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)