[{"data":1,"prerenderedAt":195},["ShallowReactive",2],{"project-31304897":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":34,"aspects":35,"strip":40,"post_text":41,"what":42,"said":61,"maker_in_thread":125,"shape":131,"grid":134,"attempts":157,"same_week":158,"maker_shows":37,"maker_hidden":187,"reader_version":188,"card":189},"31304897","CaskDB","project to teach you building a key value store","title","Show HN: CaskDB – project to teach you building a key value store","https:\u002F\u002Fgithub.com\u002Favinassh\u002Fpy-caskdb","github.com","avinassh",1652023503,2022,175,12,344,2570,14,"notable","learning_science","educational database project","other",[24,25,26,27],"key value store","bitcask","database internals","log structured storage","loved",0.519,{"positive":31,"neutral":32,"mixed":33,"critical":33},5,2,0,7,{"idea":36,"performance":38,"docs":39},{"positive":37,"critical":33},3,{"positive":33,"critical":33},{"positive":32,"critical":33},[33,31,33,37,31,33,37,33,31,31,31,33],null,{"problem":43,"audience":50,"pricing":41,"motivation":54,"time_to_build":41,"stack":58,"openness":59,"stage":60,"team_size":60},{"value":44,"source":45,"evidence":46},"Learning how key-value store and database internals work by building one","maker",[47],{"id":48,"by":11,"text":49},"31304903","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…",{"value":51,"source":45,"evidence":52},"Developers learning database internals",[53],{"id":48,"by":11,"text":49},{"value":55,"source":45,"evidence":56},"Maker wished they had a practical database resource to start with",[57],{"id":48,"by":11,"text":49},[],"open_source","unknown",{"praise":62,"objections":93,"requests":94,"questions":95,"alternatives":115},[63,76,83],{"value":64,"source":65,"evidence":66},"Good, thorough documentation and TDD-style learning path","commenter",[67,71,75],{"id":68,"by":69,"text":70},"31305988","ofpiyush","That is some thorough documentation!",{"id":72,"by":73,"text":74},"31309505","unmole","This looks excellent! Nit: Typo in the hyperlink to the paper.",{"id":48,"by":11,"text":49},{"value":77,"source":65,"evidence":78},"Useful for learning system design and databases",[79],{"id":80,"by":81,"text":82},"31309837","kwizzt","Nice project! I have been studying system design recently and read a lot about Dynamo, Cassandra, Kafka, etc. and I realized that they have much more in common than I thought.…",{"value":84,"source":65,"evidence":85},"Bitcask paper is clear and approachable",[86,90],{"id":87,"by":88,"text":89},"31307553","pandemicsyn","Nice! A (really terrible) Bitcask implementation was one of the first things I ever wrote in Go (https:\u002F\u002Fgithub.com\u002Fpandemicsyn\u002Fbitcasket). Had no clue wtf i was doing but the…",{"id":91,"by":11,"text":92},"31310772","Yes! bitcask paper is straightforward to read and understand. The idea of bitcask was suggested to Riak's devs when Eric Brewer (of CAP theorem fame) joined Riak's board: > None…",[],[],[96,106],{"value":97,"source":65,"evidence":98},"How Bitcask compares in performance to LSM trees and B+trees",[99,103],{"id":100,"by":101,"text":102},"31309150","josephg","I hadn't heard about bitcask before. Its design looks like a great alternative to LSM trees or B+trees like lmdb. Are there any good benchmarks comparing the approaches? The…",{"id":104,"by":11,"text":105},"31311057","I am not aware of any benchmarks with rocksdb (LSM) or lmdb (b-tree), but theoretically it will be much faster at the cost of extra RAM - In Bitcask, reads have at most single…",{"value":107,"source":65,"evidence":108},"Whether Bitcask's compaction cost matters in practice",[109,112],{"id":110,"by":101,"text":111},"31311380","The other downside of Bitcask is that it requires periodic compaction operations to avoid continuously increasing disk utilization. LSM trees and B+Trees do this work \"on the…",{"id":113,"by":11,"text":114},"31311411","LSM also requires periodic compaction, right? > I'm not sure how big a downside that is in practice, but it might be unfair to compare lmdb or rocksdb with bitcask if bitcask is…",[116,120],{"value":117,"source":65,"evidence":118},"RocksDB (LSM tree)",[119],{"id":104,"by":11,"text":105},{"value":121,"source":65,"evidence":122},"LMDB (B+tree)",[123,124],{"id":100,"by":101,"text":102},{"id":104,"by":11,"text":105},{"comments":31,"answered":126,"key":127},1,[128,129,130],{"id":48,"text":49},{"id":91,"text":92},{"id":104,"text":105},{"commenters":34,"max_depth":132,"maker_replies":31,"first_comment_mins":33,"lifespan_hours":133},4,16,[135,137,138,140,144,145,147,148,149,150,152,154],[48,33,33,136,11,126],"project\u002Fpositive\u002Fidea",[87,126,31,136,88,33],[91,126,33,139,11,126],"commenter\u002Fneutral\u002Fnone",[141,32,37,142,143,33],"31306678","project\u002Fneutral\u002Fidea","dandanua",[100,37,31,136,101,33],[104,37,33,146,11,126],"project\u002Fneutral\u002Fperformance",[110,37,37,146,101,33],[113,37,33,139,11,126],[80,132,31,136,81,33],[68,31,31,151,69,33],"project\u002Fpositive\u002Fdocs",[72,153,31,151,73,33],6,[155,153,33,156,11,126],"31310736","maker\u002Fneutral\u002Fdocs",[],[159,164,169,174,178,183],{"id":160,"name":161,"points":162,"category":163},"31335904","Himalayas",457,"web_saas",{"id":165,"name":166,"points":167,"category":168},"31275476","Dead Trees",389,"games",{"id":170,"name":171,"points":172,"category":173},"31333436","Oldest Search",295,"productivity",{"id":175,"name":176,"points":177,"category":168},"31296227","Battle of Flags",212,{"id":179,"name":180,"points":181,"category":182},"31297917","Weron",204,"infrastructure",{"id":184,"name":185,"points":186,"category":20},"31294306","Ankify",180,false,"v2",{"id":190,"name":5,"line":6,"ai":187,"cat":20,"year":13,"points":14,"comments":15,"rec":28,"s":191,"top":18,"kw":192,"maker":11,"domain":10,"tier":19,"attempts":33,"strip":193,"url":9,"mix":194,"praise":64,"objection":-1,"sub":21},31304897,0.52,[24,25,26,27],"050350305550",[31,32,33,33],1793991045383]