Dynamo (CC, Storage and Databases) Flashcards

(5 cards)

1
Q

Background (Dynamo)?

A

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)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Problem (Dynamo)? (4)
(TRAR)

A
  • 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.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Solution (Dynamo)?
(DHHRF)

A
  • 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.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Application/Uses (Dynamo)?

A
  • 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.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Strengths and Weaknesses (Dynamo)?

(SDNN) (CLFT)

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly