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

This looks like it has similar goals to bitcask. The tradeoffs and differences would be nice to know.



leveldb is a persistent ordered map; bitcask is a persistent hash table (no ordered iteration).

bitcask stores a fixed size record in memory for every key. So for databases with large number of keys, it may use too much memory for some applications.

bitcask can guarantee at most one disk seek per lookup I think. leveldb may have to do a small handful of disk seeks. To clarify, leveldb stores data in a sequence of levels. Each level stores approximately ten times as much data as the level before it. A read needs one disk seek per level. So if 10% of the db fits in memory, leveldb will need to do one seek (for the last level since all of the earlier levels should end up cached in the OS buffer cache). If 1% fits in memory, leveldb will need two seeks.


I just need to say - it's pretty cool to see Sanjay Ghemawat hanging out on HN.


Also worth noting: bitcask is written in erlang and leveldb in c++.


Technically bitcask is a combination of Erlang and C.




Join us for AI Startup School this June 16-17 in San Francisco!

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

Search: