link walking with riak

77
Link Walking with Riak (KV) Susan Potter / Finsignia June 25, 2011

Upload: susan-potter

Post on 08-May-2015

2.462 views

Category:

Technology


2 download

DESCRIPTION

Describe how to create, manage and traverse links in Riak KV.

TRANSCRIPT

Page 1: Link Walking with Riak

Link Walking with Riak (KV)

Susan Potter / Finsignia

June 25, 2011

Page 2: Link Walking with Riak

Riak Ecosystem

RiakSearch

RiakKV

RiakCore

Page 3: Link Walking with Riak

Riak Ecosystem

RiakSearch

RiakKV

RiakCore

Page 4: Link Walking with Riak

Riak Ecosystem

RiakSearch

RiakKV

RiakCore

Page 5: Link Walking with Riak

Riak Ecosystem

RiakSearch

RiakKV

RiakCore

Page 6: Link Walking with Riak

Riak Ecosystem

RiakSearch

RiakKV

RiakCore

Page 7: Link Walking with Riak

% whoami

# curl http://susanpotter.net/whoami/windycitydb2011.json

• 15 years RDBMS• 3-4 years KV databases (CouchDB and now Riak)

• 1 year Redis• Using graph database in next part of platform

Page 8: Link Walking with Riak

% whoami

# curl http://susanpotter.net/whoami/windycitydb2011.json

• 15 years RDBMS• 3-4 years KV databases (CouchDB and now Riak)

• 1 year Redis• Using graph database in next part of platform

Page 9: Link Walking with Riak

% whoami

# curl http://susanpotter.net/whoami/windycitydb2011.json

• 15 years RDBMS• 3-4 years KV databases (CouchDB and now Riak)

• 1 year Redis• Using graph database in next part of platform

Page 10: Link Walking with Riak

% whoami

# curl http://susanpotter.net/whoami/windycitydb2011.json

• 15 years RDBMS• 3-4 years KV databases (CouchDB and now Riak)

• 1 year Redis• Using graph database in next part of platform

Page 11: Link Walking with Riak

Scope of Talk

• Problem Domain• Linking Objects• Traversing Links• Link Maintainence

• not Consistent Hashing or DHTs• not Vector Clocks• not Gossip Protocol• not Hinted Handoff• not Read Repair• not Eventual Consistency

Page 12: Link Walking with Riak

Scope of Talk

• Problem Domain• Linking Objects• Traversing Links• Link Maintainence

• not Consistent Hashing or DHTs• not Vector Clocks• not Gossip Protocol• not Hinted Handoff• not Read Repair• not Eventual Consistency

Page 13: Link Walking with Riak

Scope of Talk

• Problem Domain• Linking Objects• Traversing Links• Link Maintainence

• not Consistent Hashing or DHTs• not Vector Clocks• not Gossip Protocol• not Hinted Handoff• not Read Repair• not Eventual Consistency

Page 14: Link Walking with Riak

Scope of Talk

• Problem Domain• Linking Objects• Traversing Links• Link Maintainence

• not Consistent Hashing or DHTs• not Vector Clocks• not Gossip Protocol• not Hinted Handoff• not Read Repair• not Eventual Consistency

Page 15: Link Walking with Riak

Scope of Talk

• Problem Domain• Linking Objects• Traversing Links• Link Maintainence

• not Consistent Hashing or DHTs• not Vector Clocks• not Gossip Protocol• not Hinted Handoff• not Read Repair• not Eventual Consistency

Page 16: Link Walking with Riak

Scope of Talk

• Problem Domain• Linking Objects• Traversing Links• Link Maintainence

• not Consistent Hashing or DHTs• not Vector Clocks• not Gossip Protocol• not Hinted Handoff• not Read Repair• not Eventual Consistency

Page 17: Link Walking with Riak

Scope of Talk

• Problem Domain• Linking Objects• Traversing Links• Link Maintainence

