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
.....
.....
.....
Gary
· 4 years ago
In 'put()' process section, why are the numbers N-1 and W-1 instead of N and W?
- Sends the write request to N−1 highest-ranked healthy nodes from the preference list.
- The put() operation is considered successful after receiving W−1 confirmation.
Amey Naik
· 5 years ago
" preference list" - The list of nodes responsible for storing a particular key is called the preference list.
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