Our basic approach, an improvement on Chain Replication, maintains strong consistency while greatly improving read throughput.
- The original chain-replication model logically maintains a chain of all nodes storing a given object (KV)
- The head of the chain serves writes, and the write is only successful when the it propagates all the way down the chain.
- The tail of the chain serves reads.
- Read hotspots/bottlenecks
- Apportioned queries refers to dividing (strongly consistent) read operations over all nodes in the chain
- Performance matches eventually consistent systems for “read-mostly” workloads
- Consistency level is tunable - you can elect to receive a stale read during times of heavy write contention
- Geographically diverse clusters
- Uses Zookeeper for deployments