Skip to main content

A distributed no-master key-value store

Project description

Welcome to MoaT-KV!

MoaT-KV is a master-less distributed key-value storage system. It circumvents the CAP theorem (you can’t have all of consistency, availablilty, and fault tolerance) using the assumption that a key is typically changed by one node only. It is thus resistant to partitioning and intended to be always-on; it will not block or lose updates, even in a partitioned network.

MoaT-KV comes with several batteries included:

  • Basic user management, pattern-based ACLs

  • Strong typing, code- and/or JSON Schema-based

  • Data mangling

  • Background code execution

  • Seamless recovery even if only one master is running

The underlying communication is based on MQTT. A Serf back-end is also available. Others are easy to implement.

MoaT-KV was originally called “distkv”.

API

MoaT-KV offers an efficient msgpack-based interface to access data and to change internal settings. Most configuration is stored inside MoaT-KV itself.

Stored data are not forced to be strings or binary sequences, but can be anything that MsgPack supports. Keys to storage are multi-level and support string, integer/float, and tuple keys.

Non-Features

MoaT-KV does not support data partitioning. Every node stores the whole data set and can instantly deliver mostly-uptodate data.

MoaT-KV does not have a disk-based storage backend. Periodic snapshots and event logs can be used to quickly restore a system, if necessary.

Status

MoaT-KV is mostly stable. There are a lot of corner cases that don’t have tests yet.

TODOs: * some services (esp. command line tools and runners) are under-tested * there’s no good API for errors

TODO

  • clean up some of the more egregious command line mistakes

  • create a page for showcase-ing subprojects (knx owfs akumuli …)

  • improve Home Assistant integration

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

moat-kv-0.70.19.tar.gz (177.0 kB view details)

Uploaded Source

Built Distribution

moat_kv-0.70.19-py3-none-any.whl (126.6 kB view details)

Uploaded Python 3

File details

Details for the file moat-kv-0.70.19.tar.gz.

File metadata

  • Download URL: moat-kv-0.70.19.tar.gz
  • Upload date:
  • Size: 177.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.8

File hashes

Hashes for moat-kv-0.70.19.tar.gz
Algorithm Hash digest
SHA256 6b3f1ab1d7c17d82b9e5db5559a4e204f1cd375b375bd4a8939d3069c8732e6b
MD5 33c84a49062053eb7e20dc626b59fdbf
BLAKE2b-256 70c8a8090bf4eda90b27200c529ab112490e6a7a0f26b80b3202ab67f70f1eca

See more details on using hashes here.

Provenance

File details

Details for the file moat_kv-0.70.19-py3-none-any.whl.

File metadata

  • Download URL: moat_kv-0.70.19-py3-none-any.whl
  • Upload date:
  • Size: 126.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.8

File hashes

Hashes for moat_kv-0.70.19-py3-none-any.whl
Algorithm Hash digest
SHA256 11b9732a9937705f02a508cc1e9b9b4f704683cfe02871191834005dda6bedaa
MD5 c7179051592f574cfc1dfcd8e25fe4a0
BLAKE2b-256 f997aa3547e161a50407082560417d117e2fa5fcdbffa9d6c71bbd7226fd156b

See more details on using hashes here.

Provenance

Supported by

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