đź“–Dynamo: Amazon's highly available key-value store

–
authors
DeCandia, Giuseppe and Hastorun, Deniz and Jampani, Madan and Kakulapati, Gunavardhan and Lakshman, Avinash and Pilchin, Alex and Sivasubramanian, Swaminathan and Vosshall, Peter and Vogels, Werner
year
2007
  • p.205

    One of the lessons our organization has learned from operating Amazon’s platform is that the reliability and scalability of a system is dependent on how its application state is managed.

  • p.205

    Dealing with failures in an infrastructure comprised of millions of components is our standard mode of operation; there are always a small but significant number of server and network components that are failing at any given time. As such Amazon’s software systems need to be constructed in a manner that treats failure handling as the normal case without impacting availability or performance.

  • p.206

    Experience at Amazon has shown that data stores that provide ACID guarantees tend to have poor availability. This has been widely acknowledged by both the industry and academia.

  • p.209 System interface is a get + set methods, where get returns a list of conflicting objects along with context. Put accepts key, context, and object.

    • Context is opaque to the caller and needs to be passed through from get to put. This allows transferring causality information in a stateless way.

  • p.213 To facilitate initial discover and avoid partitioning (e.g., when two nodes consider themselves part of the set but don’t know about each other), seed nodes are used. Seed nodes are discovered by external mechanisms and are known by all participants—therefore all membership updates propagate through seed nodes

Backlinks