Dynamo (CC, Storage and Databases) Flashcards
(5 cards)
Background (Dynamo)?
Dynamo is a highly available, scalable, and resilient data store.
It was developed by Amazon to address the need for a scalable, highly-available key-value storage system.
Dynamo is a set of techniques that together can form a highly available key-value storage system or a distributed data store.
It has properties of both databases and distributed hash tables (DHTs)
Problem (Dynamo)? (4)
(TRAR)
- Traditional Relational Database Management Systems (RDBMS) are not suitable for high write-availability.
- RDBMS chooses consistency over availability, which is not ideal for Amazon’s needs.
- Amazon wants their services to be always available.
- RDBMS has limited options to scale out.
Solution (Dynamo)?
(DHHRF)
- Dynamo uses a peer-to-peer architecture with symmetric nodes, where all nodes have the same responsibility.
- Data partitioning: It employs consistent hashing.
- Highly available writes: Vector clocks are used with reconciliation during reads.
- Handling Temporary Failures: Sloppy Quorum and hinted handoff
- Recovery from failures: Anti-entropy with Merkle trees.
- Failure Detection: A gossip-based protocol is used to detect membership changes and failures.
Application/Uses (Dynamo)?
- Dynamo is used internally at Amazon but is also available on AWS.
- Examples of services using Dynamo include shopping carts, session management, and product catalogs.
Strengths and Weaknesses (Dynamo)?
(SDNN) (CLFT)
Advantages:
- Dynamo is incrementally scalable
- It is decentralized, avoiding outages caused by centralized control.
- Dynamo exploits the heterogeneity of nodes
- Dynamo conserves network bandwidth by processing data locally whenever possible.
Disadvantages:
- Dynamo exhibits eventual consistency, which can lead to conflicts.
- The latency of get or put operations is dictated by the slowest of the replicas.
- It struggles to handle failures in a timely manner.
- Dynamo is not tolerant of master node failure.