Amazon has just published a white paper
about its latest project Dynamo, which focuses on distributed storage.
Dynamo isn't an operating system; rather, it works on a series of hundreds of commodity PCs running Linux
, all hooked up to an internal network. And while the company has no plans to sell the service to the public, Dynamo plays an integral role in a number of Amazon's existing offerings, including its shopping cart, product catalog and S3 -- Amazon's online web app storage solution.The theory behind Dynamo is that when nodes go down -- in lay terms, when the server fails or the network dies -- customers should still be able to do what they need to do, like view items and add them to their carts.
Dynamo is able to ensure this with "optimistic replication," a process where data is copied to multiple servers. It brings its replicas up-to-date after a certain period of time, and conducts its own "conflict resolution" when data appears inconsistent.
Imagine that: being able to serve your customers, even while the world is ending on the back-end.
You don't need to be as big as Amazon to consider implementing your own version of the Dynamo solution. When Twitter's userbase started outgrowing its system functionalities, the company made generous use of a plugin called ActionCache
, which ensures that cached pages render properly for users, even if the site crashes.
"There's nothing worse than serving users the information they're not looking for," quipped co-founder Blaine Cook of Twitter.
Looks like Amazon's Dynamo did 'em one better: you don't just get cached pages, you can go on shopping like nothing ever happened. In the midst of chaos, wouldn't it be nice if real life worked that way?