DistKV: A distributed no-master key-value store¶
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.
DistKV offers an efficient interface to access and change data. For compatibility, a front-end that mostly-mimics the etcd2 protocol is planned.
Some of the above is still wishful thinking. In particular, we don’t have an etcd2 compatibility service yet.
- Principles of operation
- The DistKV tutorial
- The DistKV command
- DistKV’s client protocol
- DistKV’s server protocol
- DistKV and authentication
- Access control
- Code in DistKV
- Single-node runner
- Any-node runner
- Runner configuration
- Data Model
- Verifying and Translating Entries
- Open issues
- Release history