The Amazon Dynamo system, commercially available as Amazon DynamoDB, is a highly available and scalable distributed key/value based datastore built for supporting internal Amazon's applications. Dynamo is used to manage the state of services that have very high reliability requirements and need tight control over the tradeos between availability, consistency, cost-effectiveness and performance. In practice, Amazons platform has a very diverse set of applications with dierent storage requirements. A select set of applications requires a storage technology that is exible enough to let application designers congure their data store appropriately based on these tradeos to achieve high availability and guaranteed performance in the most cost eective manner. There are many services on Amazons platform that only need primary-key access to a data store. The common pattern of using a relational database would lead to ineciencies and limit scale and availability. Thus, Dynamo provides a simple primary-key only interface to meet the requirements of these applications. The query model of the Dynamo system relies on simple read and write operations to a data item that is uniquely identied by a key. State is stored as binary objects (blobs) identied by unique keys. No operations span multiple data items.
Dynamo's partitioning scheme relies on a variant of consistent hashing mechanism to distribute the load across multiple storage hosts. In this mechanism, the output range of a hash function is treated as a fixed circular space or ring (i.e. the largest hash value wraps around to the smallest hash value). Each node in the system is assigned a random value within this space which represents its position on the ring. Each data item identied by a key is assigned to a node by hashing the data items key to yield its position on the ring, and then walking the ring clockwise to find the first node with a position larger than the items position. Thus, each node becomes responsible for the region in the ring between it and its predecessor node on the ring. The principle advantage of consistent hashing is that departure or arrival of a node only aects its immediate neighbors and other nodes remain unaected.
In Dynamo system, Each data item is replicated at N hosts where N is a parameter congured per-instance. Each key k is assigned to a coordinator node. The coordinator is in charge of the replication of the data items that fall within its range. In addition to locally storing each key within its range, the coordinator replicates these keys at the (N - 1) clockwise successor nodes in the ring. This results in a system where each node is responsible for the region of the ring between it and its Nth predecessor. As illustrated in the below figure, node B replicates the key k at nodes C and D in addition to storing it locally. Node D will store the keys that fall in the ranges (A;B], (B;C], and (C;D]. The list of nodes that is responsible for storing a particular key is called the preference list. The system is designed so that every node in the system can determine which nodes should be in this list for any particular key.
There has been error in communication with Booktype server. Not sure right now where is the problem.
You should refresh this page.