Skip to content

lacriment/bitcask

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Bitcask

This project is a simple implementation of Bitcask, a log-structured key/value store design described by Basho in the Bitcask paper.

The goal of this repository is educational: it shows the core ideas behind Bitcask in a small Go codebase.

What It Does

  • Stores records in append-only .data files.
  • Keeps an in-memory key directory for fast lookups.
  • Supports put, get, delete, and listing keys.
  • Uses tombstone records for deletes.
  • Rebuilds the key directory from data files on startup.
  • Rotates data files when the active file grows too large.
  • Includes basic compaction support.
  • Verifies records with CRC checksums.

Running

go run .

This starts a small REPL backed by ./mydb.

Available commands:

put <key> <value>
get <key>
delete <key>
keys
exit

Reference

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors