Finding Riak
Building RESTful Services
Rails
Django
Twisted
Sinatra
Webmachine
Erlang/OTP
Rebar
REST
Getting to know Riak
160-bit integer space
divided into equally sized partitions
(ring_creation_size)
evenly distributed across entire cluster
Vnodes
each partition is claimed by a vnode
several vnodes run per node
Erlang
Javascript
N = Number of replicas (per bucket)
R = Number of replicas needed for read (per request)
W = Number of replicas needed for write (per request)
DW = Number of replicas needed for durable write (per request)
Phases
Chainable
Runs near the data
Nothing special
Just another node
no master node
no single point of failure
Cluster
Documents may have multiple values
Merged by vector clocks
Two options for conflicts
Last write wins (allow_mult per bucket)
Bubble up to application
Pluggable Backends
ETS
DETS
Innostore
Bitcask (just released)
Add node
+1 capacity
+1 computation