• not Consistent Hashing or DHTs• not Vector Clocks• not Gossip Protocol• not Hinted Handoff• not Read Repair• not Eventual Consistency

Page 18: Link Walking with Riak

Scope of Talk

• Problem Domain• Linking Objects• Traversing Links• Link Maintainence

• not Consistent Hashing or DHTs• not Vector Clocks• not Gossip Protocol• not Hinted Handoff• not Read Repair• not Eventual Consistency

Page 19: Link Walking with Riak

Scope of Talk

• Problem Domain• Linking Objects• Traversing Links• Link Maintainence

• not Consistent Hashing or DHTs• not Vector Clocks• not Gossip Protocol• not Hinted Handoff• not Read Repair• not Eventual Consistency

Page 20: Link Walking with Riak

Scope of Talk

• Problem Domain• Linking Objects• Traversing Links• Link Maintainence

• not Consistent Hashing or DHTs• not Vector Clocks• not Gossip Protocol• not Hinted Handoff• not Read Repair• not Eventual Consistency

Page 21: Link Walking with Riak

Problem Domain

Page 22: Link Walking with Riak

Problem Domain

Page 23: Link Walking with Riak

Linking[1/2]

curl -X PUT -H ’Content-type: text/json’-H ’Link: </riak/artist/Lady-Gaga>; riaktag=“performer”’-H ’Link: </riak/artist/DJ-Snake>; riaktag=“producer”’-H ’Link: </riak/artist/DJ-White-Shadow>; riaktag=“producer”’...-H ’Link: </riak/artist/Fernando-Garibay>; riaktag=“producer”’http://host:8098/riak/album/Born-This-Way�data ...

Page 24: Link Walking with Riak

Linking[1/2]

curl -X PUT -H ’Content-type: text/json’-H ’Link: </riak/artist/Lady-Gaga>; riaktag=“performer”’-H ’Link: </riak/artist/DJ-Snake>; riaktag=“producer”’-H ’Link: </riak/artist/DJ-White-Shadow>; riaktag=“producer”’...-H ’Link: </riak/artist/Fernando-Garibay>; riaktag=“producer”’http://host:8098/riak/album/Born-This-Way�data ...

Page 25: Link Walking with Riak

Linking[1/2]

curl -X PUT -H ’Content-type: text/json’-H ’Link: </riak/artist/Lady-Gaga>; riaktag=“performer”’-H ’Link: </riak/artist/DJ-Snake>; riaktag=“producer”’-H ’Link: </riak/artist/DJ-White-Shadow>; riaktag=“producer”’...-H ’Link: </riak/artist/Fernando-Garibay>; riaktag=“producer”’http://host:8098/riak/album/Born-This-Way�data ...

Page 26: Link Walking with Riak

Linking[1/2]

curl -X PUT -H ’Content-type: text/json’-H ’Link: </riak/artist/Lady-Gaga>; riaktag=“performer”’-H ’Link: </riak/artist/DJ-Snake>; riaktag=“producer”’-H ’Link: </riak/artist/DJ-White-Shadow>; riaktag=“producer”’...-H ’Link: </riak/artist/Fernando-Garibay>; riaktag=“producer”’http://host:8098/riak/album/Born-This-Way�data ...

Page 27: Link Walking with Riak

Linking[1/2]

curl -X PUT -H ’Content-type: text/json’-H ’Link: </riak/artist/Lady-Gaga>; riaktag=“performer”’-H ’Link: </riak/artist/DJ-Snake>; riaktag=“producer”’-H ’Link: </riak/artist/DJ-White-Shadow>; riaktag=“producer”’...-H ’Link: </riak/artist/Fernando-Garibay>; riaktag=“producer”’http://host:8098/riak/album/Born-This-Way�data ...

Page 28: Link Walking with Riak

Linking[2/2]• Two Dimensional

both direction and type/tag

• 0..* links per objectof any type/tag

