31. WILL THE REAL OBJECT PLEASE STEP
FORWARD?
• Riak always accepts writes - even during network partitions and other badness
• Objects are versioned to automatically detect ancestors/siblings
• Conflicts are detected on reads
• Eventually consistent
basho
Tuesday, December 7, 2010
32. That sounds great...
but can I do anything without a key?
Tuesday, December 7, 2010
35. function(v) {
var m = v.values[0].data.
match('w*','g');
var r = [];
for(var i in m)
if (m[i] != '') {
var o = {};
o[m[i]] = 1;
r.push(o);
}
return r;
}
basho
Tuesday, December 7, 2010
36. map()
function(v) {
var m = v.values[0].data.
match('w*','g');
var r = [];
for(var i in m)
if (m[i] != '') {
var o = {};
o[m[i]] = 1;
r.push(o);
}
return r;
}
basho
Tuesday, December 7, 2010
39. R2
reduce()
6
5
8
7
4
3
1
function(v) {
var r = {};
for (var i in v) {
for(var w in v[i]) {
if (w in r)
r[w] += v[i][w];
else
r[w] = v[i][w];
}
}
return [r];
}
basho
Tuesday, December 7, 2010
41. ch ild
people/dean
child
chi
ld
people/bob people/alice
people/claire
basho
Tuesday, December 7, 2010
42. he r
mot
ch ild
father people/dean
child mo
the
r
chi
ld
people/bob people/alice
people/claire
basho
Tuesday, December 7, 2010
43. he r
hild m ot
grandc
ch ild
father so n people/dean
child mo
the
daughter r
chi
dau ld
people/bob people/alice ght
grandc er
hild
people/claire
basho
Tuesday, December 7, 2010
44. he r
m ot
ch ild
father so n people/dean
child mo
the
daughter r
chi
dau ld
people/bob people/alice ght
er
GET /riak/person/bob/people,child,_
key link link
bucket tag
people/claire
basho
Tuesday, December 7, 2010
45. he r
mot
ch ild
father so n people/dean
child mo
the
daughter r
chi
dau ld
people/bob people/alice ght
er
GET /riak/person/bob/people,child,_/_,child,_
key link1 link1 link2 link2
bucket tag bucket tag
people/claire
basho
Tuesday, December 7, 2010
46. he r
mot
ch ild
father so n people/dean
child mo
the
daughter r
chi
dau ld
people/bob people/alice ght
er
GET /riak/person/bob/people,child,1/people,child,_
people/claire
basho
Tuesday, December 7, 2010
47. COMPARED TO RDBMS
• No schema • No schema migrations - version your
objects
• No transactions
• Noreplication topologies - just add
• No joins (but we do have map/reduce) nodes to scale
• No secondary indices (but we do have
links!)
Tuesday, December 7, 2010
50. MOCHI MEDIA
www.mochimedia.com
• Multiple clusters in production
• Sessions (web and Flash) - 5 nodes, ~20MM keys - highest traffic
Developer
• User data storage - 3 nodes, bucket-per-game
• URL Shortener - 2 nodes, bucket-per-game
• Social graph - 3 nodes, OAuth credentials, relationships
Text and link here but
basho
Tuesday, December 7, 2010
51. MOZILLA TEST PILOT
http://bit.ly/aC0i4f
• Data collector for anonymized Firefox usage statistics
• High peak throughput - pure writes
• Large MapReduce queries for analytics “Riak meets or exceeds all the write
performance requirements...it was nice to
see predictable performance and
stability under load.”
basho
Tuesday, December 7, 2010
52. WEGEO
• Mobile Productivity / Collaboration App
- Task lists, Shopping lists, Calendar
• Event and Check-in logs
• Monthly reports archive “Scalability I could understand, on
a platform I could understand.”
• Third-party coupon and deal aggregation
basho
Tuesday, December 7, 2010
53. GETTING RIAK
Prebuild Packages The Bleeding Edge
https://github.com/basho
http://bitbucket.org/basho
http://downloads.basho.com
Tuesday, December 7, 2010
54. http://wiki.basho.com
follow twitter.com/basho/team
riak-users@lists.basho.com
#riak on Freenode
basho
Tuesday, December 7, 2010