Wrap Up
Wrap up 1 min readLesson 5 of 5
This chapter covers many concepts and techniques. To refresh your memory, the following table summarizes features and corresponding techniques used for a distributed key-value store.
| Goal/Problems | Technique |
|---|---|
| Ability to store big data | Use consistent hashing to spread load across servers |
| High availability reads | Data replicationMulti-datacenter setup |
| Highly available writes | Versioning and conflict resolution with vector clocks |
| Dataset partition | Consistent Hashing |
| Incremental scalability | Consistent Hashing |
| Heterogeneity | Consistent Hashing |
| Tunable consistency | Quorum consensus |
| Handling temporary failures | Sloppy quorum and hinted handoff |
| Handling permanent failures | Merkle tree |
| Handling data center outage | Cross-datacenter replication |
Table 2
Reference materials
- Amazon DynamoDB: https://aws.amazon.com/dynamodb/
- memcached: https://memcached.org/
- Redis: https://redis.io/
- Dynamo: Amazon’s Highly Available Key-value Store: https://www.allthingsdistributed.com/files/amazon-dynamo-sosp2007.pdf
- Cassandra: https://cassandra.apache.org/
- Bigtable: A Distributed Storage System for Structured Data: https://static.googleusercontent.com/media/research.google.com/en//archive/bigtable-osdi06.pdf
- Merkle tree: https://en.wikipedia.org/wiki/Merkle_tree
- Cassandra architecture: https://cassandra.apache.org/doc/latest/architecture/
- SStable: https://www.igvita.com/2012/02/06/sstable-and-log-structured-storage-leveldb/
- Bloom filter https://en.wikipedia.org/wiki/Bloom_filter
Finished reading?
Mark it complete to track your progress.