Skip to main content

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

Project description

Simple Python Storage Engine

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.

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

lsm_storage_engine_key_value_store-1.2.2.tar.gz (21.3 kB view details)

Uploaded Source

Built Distribution

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

File details

Details for the file lsm_storage_engine_key_value_store-1.2.2.tar.gz.

File metadata

File hashes

Hashes for lsm_storage_engine_key_value_store-1.2.2.tar.gz
Algorithm Hash digest
SHA256 718f25611a77b7ef7df3afa46275fb267340542efbbdd161a9547e283c832fd6
MD5 f7149f1a8df732243504c7e1a250cb94
BLAKE2b-256 980ef9cf02439bc777599ce8982e4a193038439938b9437f3cddd65e057e9053

See more details on using hashes here.

File details

Details for the file lsm_storage_engine_key_value_store-1.2.2-py3-none-any.whl.

File metadata

File hashes

Hashes for lsm_storage_engine_key_value_store-1.2.2-py3-none-any.whl
Algorithm Hash digest
SHA256 cc86728cb217cd5b58fb229c14bb253f5f9b5cf6d3673c902c88f2ef2b9ad39d
MD5 6e3d50d88f5a0af01a9645d5716953a5
BLAKE2b-256 5599dd79c77eef14d1eaa6df5dc8ef6cd6f13a341b80114ec8014ae69f6aa13a

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