- A log-structured key-value storage engine, written in C, inspired by Riak's Bitcask paper
- Designed to store variable-length key-value pairs
- Supports the following operations:
put,get,delete
- Key-value pairs are represented as byte-arrays, and stored on disk for persistence

- Keys are additionally stored in an in-memory hashtable (keydir) for quick lookups

- All writes are append-only operations, to minimize IOs
- Deletes create tombstones, which are cleaned up by the
mergeoperation - Each persist directory contains a
.metadatafile to keep track of the latest file being written to
make persist- creates thepersistbinaryopen <dirname>- opens a persist directoryput <key> <value>- stores key-value pairget <key>- retrieves the value for a keydelete <key>- deletes key-value pairmerge- removes stale entries from the directoryexit- stops the storage engine