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

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.5.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.5-py3-none-any.whl (26.5 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: bloomkv-1.2.5.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.5.tar.gz
Algorithm Hash digest
SHA256 635810667b3f6a5106c63eeac4140058ab197337de99343e95cceb7858865e3e
MD5 0839f3529a367e0788b9b58a89802282
BLAKE2b-256 7fb6fa849b5cc90fa4d0e529e1ce1e72c7978e01e131b479067d10b86a039339

See more details on using hashes here.

File details

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

File metadata

  • Download URL: bloomkv-1.2.5-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.5-py3-none-any.whl
Algorithm Hash digest
SHA256 39cebb65790f88c2ac64f81a1aeb7cfff9f0ce9cac4a597cb67523eea0026c9c
MD5 f358fffd4e6be2dc5bc7eaf8e9f61ca1
BLAKE2b-256 5550ae9a8e75bb048159d3f1f784d0f762ba77adcaf8be7de6504a90babd676a

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