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, usage 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.10.tar.gz (26.5 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.10-py3-none-any.whl (29.0 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: bloomkv-1.2.10.tar.gz
  • Upload date:
  • Size: 26.5 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.10.tar.gz
Algorithm Hash digest
SHA256 61ba427536fa228fa806a99f468e59c3b65d94b94f1bec4d71f31f9e5aa3a66a
MD5 6180841053ab9d4d611fa61c507d3d05
BLAKE2b-256 9768d281a56be7a7b9ffe48ad65f9efd9e2a490de87d08fbb2b1159725b3d1b6

See more details on using hashes here.

File details

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

File metadata

  • Download URL: bloomkv-1.2.10-py3-none-any.whl
  • Upload date:
  • Size: 29.0 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.10-py3-none-any.whl
Algorithm Hash digest
SHA256 784a645d56856f95e3d59ec270729d96b33ced22b972216b039bfef05ab54ee8
MD5 6ce982186190ef749d3d1d8f1fb64fb6
BLAKE2b-256 78bc014a37bc7a479475f3c5b3826f6dce94a67f0788187f63a0d806485aeb08

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