Python implementation of a bitcask inspired KV store.
Keys are stored in a in-memory hash table (python dictionary). Each key maps to an entry indicating where the value can be found on disk, in a single seek.
Disclaimer: Not for production use. I implemented this project for educational purposes after hearing about it in Chapter 3 of Designing Data Intensive Applications.
>> from bitcask import BitCask
>> bcask = BitCask("db")
>> bcask.put("message", "Hello, World!")
>> bcask.get("message")
'Hello, World!"
- PUT item
- GET item
- DELETE item
- Rebuild hash table from data files after crash
- CRC checksums for data integrity
- Compaction
- Hint files
- CLI