Skip to main content

A persistent key-value storage engine based on LSM-tree architecture.

Project description

BloomKV

Light weight key value storage engine optimized for write heavy workloads.

Overview

This project is an LSM-tree based key-value storage engine implemented in Python, optimized for write-heavy workloads.

It is a persistent key-value store featuring:

  • A Write Ahead Log (WAL) for atomicity and durability.
  • An in-memory Memtable using SortedDict.
  • Persistent Sorted String Tables (SSTables).
  • Asynchronous, leveled compaction handled by a background worker thread (introduced in v1.0.0).
  • Metadata generation for created collections
  • Bloom filter functionality to prevent unnecessary disk operations for keys that we know dont exist in the collection
  • Storage engine is behind a FastAPI server and can be communicated with using REST APIs.
  • Supports range queries from start_key to end_key
  • Can be used as an importable library for programmatic integration

Getting Started

  • Detailed documentation and explanation of each component is available in the docs folder.

Contributing

Contributions, issues and feature requests are welcome! Contributing ideas

  • Implement a proper testing suite for different components. Unit tests, Integration Tests
  • Thread safety for multi threaded programs
  • UI features along with CLI and library utilisation. and many more, ideas are always welcome!

LICENSE

This project is licensed under the MIT License. See the LICENSE file for details.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

bloomkv-1.2.7.tar.gz (23.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

bloomkv-1.2.7-py3-none-any.whl (26.5 kB view details)

Uploaded Python 3

File details

Details for the file bloomkv-1.2.7.tar.gz.

File metadata

  • Download URL: bloomkv-1.2.7.tar.gz
  • Upload date:
  • Size: 23.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.0.1 CPython/3.12.6

File hashes

Hashes for bloomkv-1.2.7.tar.gz
Algorithm Hash digest
SHA256 55510ff36c34f06631dbb09f75fc2f196d1e12fb4af839c38872ae1af9889384
MD5 61e9887ef38dad2894142e4668fb62fc
BLAKE2b-256 d9aef58047a3885a5ed9b9fd7d824ece5be2b9cc124e162fd530e696b8f8083c

See more details on using hashes here.

File details

Details for the file bloomkv-1.2.7-py3-none-any.whl.

File metadata

  • Download URL: bloomkv-1.2.7-py3-none-any.whl
  • Upload date:
  • Size: 26.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.0.1 CPython/3.12.6

File hashes

Hashes for bloomkv-1.2.7-py3-none-any.whl
Algorithm Hash digest
SHA256 e79c8fbf9c29e03f6bf9264d644997d85e978fd45396a17a4241e81c7edcec81
MD5 a952acca4bd045bd585a68f9b8c7d98d
BLAKE2b-256 b01ae8fb50f1237db1563c20732699b47650c3e11cc33056645a6cc3213313fd

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page