sectionZippyDB [6acf9ab7]

- Build on RocksDB, but less management
- Generic KV store, supports snapshot reads and partial read/write
-
Snapshot reads
- cheap operation that uses snapshot handlers to perform multiple reads
-
basically RCU, but if you read while a write is happening the read goes to a snapshot
- handles versions, whereas RCU doesn't handle versions
- also uses a cleaner or garbage collector or sweeper, whereas RCU places the burden on the writer
-
Data can be replicated either with gossip protocols or paxos, although usually there's a master
- specific read only replicas called followers are occasionally added for high volume reads
-
Divides times into small epocs, each epoc zippy assigns a primary replica, that is the paxos leader
- Allows clients to choose which consistency level they come into (same as Spanner)
- Consistent reading -> clients go to the current primary of the shard
- Stale information -> can go to a replica
- Also allows for read-your-writes with a hash that signals to the replicas to manually update
-
Has a data shuttle, which basically tiers it into Primary -> Secondary -> Follower, on per shard basis
- A shard is a box
- Shard management service is the orchestrator, and tells each shard what they own, master that runs over the control plane
- Store is based on top of RocksDB