DistKV: A distributed no-master key-value store¶
Rationale¶
Any kind of distributed storage is subject to the CAP theorem (also called “Brewer’s theorem”): you can’t get all of (global) Consistency, Availability, and Partition tolerance. The problem is that you do want all three of these.
One way around this problem is to recognize that on most KV storage systems, any given record is rarely (if ever) changed by more than one entity at the same time. Thus, a simple gossip protocol is sufficient for distributing data.
DistKV is intended to be used in a mostly-RAM architecture. There is no disk-based storage backend; snapshots and event logs are used to restore a system, if necessary.
See Protocol Overview <overview.html> for details about DistKV’s choices.
API¶
DistKV offers an efficient interface to access and change data.
Status¶
DistKV is in production use as the backbone of the author’s home and office automation setup.
Note that as of DistKV 0.30, multi-word paths were replaced with dotted strings. Some pieces of documentation might still reflect the old style.
- Principles of operation
- The DistKV tutorial
- Starting DistKV
- The DistKV command
- DistKV’s client protocol
- DistKV’s server protocol
- DistKV and authentication
- Access control
- Code in DistKV
- Runner types
- Runner configuration
- CallAdmin
- Data Model
- Verifying and Translating Entries
- Fixing DistKV network problems
- Extending DistKV
- Plugins and related software
- Open issues
- Release history