Safety vs. Liveness
“Bad things
never happen.”
“Good things
eventually happen.”
Slide 21
Slide 21 text
Eventual
consistency is
not safe
“...it’s easy to satisfy liveness
without being useful... If all
replicas return the value 42 in
response to every request, the
system is eventually
consistent.”
http://www.bailis.org/blog/safety-and-liveness-eventual-consistency-is-not-safe/
Peter Bailis
Slide 22
Slide 22 text
so convergent
liveness
amaze
safety
very facepalm
wow such databas
Schema-Free
• Data is denormalized
• Single-access reads
• Great for write-heavy loads
• More duplication
• Harder to query
• Harder to evolve cold data
Slide 29
Slide 29 text
distributed
replicated
highly available
eventually-consistent
key-value + extras
free / open-source
paid add-ons + support
Riak Scalability
• More nodes →
more throughput
• More replicas →
greater reliability
• More RAM →
lower latency
• Faster disk →
more throughput,
lower latency
Slide 32
Slide 32 text
Riak Schema-Free
• It’s just a “blob”
• Key-Value access
• “Bucket” namespaces
• Indexing/search
optional
Slide 33
Slide 33 text
Riak Deployments
Slide 34
Slide 34 text
Don’t Use Riak if...
• Data fits in RAM on
one machine
• Data is tightly-coupled
or highly structured
• Application can’t
handle eventual
consistency*
*Riak 2.0 will have more
conflict-free datatypes
Slide 35
Slide 35 text
No content
Slide 36
Slide 36 text
Practical
Slide 37
Slide 37 text
Social Timelines
• Write new updates to
various collection
points
• Aggregate and de-
dupe on read
• Send notifications
• Yammer, Formspring,
Voxer
http://basho.com/riak-and-scala-at-yammer/