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.6.tar.gz (23.7 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.6-py3-none-any.whl (26.4 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: bloomkv-1.2.6.tar.gz
  • Upload date:
  • Size: 23.7 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.6.tar.gz
Algorithm Hash digest
SHA256 0a72b38ae61d1e52e0a5e981a92c0e80eab3cfd9c82bd9d8f971936da3a0c669
MD5 62bcfdfdf60cb38e99672ece88cc6e16
BLAKE2b-256 9dd32b2839603b38b9bb3ed155197a725b2af18b80e5e8e6afdbbe2c4303f00a

See more details on using hashes here.

File details

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

File metadata

  • Download URL: bloomkv-1.2.6-py3-none-any.whl
  • Upload date:
  • Size: 26.4 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.6-py3-none-any.whl
Algorithm Hash digest
SHA256 c9aa97f34343e9f46fedb5ee763fb19dd883b09758705a7d563fbbbef8689d83
MD5 aa99724fa3c57247de90fe564d6bd2b3
BLAKE2b-256 76a17d43b84cb85a53e9395addd6f568e5e5b6cb92b53151bee69f4dde03ed60

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