15. Fault-Tolerant
• All nodes participate equally - no SPOF
• All data is replicated
• Cluster transparently survives ...
• node failures
• network partitions
• Built on Erlang/OTP (designed for FT)
16. Highly-Available
• Masterless: Any node can service client
requests.
• Fallbacks are used when nodes are down.
• Always accepts read and write requests.
• Per-Request Quorums
18. Geo Distributable &
Horizontally Scalable
• Default configuration is in a cluster
• Load and data are spread evenly
• Add more nodes to get more X
• Multi Data Center Replication*
19. Built for the Web
• HTTP is default (but not only) interface
• Does HTTP/REST well (see Webmachine)
• Plays well with HTTP infrastructure -
reverse proxy caches, load balancers, web
servers.
• Suitable for many web and mobile
applications.
53. Consistent Hashing &
The Ring
• 160-bit integer keyspace
• Divided into fixed 0
number of evenly-sized
partitions
32 partitions 2 160/4
2 160/2
54. Consistent Hashing &
The Ring node 0
node 1
• 160-bit integer keyspace node 2
• Divided into fixed 0 node 3
number of evenly-sized
partitions
• Partitions are claimed by 32 partitions 2 160/4
nodes in the cluster
2 160/2
55. Consistent Hashing &
The Ring node 0
node 1
• 160-bit integer keyspace node 2
• Divided into fixed node 3
number of evenly-sized
partitions
• Partitions are claimed by
nodes in the cluster
• Replicas go to the N
partitions following the
key
56. Consistent Hashing &
The Ring node 0
node 1
• 160-bit integer keyspace node 2
• Divided into fixed node 3
number of evenly-sized
partitions
• Partitions are claimed by
nodes in the cluster N=3
• Replicas go to the N
partitions following the
key
hash(“utah/uphpu”)
59. Hinted Handoff
• Node fails X
X
• Requests go to fallback X
X
X
X
X
X
hash(“utah/uphpu”)
60. Hinted Handoff
• Node fails
• Requests go to fallback
• Node comes back
hash(“utah/uphpu”)
61. Hinted Handoff
• Node fails
• Requests go to fallback
• Node comes back
• “Handoff” - data returns
to recovered node
hash(“utah/uphpu”)
62. Hinted Handoff
• Node fails
• Requests go to fallback
• Node comes back
• “Handoff” - data returns
to recovered node
• Normal operations
resume
hash(“utah/uphpu”)
Used for moving data around & dealing with failures - without applications noticing.\n\ndue to how data is replicated, there is no SPOF, or master / slave setup.\n\ndue to no SPOF and how replication is done, every node in the cluster looks the same.\n - can read and write from each node\n - turns out to be operationally friendly.\n\n\nAT&T for mHealth is using Riak replication across multiple data centers.\n\n
always accepts writes.\n - (will not talk in detail, but you can ask me questions, send me email, or bug me on twitter).\n - causes the need to read repair.\n - eventually consistent. (tough for some people to grok at first).\n - ask me questions, or find me after & we can chat all day long about it.\n
\n
X = throughput, compute power for MapReduce, storage, lower latency\nData center replication. Focus on disaster survival vs recovery.\nenables us to have local data access no matter where you are.\n\n
Basic operations are done over HTTP or a Protocol Buffer interface.\n\ndon’t spend much time here\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
will not talk about in detail, but you can ask questions\n - again, twitter\n\ndon’t spend much time here\n
will not talk about in detail, but you can ask questions\n - again, twitter\n\ndon’t spend much time here\n
\n
\n
\n
\n
\n
\n
\n
will not talk about in detail, but you can ask questions\n - again, twitter\n\ndon’t spend much time here\n