Interview Bootcamp

0% completed

The Life of Dynamo’s put() & get() Operations

Let’s learn how Dynamo handles get() and put() requests.

Strategies for choosing the coordinator node

Dynamo clients can use one of the two strategies to choose a node for their get() and put() requests:

  • Clients can route their requests through a generic load balancer.
  • Clients can use a partition-aware client library that routes the requests to the appropriate coordinator nodes with lower latency.

In the first case, the load balancer decides which way the request would be routed, while in the second strategy, the client selects the node to contact

.....

.....

.....

Like the course? Get enrolled and start learning!
G

Gary

· 4 years ago

In 'put()' process section, why are the numbers N-1 and W-1 instead of N and W?

  1. Sends the write request to N−1 highest-ranked healthy nodes from the preference list.
  2. The put() operation is considered successful after receiving W−1 confirmation.
Show 1 reply
A

Amey Naik

· 5 years ago

" preference list" - The list of nodes responsible for storing a particular key is called the preference list.

G

goobaek

· 3 years ago

`As stated above, put() requests are coordinated by one of the top  nodes in the preference list. Although it is always desirable to have the first node among the top  to coordinate the writes, thereby serializing all writes at a single location, this approach has led to uneven load distribution for Dynamo. This is because the request load is not uniformly distributed across objects. To counter this, any of the top  nodes in the preference list is allowed to coordinate the writes. In particular, since each write operation usually follows a read operation, the coordinator for a write operation is chosen to be the node that replied fastest to the previous read operation, which is stored in the request's context information. This optimization enables Dynamo to pick the node that has the data