9. So Dynamo isn’t about speed.
It’s about immediate,
reliable writes.
It’s about
operation relaxation.
It’s about distribution
and fault tolerance.
It’s about almost
linear scalability.
Friday, August 31, 12
29. Read your write consistency
FE1 FE2
write read write read
v2 v2 v1 v1
v1 v2 v3
Data store
Friday, August 31, 12
30. Session consistency
FE
Session 1 Session 2
write read write read
v2 v2 v1 v1
v1 v2 v3
Data store
Friday, August 31, 12
31. Monotonic read consistency
FE1 FE2
read read read read read
v2 v2 v3 v3 v4
v1 v2 v3 v4
Data store
Friday, August 31, 12
32. Monotonic write consistency
FE1 FE2
write write read read
v1 v2 v3 v3
v1 v2 v3 v4
Data store
Friday, August 31, 12
33. Eventual consistency
FE1 FE2
read read read read write
v1 v2 v2 v3 v3
v1 v2 v3
Data store
Friday, August 31, 12
34. Hinted handoff
N: node, G: group including N
node(N) is unavailable
replicate to G or
store data(N) locally
hint handoff for later
node(N) is alive
handoff data to node(N)
Friday, August 31, 12
35. Key = “foo”, # = N -> Direct
handoff hint = true replica
fails
Key = “foo”
N
replicate
Friday, August 31, 12
36. Replica
handoff recovers
Friday, August 31, 12
37. All
Key = “foo”,
# = N -> replicas
handoff hint = fail
true
N
Friday, August 31, 12
38. All
replicas
handoff recover
replicate
Friday, August 31, 12
42. CAP – the variations
CA – irrelevant
CP – eventually unavailable offering
maximum consistency
AP – eventually inconsistent offering
maximum availability
Friday, August 31, 12
50. Many graphics I’ve
created myself
Some images originate from
istockphoto.com
except few ones taken
from Wikipedia
and product pages
Friday, August 31, 12