• Metadata traversingnot load, parse, then lookup cycle

• Model sufficiencyotherwise graph database might be more useful

• Link to other buckets(in same Riak cluster)

Page 29: Link Walking with Riak

Linking[2/2]• Two Dimensional

both direction and type/tag

• 0..* links per objectof any type/tag

• Metadata traversingnot load, parse, then lookup cycle

• Model sufficiencyotherwise graph database might be more useful

• Link to other buckets(in same Riak cluster)

Page 30: Link Walking with Riak

Linking[2/2]• Two Dimensional

both direction and type/tag

• 0..* links per objectof any type/tag

• Metadata traversingnot load, parse, then lookup cycle

• Model sufficiencyotherwise graph database might be more useful

• Link to other buckets(in same Riak cluster)

Page 31: Link Walking with Riak

Linking[2/2]• Two Dimensional

both direction and type/tag

• 0..* links per objectof any type/tag

• Metadata traversingnot load, parse, then lookup cycle

• Model sufficiencyotherwise graph database might be more useful

• Link to other buckets(in same Riak cluster)

Page 32: Link Walking with Riak

Linking[2/2]• Two Dimensional

both direction and type/tag

• 0..* links per objectof any type/tag

• Metadata traversingnot load, parse, then lookup cycle

• Model sufficiencyotherwise graph database might be more useful

• Link to other buckets(in same Riak cluster)

Page 33: Link Walking with Riak

Traversing Links[1/4]

• GET /riak/album/Born-This-Way/artist,_,1

=> all artists linked to album regardless of link tag/type

• GET /riak/album/Born-This-Way/artist,performer,1

=> artists linked to album with tag/type “performer”

• GET /riak/album/Born-This-Way/artist,producer,1

=> artists linked to album with tag/type “producer”

• GET /riak/album/Born-This-Way/_,performer,1

=> object linked to album with tag/type “performer”

• GET /riak/album/Born-This-Way/_,producer,1

=> object linked to album with tag/type “producer”

Page 34: Link Walking with Riak

Traversing Links[1/4]

• GET /riak/album/Born-This-Way/artist,_,1=> all artists linked to album regardless of link tag/type

• GET /riak/album/Born-This-Way/artist,performer,1

=> artists linked to album with tag/type “performer”

• GET /riak/album/Born-This-Way/artist,producer,1

=> artists linked to album with tag/type “producer”

• GET /riak/album/Born-This-Way/_,performer,1

=> object linked to album with tag/type “performer”

• GET /riak/album/Born-This-Way/_,producer,1

=> object linked to album with tag/type “producer”

Page 35: Link Walking with Riak

Traversing Links[1/4]

• GET /riak/album/Born-This-Way/artist,_,1=> all artists linked to album regardless of link tag/type

• GET /riak/album/Born-This-Way/artist,performer,1

=> artists linked to album with tag/type “performer”

• GET /riak/album/Born-This-Way/artist,producer,1

=> artists linked to album with tag/type “producer”

• GET /riak/album/Born-This-Way/_,performer,1

=> object linked to album with tag/type “performer”

• GET /riak/album/Born-This-Way/_,producer,1

=> object linked to album with tag/type “producer”

Page 36: Link Walking with Riak

Traversing Links[1/4]

• GET /riak/album/Born-This-Way/artist,_,1=> all artists linked to album regardless of link tag/type

• GET /riak/album/Born-This-Way/artist,performer,1=> artists linked to album with tag/type “performer”

• GET /riak/album/Born-This-Way/artist,producer,1

=> artists linked to album with tag/type “producer”

• GET /riak/album/Born-This-Way/_,performer,1

=> object linked to album with tag/type “performer”

• GET /riak/album/Born-This-Way/_,producer,1

=> object linked to album with tag/type “producer”

Page 37: Link Walking with Riak

Traversing Links[1/4]

• GET /riak/album/Born-This-Way/artist,_,1=> all artists linked to album regardless of link tag/type

• GET /riak/album/Born-This-Way/artist,performer,1=> artists linked to album with tag/type “performer”

• GET /riak/album/Born-This-Way/artist,producer,1

=> artists linked to album with tag/type “producer”

• GET /riak/album/Born-This-Way/_,performer,1

=> object linked to album with tag/type “performer”

• GET /riak/album/Born-This-Way/_,producer,1

=> object linked to album with tag/type “producer”

Page 38: Link Walking with Riak

Traversing Links[1/4]

• GET /riak/album/Born-This-Way/artist,_,1=> all artists linked to album regardless of link tag/type

• GET /riak/album/Born-This-Way/artist,performer,1=> artists linked to album with tag/type “performer”

• GET /riak/album/Born-This-Way/artist,producer,1=> artists linked to album with tag/type “producer”

• GET /riak/album/Born-This-Way/_,performer,1

=> object linked to album with tag/type “performer”

• GET /riak/album/Born-This-Way/_,producer,1

=> object linked to album with tag/type “producer”

Page 39: Link Walking with Riak

Traversing Links[1/4]

• GET /riak/album/Born-This-Way/artist,_,1=> all artists linked to album regardless of link tag/type

• GET /riak/album/Born-This-Way/artist,performer,1=> artists linked to album with tag/type “performer”

• GET /riak/album/Born-This-Way/artist,producer,1=> artists linked to album with tag/type “producer”

• GET /riak/album/Born-This-Way/_,performer,1

=> object linked to album with tag/type “performer”

• GET /riak/album/Born-This-Way/_,producer,1

=> object linked to album with tag/type “producer”

Page 40: Link Walking with Riak

Traversing Links[1/4]

• GET /riak/album/Born-This-Way/artist,_,1=> all artists linked to album regardless of link tag/type

• GET /riak/album/Born-This-Way/artist,performer,1=> artists linked to album with tag/type “performer”

• GET /riak/album/Born-This-Way/artist,producer,1=> artists linked to album with tag/type “producer”

• GET /riak/album/Born-This-Way/_,performer,1=> object linked to album with tag/type “performer”

• GET /riak/album/Born-This-Way/_,producer,1

=> object linked to album with tag/type “producer”

Page 41: Link Walking with Riak

Traversing Links[1/4]

• GET /riak/album/Born-This-Way/artist,_,1=> all artists linked to album regardless of link tag/type

• GET /riak/album/Born-This-Way/artist,performer,1=> artists linked to album with tag/type “performer”

• GET /riak/album/Born-This-Way/artist,producer,1=> artists linked to album with tag/type “producer”

• GET /riak/album/Born-This-Way/_,performer,1=> object linked to album with tag/type “performer”

• GET /riak/album/Born-This-Way/_,producer,1

=> object linked to album with tag/type “producer”

Page 42: Link Walking with Riak

Traversing Links[1/4]

• GET /riak/album/Born-This-Way/artist,_,1=> all artists linked to album regardless of link tag/type

• GET /riak/album/Born-This-Way/artist,performer,1=> artists linked to album with tag/type “performer”

• GET /riak/album/Born-This-Way/artist,producer,1=> artists linked to album with tag/type “producer”

• GET /riak/album/Born-This-Way/_,performer,1=> object linked to album with tag/type “performer”

• GET /riak/album/Born-This-Way/_,producer,1=> object linked to album with tag/type “producer”

Page 43: Link Walking with Riak

Traversing Links[2/4]

• GET /riak/album/A/artist,_,1/artist,collaborator,1

=> all artists associated with album A and all artists that have collaborated with these artists

• GET /riak/album/A/artist,performer,0/artist,collaborator,1

=> all “collaborators” of “performers” on album A excluding “performers”

• GET /riak/album/A/artist,producer,0/album,release,1

=> all albums that “producers” on album A have released

Page 44: Link Walking with Riak

Traversing Links[2/4]

• GET /riak/album/A/artist,_,1/artist,collaborator,1

=> all artists associated with album A and all artists that have collaborated with these artists

• GET /riak/album/A/artist,performer,0/artist,collaborator,1

=> all “collaborators” of “performers” on album A excluding “performers”

• GET /riak/album/A/artist,producer,0/album,release,1

=> all albums that “producers” on album A have released

Page 45: Link Walking with Riak

Traversing Links[2/4]

• GET /riak/album/A/artist,_,1/artist,collaborator,1=> all artists associated with album A and all artists that have collaborated with these artists

• GET /riak/album/A/artist,performer,0/artist,collaborator,1

=> all “collaborators” of “performers” on album A excluding “performers”

• GET /riak/album/A/artist,producer,0/album,release,1

=> all albums that “producers” on album A have released

Page 46: Link Walking with Riak

Traversing Links[2/4]

• GET /riak/album/A/artist,_,1/artist,collaborator,1=> all artists associated with album A and all artists that have collaborated with these artists

• GET /riak/album/A/artist,performer,0/artist,collaborator,1

=> all “collaborators” of “performers” on album A excluding “performers”

• GET /riak/album/A/artist,producer,0/album,release,1

=> all albums that “producers” on album A have released

Page 47: Link Walking with Riak

Traversing Links[2/4]

• GET /riak/album/A/artist,_,1/artist,collaborator,1=> all artists associated with album A and all artists that have collaborated with these artists

• GET /riak/album/A/artist,performer,0/artist,collaborator,1

=> all “collaborators” of “performers” on album A excluding “performers”

• GET /riak/album/A/artist,producer,0/album,release,1

=> all albums that “producers” on album A have released

Page 48: Link Walking with Riak

Traversing Links[2/4]

• GET /riak/album/A/artist,_,1/artist,collaborator,1=> all artists associated with album A and all artists that have collaborated with these artists

• GET /riak/album/A/artist,performer,0/artist,collaborator,1=> all “collaborators” of “performers” on album A excluding “performers”

• GET /riak/album/A/artist,producer,0/album,release,1

=> all albums that “producers” on album A have released

Page 49: Link Walking with Riak

Traversing Links[2/4]

• GET /riak/album/A/artist,_,1/artist,collaborator,1=> all artists associated with album A and all artists that have collaborated with these artists

• GET /riak/album/A/artist,performer,0/artist,collaborator,1=> all “collaborators” of “performers” on album A excluding “performers”

• GET /riak/album/A/artist,producer,0/album,release,1

=> all albums that “producers” on album A have released

Page 50: Link Walking with Riak

Traversing Links[2/4]

• GET /riak/album/A/artist,_,1/artist,collaborator,1=> all artists associated with album A and all artists that have collaborated with these artists

• GET /riak/album/A/artist,performer,0/artist,collaborator,1=> all “collaborators” of “performers” on album A excluding “performers”

• GET /riak/album/A/artist,producer,0/album,release,1

=> all albums that “producers” on album A have released

Page 51: Link Walking with Riak

Traversing Links[2/4]

• GET /riak/album/A/artist,_,1/artist,collaborator,1=> all artists associated with album A and all artists that have collaborated with these artists

• GET /riak/album/A/artist,performer,0/artist,collaborator,1=> all “collaborators” of “performers” on album A excluding “performers”

• GET /riak/album/A/artist,producer,0/album,release,1=> all albums that “producers” on album A have released

Page 52: Link Walking with Riak

Traversing Links[3/4]

artist,performer,1

_,_,0

/album,release,1

• Bucket namee.g. artist, album

• Tag (or type) namee.g. performer, producer

• Return (or “keep”)useful in nested traversals

• Wildcarding’_’ for bucket and tag means “any”

• Nestingtraverse on multiple levels

• Multiple Sources?how to walk links from multiple objects?

Page 53: Link Walking with Riak

Traversing Links[3/4]

artist,performer,1

_,_,0

/album,release,1

• Bucket namee.g. artist, album

• Tag (or type) namee.g. performer, producer

• Return (or “keep”)useful in nested traversals

• Wildcarding’_’ for bucket and tag means “any”

• Nestingtraverse on multiple levels

• Multiple Sources?how to walk links from multiple objects?

Page 54: Link Walking with Riak

Traversing Links[3/4]

artist,performer,1

_,_,0

/album,release,1

• Bucket namee.g. artist, album

• Tag (or type) namee.g. performer, producer

• Return (or “keep”)useful in nested traversals

• Wildcarding’_’ for bucket and tag means “any”

• Nestingtraverse on multiple levels

• Multiple Sources?how to walk links from multiple objects?

Page 55: Link Walking with Riak

Traversing Links[3/4]

artist,performer,1

_,_,0

/album,release,1

• Bucket namee.g. artist, album

• Tag (or type) namee.g. performer, producer

• Return (or “keep”)useful in nested traversals

• Wildcarding’_’ for bucket and tag means “any”

• Nestingtraverse on multiple levels

• Multiple Sources?how to walk links from multiple objects?

Page 56: Link Walking with Riak

Traversing Links[3/4]

artist,performer,1

_,_,0

/album,release,1

• Bucket namee.g. artist, album

• Tag (or type) namee.g. performer, producer

• Return (or “keep”)useful in nested traversals

• Wildcarding’_’ for bucket and tag means “any”

• Nestingtraverse on multiple levels

• Multiple Sources?how to walk links from multiple objects?

Page 57: Link Walking with Riak

Traversing Links[3/4]

artist,performer,1

_,_,0/album,release,1• Bucket name

e.g. artist, album

• Tag (or type) namee.g. performer, producer

• Return (or “keep”)useful in nested traversals

• Wildcarding’_’ for bucket and tag means “any”

• Nestingtraverse on multiple levels

• Multiple Sources?how to walk links from multiple objects?

Page 58: Link Walking with Riak

Traversing Links[3/4]

artist,performer,1_,_,0

/album,release,1

• Bucket namee.g. artist, album

• Tag (or type) namee.g. performer, producer

• Return (or “keep”)useful in nested traversals

• Wildcarding’_’ for bucket and tag means “any”

• Nestingtraverse on multiple levels

• Multiple Sources?how to walk links from multiple objects?

Page 59: Link Walking with Riak

curl -X POST -H “Content-type: application/json” \http://host:8098/mapred �data @- \{"inputs":[

["artist","Ke$ha"],["artist", "Lady+Gaga"]

],"query":[{"link": { "tag": "release", "bucket": "album" }},{"map":{ "language":"javascript",

"source":"function(v) return [v]; "}}

]}^D

Page 60: Link Walking with Riak

curl -X POST -H “Content-type: application/json” \http://host:8098/mapred �data @- \{"inputs":[

["artist","Ke$ha"],["artist", "Lady+Gaga"]

],"query":[{"link": { "tag": "release", "bucket": "album" }},{"map":{ "language":"javascript",

"source":"function(v) return [v]; "}}

]}^D

Page 61: Link Walking with Riak

curl -X POST -H “Content-type: application/json” \http://host:8098/mapred �data @- \{"inputs":[

["artist","Ke$ha"],["artist", "Lady+Gaga"]

],"query":[{"link": { "tag": "release", "bucket": "album" }},{"map":{ "language":"javascript",

"source":"function(v) return [v]; "}}

]}^D

Page 62: Link Walking with Riak

Link Maintenance

• Commit Hookscan use either pre- or post-commit hooks

• Automatic Backlinkscan use commit hooks to generate backlinks automatically

• Trigger Messageslinks could only be used as triggers

• Delete Cleanuppost-commit hook with backlinks can clean up links to new orphans automatically

Page 63: Link Walking with Riak

Link Maintenance

