Wednesday, December 3, 2008

Dynamo: Amazon's Highly Available Key-value Store

[This is the first paper in which I've been able to tell that the authors are not native English speakers..]

Dynamo is a highly available decentralized storage system that sacrifices consistency (and ACID in general) for high availability. A few important assumptions about Dynamo are that it is used for applications needing to store only small objects and that it is used only in Amazon's non-hostile internal environment, hence removing the need to authenticate. Clients and servers make Service Level Agreements (SLAs) specifying certain system-related client expectations.

Dynamo was designed to take advantage of heterogeneity and to scale well, which it does through consistent hashing. By replicating data on multiple hosts and asynchronously propagating updates through these hosts, Dynamo provides high availability. It deals with failures through hinted handoffs, in which data for an unreachable node can be redirected and then put into the correct node at a later time. Dynamo provided an impressive amount of availability over 2 years at 99.9995% of requests.

Speculative Execution in a Distributed File System

Oops, ParLab opening + me losing the paper copy in Vegas -> didn't get to read before class/write a summary.