Amazon DynamoDB

SEEDLING
Planted: 2025-01-06
#DISTRIBUTED-SYSTEMS
Last tended: 2025-01-06


Dynamo is Amazon’s highly available key-value store.

Source: Dynamo: Amazon’s Highly Available Key-value Store

Context: Amazon uses a service oriented architecture consisting of a huge number of services. Handling failures is the default mode of operation for Amazon handling these many services. At any given time, there are many failing services. Dynamo is designed by keeping this in mind. It has to have high availability inspite of the many failing services. Dynamo sacrifices consistency under certain failure scenarios to achieve this level of high availability.

Design

Core techniques (Challenge - Technique - Advantage)

System interface

Dynamo uses MD5 hash on the key, which is used to determine the storage nodes responsible for serving the key.

Partitioning algorithm

Dynamo uses a variant of consistent hashing. The basic consistent hasing has two main problems:

  1. Non uniform distribution
  2. Non heterogeneity (doesn’t consider the capacity of individual nodes)

In this variant, instead of mapping a node to a single point in the circle, each node is mapped to multiple points.

Each node now manages multiple virtual nodes that are responsible for multiple points (tokens) in the ring.

Advantages:


Good RSS Readers →