• Commit Hookscan use either pre- or post-commit hooks

• Automatic Backlinkscan use commit hooks to generate backlinks automatically

• Trigger Messageslinks could only be used as triggers

• Delete Cleanuppost-commit hook with backlinks can clean up links to new orphans automatically

Page 64: Link Walking with Riak

Link Maintenance

• Commit Hookscan use either pre- or post-commit hooks

• Automatic Backlinkscan use commit hooks to generate backlinks automatically

• Trigger Messageslinks could only be used as triggers

• Delete Cleanuppost-commit hook with backlinks can clean up links to new orphans automatically

Page 65: Link Walking with Riak

Link Maintenance

• Commit Hookscan use either pre- or post-commit hooks

• Automatic Backlinkscan use commit hooks to generate backlinks automatically

• Trigger Messageslinks could only be used as triggers

• Delete Cleanuppost-commit hook with backlinks can clean up links to new orphans automatically

Page 66: Link Walking with Riak

Possibilities

Object metadataextensions?

Page 67: Link Walking with Riak

Limitations

Not a graph database!

Page 68: Link Walking with Riak

References[1/2]

• Riak Wikihttp://wiki.basho.com/

• Riak Mailing [email protected]

• Riak Contribhttp://contrib.basho.com/

• Riak Code Reposhttp://github.com/basho

Page 69: Link Walking with Riak

References[1/2]

• Riak Wikihttp://wiki.basho.com/

• Riak Mailing [email protected]

• Riak Contribhttp://contrib.basho.com/

• Riak Code Reposhttp://github.com/basho

Page 70: Link Walking with Riak

References[1/2]

• Riak Wikihttp://wiki.basho.com/

• Riak Mailing [email protected]

• Riak Contribhttp://contrib.basho.com/

• Riak Code Reposhttp://github.com/basho

Page 71: Link Walking with Riak

References[1/2]

• Riak Wikihttp://wiki.basho.com/

• Riak Mailing [email protected]

• Riak Contribhttp://contrib.basho.com/

• Riak Code Reposhttp://github.com/basho

Page 72: Link Walking with Riak

References[2/2]

• Secondary index support in Riak?Introducing Secondary Indices: http://www.oscon.com/oscon2011/public/schedule/detail/19806

• riak_core applicationse.g. Riak Search, riak_zab, riak_pipe

• CometKV database supports Active Storage Objects (ASO), handlers

http://vanish.cs.washington.edu/pubs/osdi2010comet.pdf

Page 73: Link Walking with Riak

References[2/2]

• Secondary index support in Riak?Introducing Secondary Indices: http://www.oscon.com/oscon2011/public/schedule/detail/19806

• riak_core applicationse.g. Riak Search, riak_zab, riak_pipe

• CometKV database supports Active Storage Objects (ASO), handlers

http://vanish.cs.washington.edu/pubs/osdi2010comet.pdf

Page 74: Link Walking with Riak

References[2/2]

• Secondary index support in Riak?Introducing Secondary Indices: http://www.oscon.com/oscon2011/public/schedule/detail/19806

• riak_core applicationse.g. Riak Search, riak_zab, riak_pipe

• CometKV database supports Active Storage Objects (ASO), handlers

http://vanish.cs.washington.edu/pubs/osdi2010comet.pdf

Page 75: Link Walking with Riak

Credits

• Basho & Riak logosCourtesy of Basho

• Icy chained fence photohttp://www.flickr.com/photos/existentist/342177746/

• Frozen chain photohttp://www.flickr.com/photos/skedonk/4197921511/

• Hook and chain photohttp://www.flickr.com/photos/37491467@N07/3871760093/

Page 76: Link Walking with Riak

Questions?

Figure: http://www.flickr.com/photos/42682395@N04/

@SusanPotter

Page 77: Link Walking with Riak

Questions?

Figure: http://www.flickr.com/photos/42682395@N04/

@SusanPotter