Skip to content

binary-riviera/bitcask

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

43 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Bitcask

Reimplementation of the core bitcask protocol used in Riak using the original whitepaper in Python.

Where possible I've tried to use all built in libraries.

## To Do:

  • implement read write modes
  • implement keydir sharing across bitcask instances
  • implement sync on put and sync
  • add option to use CRC codes to actually validate the data written and read
  • add logging
  • add comprehensive e2e integration tests
  • add performance tests
  • add pyproject.toml
  • use hint_files when constructing keydir
  • share bitcask db location when instance already exists
  • add mypy type checking as Git hook
  • move tests to Pytest
  • add Poetry
  • add examples
  • add git hooks for formatting/tests/mypy
  • read file size and port number from environmental variables
  • implement LRU caching for smaller values

Useful commands:

To run all tests run poetry run pytest tests

To generate test coverage run poetry run coverage run -m pytest tests

To print test coverage report run poetry run coverage report -m

To format using Black run poetry run black bitcask

To typecheck using Mypy run poetry run mypy -p bitcask --check-untyped-defs

About

Python reimplementation of the Bitcask key value database

Topics

Resources

Stars

Watchers

Forks

Languages