Dynamo: Amazon’s Highly Available Key-Value Store

System Assumptions and Requirements

  • Query Model: simple read and write operations to a data item that is uniquely identified by a key.
  • Dynamo targets applications that operate with weaker consistency if this results in high availability. Dynamo does not provide any isolation guarantees and permits only signle key updates.
  • Efficiency: The system needs to function on a commodity hardware infrastructure. services have stringent latency reqquirments which are in genneral measured at the 99.9th precentile of the distribution. (it will provide a response within 300ms for 99.9% of its requests fro a peak client load of 500 requests per second.)

Design Considerations

  • Weak Consistence ( eventually consistent)
  • Application resolves conflicts (always writable)
  • Incremental scalability
  • Symmetry
  • Decentralization
  • Hetergeneity

System Interface:

  • get(key) : return a single object or a list of objects with conflicting versions along with a context
  • put(key, contect, object)

Experiences and lessons learned

  • The main advantage of Dynamo is that its client applications can tune the values of N, R and W to achive their desired levels of performances, availability and durability.
  • Using an object buffer in each node main memory. Each write operation is stored in the buffer and gets periodically written to storage by a writer thread.
  • 99.94% of requests saw exactly one verison;0.00057% of requests saw 2 versions; 0.00047% of requests saw 3 versions and 0.00009% of requests saw 4 versions (amazing)
  • client-driven coordination is better than server-driven coordination.
  • Balancing background vs. foreground tasks.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: