SlideShare ist ein Scribd-Unternehmen logo
1 von 77
Downloaden Sie, um offline zu lesen
Link Walking with Riak (KV)


    Susan Potter / Finsignia




        June 25, 2011
Riak Ecosystem

       Riak
      Search


       Riak
       KV


       Riak
       Core
Riak Ecosystem

       Riak
      Search


       Riak
       KV


       Riak
       Core
Riak Ecosystem

       Riak
      Search


       Riak
       KV


       Riak
       Core
Riak Ecosystem

       Riak
      Search


       Riak
       KV


       Riak
       Core
Riak Ecosystem

       Riak
      Search


       Riak
       KV


       Riak
       Core
% 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
% 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
% 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
% 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
Scope of Talk


    •   Problem Domain      •   not Consistent Hashing or DHTs
    •   Linking Objects     •   not Vector Clocks
    •   Traversing Links    •   not Gossip Protocol
    •   Link Maintainence   •   not Hinted Handoff
                            •   not Read Repair
                            •   not Eventual Consistency
Scope of Talk


    •   Problem Domain      •   not Consistent Hashing or DHTs
    •   Linking Objects     •   not Vector Clocks
    •   Traversing Links    •   not Gossip Protocol
    •   Link Maintainence   •   not Hinted Handoff
                            •   not Read Repair
                            •   not Eventual Consistency
Scope of Talk


    •   Problem Domain      •   not Consistent Hashing or DHTs
    •   Linking Objects     •   not Vector Clocks
    •   Traversing Links    •   not Gossip Protocol
    •   Link Maintainence   •   not Hinted Handoff
                            •   not Read Repair
                            •   not Eventual Consistency
Scope of Talk


    •   Problem Domain      •   not Consistent Hashing or DHTs
    •   Linking Objects     •   not Vector Clocks
    •   Traversing Links    •   not Gossip Protocol
    •   Link Maintainence   •   not Hinted Handoff
                            •   not Read Repair
                            •   not Eventual Consistency
Scope of Talk


    •   Problem Domain      •   not Consistent Hashing or DHTs
    •   Linking Objects     •   not Vector Clocks
    •   Traversing Links    •   not Gossip Protocol
    •   Link Maintainence   •   not Hinted Handoff
                            •   not Read Repair
                            •   not Eventual Consistency
Scope of Talk


    •   Problem Domain      •   not Consistent Hashing or DHTs
    •   Linking Objects     •   not Vector Clocks
    •   Traversing Links    •   not Gossip Protocol
    •   Link Maintainence   •   not Hinted Handoff
                            •   not Read Repair
                            •   not Eventual Consistency
Scope of Talk


    •   Problem Domain      •   not Consistent Hashing or DHTs
    •   Linking Objects     •   not Vector Clocks
    •   Traversing Links    •   not Gossip Protocol
    •   Link Maintainence   •   not Hinted Handoff
                            •   not Read Repair
                            •   not Eventual Consistency
Scope of Talk


    •   Problem Domain      •   not Consistent Hashing or DHTs
    •   Linking Objects     •   not Vector Clocks
    •   Traversing Links    •   not Gossip Protocol
    •   Link Maintainence   •   not Hinted Handoff
                            •   not Read Repair
                            •   not Eventual Consistency
Scope of Talk


    •   Problem Domain      •   not Consistent Hashing or DHTs
    •   Linking Objects     •   not Vector Clocks
    •   Traversing Links    •   not Gossip Protocol
    •   Link Maintainence   •   not Hinted Handoff
                            •   not Read Repair
                            •   not Eventual Consistency
Scope of Talk


    •   Problem Domain      •   not Consistent Hashing or DHTs
    •   Linking Objects     •   not Vector Clocks
    •   Traversing Links    •   not Gossip Protocol
    •   Link Maintainence   •   not Hinted Handoff
                            •   not Read Repair
                            •   not Eventual Consistency
Problem Domain
Problem Domain
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 ...
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 ...
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 ...
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 ...
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 ...
Linking[2/2]
               •   Two Dimensional
                   both direction and type/tag




               •   0..* links per object
                   of any type/tag




               •   Metadata traversing
                   not load, parse, then lookup cycle




               •   Model sufficiency
                   otherwise graph database might be more useful




               •   Link to other buckets
                   (in same Riak cluster)
Linking[2/2]
               •   Two Dimensional
                   both direction and type/tag




               •   0..* links per object
                   of any type/tag




               •   Metadata traversing
                   not load, parse, then lookup cycle




               •   Model sufficiency
                   otherwise graph database might be more useful




               •   Link to other buckets
                   (in same Riak cluster)
Linking[2/2]
               •   Two Dimensional
                   both direction and type/tag




               •   0..* links per object
                   of any type/tag




               •   Metadata traversing
                   not load, parse, then lookup cycle




               •   Model sufficiency
                   otherwise graph database might be more useful




               •   Link to other buckets
                   (in same Riak cluster)
Linking[2/2]
               •   Two Dimensional
                   both direction and type/tag




               •   0..* links per object
                   of any type/tag




               •   Metadata traversing
                   not load, parse, then lookup cycle




               •   Model sufficiency
                   otherwise graph database might be more useful




               •   Link to other buckets
                   (in same Riak cluster)
Linking[2/2]
               •   Two Dimensional
                   both direction and type/tag




               •   0..* links per object
                   of any type/tag




               •   Metadata traversing
                   not load, parse, then lookup cycle




               •   Model sufficiency
                   otherwise graph database might be more useful




               •   Link to other buckets
                   (in same Riak cluster)
Traversing Links[1/4]

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

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

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

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

• GET /riak/album/Born-This-Way/_,producer,1
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

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

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

• GET /riak/album/Born-This-Way/_,producer,1
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

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

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

• GET /riak/album/Born-This-Way/_,producer,1
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

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

• GET /riak/album/Born-This-Way/_,producer,1
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

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

• GET /riak/album/Born-This-Way/_,producer,1
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

• GET /riak/album/Born-This-Way/_,producer,1
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

• GET /riak/album/Born-This-Way/_,producer,1
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
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
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”
Traversing Links[2/4]



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

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

• GET /riak/album/A/artist,producer,0/album,release,1
Traversing Links[2/4]



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

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

• GET /riak/album/A/artist,producer,0/album,release,1
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

• GET /riak/album/A/artist,producer,0/album,release,1
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

• GET /riak/album/A/artist,producer,0/album,release,1
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

• GET /riak/album/A/artist,producer,0/album,release,1
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
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
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
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
Traversing Links[3/4]
      artist,performer,1
     • Bucket name
       e.g. artist, album

     • Tag (or type) name
       e.g. performer, producer

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

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

     • Nesting
       traverse on multiple levels

     • Multiple Sources?
       how to walk links from multiple objects?
Traversing Links[3/4]
      artist,performer,1
     • Bucket name
       e.g. artist, album

     • Tag (or type) name
       e.g. performer, producer

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

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

     • Nesting
       traverse on multiple levels

     • Multiple Sources?
       how to walk links from multiple objects?
Traversing Links[3/4]
      artist,performer,1
     • Bucket name
       e.g. artist, album

     • Tag (or type) name
       e.g. performer, producer

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

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

     • Nesting
       traverse on multiple levels

     • Multiple Sources?
       how to walk links from multiple objects?
Traversing Links[3/4]
      artist,performer,1
     • Bucket name
       e.g. artist, album

     • Tag (or type) name
       e.g. performer, producer

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

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

     • Nesting
       traverse on multiple levels

     • Multiple Sources?
       how to walk links from multiple objects?
Traversing Links[3/4]


      _,_,0
     • Bucket name
       e.g. artist, album

     • Tag (or type) name
       e.g. performer, producer

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

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

     • Nesting
       traverse on multiple levels

     • Multiple Sources?
       how to walk links from multiple objects?
Traversing Links[3/4]


      _,_,0/album,release,1
     • Bucket name
       e.g. artist, album

     • Tag (or type) name
       e.g. performer, producer

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

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

     • Nesting
       traverse on multiple levels

     • Multiple Sources?
       how to walk links from multiple objects?
Traversing Links[3/4]


     • Bucket name
       e.g. artist, album

     • Tag (or type) name
       e.g. performer, producer

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

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

     • Nesting
       traverse on multiple levels

     • Multiple Sources?
       how to walk links from multiple objects?
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
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
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
Link Maintenance
            •   Commit Hooks
                can use either pre- or post-commit hooks




            •   Automatic Backlinks
                can use commit hooks to generate backlinks automatically




            •   Trigger Messages
                links could only be used as triggers




            •   Delete Cleanup
                post-commit hook with backlinks can clean up links to new orphans automatically
Link Maintenance
            •   Commit Hooks
                can use either pre- or post-commit hooks




            •   Automatic Backlinks
                can use commit hooks to generate backlinks automatically




            •   Trigger Messages
                links could only be used as triggers




            •   Delete Cleanup
                post-commit hook with backlinks can clean up links to new orphans automatically
Link Maintenance
            •   Commit Hooks
                can use either pre- or post-commit hooks




            •   Automatic Backlinks
                can use commit hooks to generate backlinks automatically




            •   Trigger Messages
                links could only be used as triggers




            •   Delete Cleanup
                post-commit hook with backlinks can clean up links to new orphans automatically
Link Maintenance
            •   Commit Hooks
                can use either pre- or post-commit hooks




            •   Automatic Backlinks
                can use commit hooks to generate backlinks automatically




            •   Trigger Messages
                links could only be used as triggers




            •   Delete Cleanup
                post-commit hook with backlinks can clean up links to new orphans automatically
Possibilities



         Object metadata
           extensions?
Limitations




    Not a graph database!
References[1/2]


    •   Riak Wiki
        http://wiki.basho.com/



    •   Riak Mailing List
        riak-users@lists.basho.com



    •   Riak Contrib
        http://contrib.basho.com/



    •   Riak Code Repos
        http://github.com/basho
References[1/2]


    •   Riak Wiki
        http://wiki.basho.com/



    •   Riak Mailing List
        riak-users@lists.basho.com



    •   Riak Contrib
        http://contrib.basho.com/



    •   Riak Code Repos
        http://github.com/basho
References[1/2]


    •   Riak Wiki
        http://wiki.basho.com/



    •   Riak Mailing List
        riak-users@lists.basho.com



    •   Riak Contrib
        http://contrib.basho.com/



    •   Riak Code Repos
        http://github.com/basho
References[1/2]


    •   Riak Wiki
        http://wiki.basho.com/



    •   Riak Mailing List
        riak-users@lists.basho.com



    •   Riak Contrib
        http://contrib.basho.com/



    •   Riak Code Repos
        http://github.com/basho
References[2/2]


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

      •   riak_core applications
          e.g. Riak Search, riak_zab, riak_pipe



      •   Comet
          KV database supports Active Storage Objects (ASO), handlers

          http://vanish.cs.washington.edu/pubs/osdi2010comet.pdf
References[2/2]


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

      •   riak_core applications
          e.g. Riak Search, riak_zab, riak_pipe



      •   Comet
          KV database supports Active Storage Objects (ASO), handlers

          http://vanish.cs.washington.edu/pubs/osdi2010comet.pdf
References[2/2]


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

      •   riak_core applications
          e.g. Riak Search, riak_zab, riak_pipe



      •   Comet
          KV database supports Active Storage Objects (ASO), handlers

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

    • Basho & Riak logos
      Courtesy of Basho

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

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

    • Hook and chain photo
      http://www.flickr.com/photos/37491467@N07/3871760093/
Questions?




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




         @SusanPotter
Questions?




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




         @SusanPotter

Weitere ähnliche Inhalte

Andere mochten auch

From Zero To Production (NixOS, Erlang) @ Erlang Factory SF 2016
From Zero To Production (NixOS, Erlang) @ Erlang Factory SF 2016From Zero To Production (NixOS, Erlang) @ Erlang Factory SF 2016
From Zero To Production (NixOS, Erlang) @ Erlang Factory SF 2016Susan Potter
 
Ricon/West 2013: Adventures with Riak Pipe
Ricon/West 2013: Adventures with Riak PipeRicon/West 2013: Adventures with Riak Pipe
Ricon/West 2013: Adventures with Riak PipeSusan Potter
 
Writing Bullet-Proof Javascript: By Using CoffeeScript
Writing Bullet-Proof Javascript: By Using CoffeeScriptWriting Bullet-Proof Javascript: By Using CoffeeScript
Writing Bullet-Proof Javascript: By Using CoffeeScriptSusan Potter
 
Dynamo: Not Just For Datastores
Dynamo: Not Just For DatastoresDynamo: Not Just For Datastores
Dynamo: Not Just For DatastoresSusan Potter
 
From Zero to Application Delivery with NixOS
From Zero to Application Delivery with NixOSFrom Zero to Application Delivery with NixOS
From Zero to Application Delivery with NixOSSusan Potter
 
Designing for Concurrency
Designing for ConcurrencyDesigning for Concurrency
Designing for ConcurrencySusan Potter
 
Functional Algebra: Monoids Applied
Functional Algebra: Monoids AppliedFunctional Algebra: Monoids Applied
Functional Algebra: Monoids AppliedSusan Potter
 
Running Free with the Monads
Running Free with the MonadsRunning Free with the Monads
Running Free with the Monadskenbot
 
Modern Algorithms and Data Structures - 1. Bloom Filters, Merkle Trees
Modern Algorithms and Data Structures - 1. Bloom Filters, Merkle TreesModern Algorithms and Data Structures - 1. Bloom Filters, Merkle Trees
Modern Algorithms and Data Structures - 1. Bloom Filters, Merkle TreesLorenzo Alberton
 
Scaling Teams, Processes and Architectures
Scaling Teams, Processes and ArchitecturesScaling Teams, Processes and Architectures
Scaling Teams, Processes and ArchitecturesLorenzo Alberton
 
Your data structures are made of maths!
Your data structures are made of maths!Your data structures are made of maths!
Your data structures are made of maths!kenbot
 
Scalable Architectures - Taming the Twitter Firehose
Scalable Architectures - Taming the Twitter FirehoseScalable Architectures - Taming the Twitter Firehose
Scalable Architectures - Taming the Twitter FirehoseLorenzo Alberton
 
Scalaz By Example (An IO Taster) -- PDXScala Meetup Jan 2014
Scalaz By Example (An IO Taster) -- PDXScala Meetup Jan 2014Scalaz By Example (An IO Taster) -- PDXScala Meetup Jan 2014
Scalaz By Example (An IO Taster) -- PDXScala Meetup Jan 2014Susan Potter
 
Graphs in the Database: Rdbms In The Social Networks Age
Graphs in the Database: Rdbms In The Social Networks AgeGraphs in the Database: Rdbms In The Social Networks Age
Graphs in the Database: Rdbms In The Social Networks AgeLorenzo Alberton
 
The Art of Scalability - Managing growth
The Art of Scalability - Managing growthThe Art of Scalability - Managing growth
The Art of Scalability - Managing growthLorenzo Alberton
 
NoSQL Databases: Why, what and when
NoSQL Databases: Why, what and whenNoSQL Databases: Why, what and when
NoSQL Databases: Why, what and whenLorenzo Alberton
 
Monitoring at scale - Intuitive dashboard design
Monitoring at scale - Intuitive dashboard designMonitoring at scale - Intuitive dashboard design
Monitoring at scale - Intuitive dashboard designLorenzo Alberton
 
Trees In The Database - Advanced data structures
Trees In The Database - Advanced data structuresTrees In The Database - Advanced data structures
Trees In The Database - Advanced data structuresLorenzo Alberton
 
Category theory for beginners
Category theory for beginnersCategory theory for beginners
Category theory for beginnerskenbot
 

Andere mochten auch (20)

From Zero To Production (NixOS, Erlang) @ Erlang Factory SF 2016
From Zero To Production (NixOS, Erlang) @ Erlang Factory SF 2016From Zero To Production (NixOS, Erlang) @ Erlang Factory SF 2016
From Zero To Production (NixOS, Erlang) @ Erlang Factory SF 2016
 
Ricon/West 2013: Adventures with Riak Pipe
Ricon/West 2013: Adventures with Riak PipeRicon/West 2013: Adventures with Riak Pipe
Ricon/West 2013: Adventures with Riak Pipe
 
Writing Bullet-Proof Javascript: By Using CoffeeScript
Writing Bullet-Proof Javascript: By Using CoffeeScriptWriting Bullet-Proof Javascript: By Using CoffeeScript
Writing Bullet-Proof Javascript: By Using CoffeeScript
 
Dynamo: Not Just For Datastores
Dynamo: Not Just For DatastoresDynamo: Not Just For Datastores
Dynamo: Not Just For Datastores
 
From Zero to Application Delivery with NixOS
From Zero to Application Delivery with NixOSFrom Zero to Application Delivery with NixOS
From Zero to Application Delivery with NixOS
 
Designing for Concurrency
Designing for ConcurrencyDesigning for Concurrency
Designing for Concurrency
 
Functional Algebra: Monoids Applied
Functional Algebra: Monoids AppliedFunctional Algebra: Monoids Applied
Functional Algebra: Monoids Applied
 
Running Free with the Monads
Running Free with the MonadsRunning Free with the Monads
Running Free with the Monads
 
Why Haskell
Why HaskellWhy Haskell
Why Haskell
 
Modern Algorithms and Data Structures - 1. Bloom Filters, Merkle Trees
Modern Algorithms and Data Structures - 1. Bloom Filters, Merkle TreesModern Algorithms and Data Structures - 1. Bloom Filters, Merkle Trees
Modern Algorithms and Data Structures - 1. Bloom Filters, Merkle Trees
 
Scaling Teams, Processes and Architectures
Scaling Teams, Processes and ArchitecturesScaling Teams, Processes and Architectures
Scaling Teams, Processes and Architectures
 
Your data structures are made of maths!
Your data structures are made of maths!Your data structures are made of maths!
Your data structures are made of maths!
 
Scalable Architectures - Taming the Twitter Firehose
Scalable Architectures - Taming the Twitter FirehoseScalable Architectures - Taming the Twitter Firehose
Scalable Architectures - Taming the Twitter Firehose
 
Scalaz By Example (An IO Taster) -- PDXScala Meetup Jan 2014
Scalaz By Example (An IO Taster) -- PDXScala Meetup Jan 2014Scalaz By Example (An IO Taster) -- PDXScala Meetup Jan 2014
Scalaz By Example (An IO Taster) -- PDXScala Meetup Jan 2014
 
Graphs in the Database: Rdbms In The Social Networks Age
Graphs in the Database: Rdbms In The Social Networks AgeGraphs in the Database: Rdbms In The Social Networks Age
Graphs in the Database: Rdbms In The Social Networks Age
 
The Art of Scalability - Managing growth
The Art of Scalability - Managing growthThe Art of Scalability - Managing growth
The Art of Scalability - Managing growth
 
NoSQL Databases: Why, what and when
NoSQL Databases: Why, what and whenNoSQL Databases: Why, what and when
NoSQL Databases: Why, what and when
 
Monitoring at scale - Intuitive dashboard design
Monitoring at scale - Intuitive dashboard designMonitoring at scale - Intuitive dashboard design
Monitoring at scale - Intuitive dashboard design
 
Trees In The Database - Advanced data structures
Trees In The Database - Advanced data structuresTrees In The Database - Advanced data structures
Trees In The Database - Advanced data structures
 
Category theory for beginners
Category theory for beginnersCategory theory for beginners
Category theory for beginners
 

Ähnlich wie Link Walking with Riak

Evolution of the Graph Schema
Evolution of the Graph SchemaEvolution of the Graph Schema
Evolution of the Graph SchemaJoshua Shinavier
 
Linked data radical change
Linked data   radical changeLinked data   radical change
Linked data radical changeRichard Wallis
 
Large Scale Graph Analytics with JanusGraph
Large Scale Graph Analytics with JanusGraphLarge Scale Graph Analytics with JanusGraph
Large Scale Graph Analytics with JanusGraphP. Taylor Goetz
 
Large Scale Graph Analytics with JanusGraph
Large Scale Graph Analytics with JanusGraphLarge Scale Graph Analytics with JanusGraph
Large Scale Graph Analytics with JanusGraphDataWorks Summit
 
Linked Data Best Practices and BibFrame
Linked Data Best Practices and BibFrameLinked Data Best Practices and BibFrame
Linked Data Best Practices and BibFrameRobert Sanderson
 
FiloDB: Reactive, Real-Time, In-Memory Time Series at Scale
FiloDB: Reactive, Real-Time, In-Memory Time Series at ScaleFiloDB: Reactive, Real-Time, In-Memory Time Series at Scale
FiloDB: Reactive, Real-Time, In-Memory Time Series at ScaleEvan Chan
 
Scaling the Web: Databases & NoSQL
Scaling the Web: Databases & NoSQLScaling the Web: Databases & NoSQL
Scaling the Web: Databases & NoSQLRichard Schneeman
 
How does Riak compare to Cassandra? [Cassandra London User Group July 2011]
How does Riak compare to Cassandra? [Cassandra London User Group July 2011]How does Riak compare to Cassandra? [Cassandra London User Group July 2011]
How does Riak compare to Cassandra? [Cassandra London User Group July 2011]Rainforest QA
 
"PageRank" - "The Anatomy of a Large-Scale Hypertextual Web Search Engine” pr...
"PageRank" - "The Anatomy of a Large-Scale Hypertextual Web Search Engine” pr..."PageRank" - "The Anatomy of a Large-Scale Hypertextual Web Search Engine” pr...
"PageRank" - "The Anatomy of a Large-Scale Hypertextual Web Search Engine” pr...Stefan Adam
 
HATEOAS: The Confusing Bit from REST
HATEOAS: The Confusing Bit from RESTHATEOAS: The Confusing Bit from REST
HATEOAS: The Confusing Bit from RESTelliando dias
 
Dropping ACID: Wrapping Your Mind Around NoSQL Databases
Dropping ACID: Wrapping Your Mind Around NoSQL DatabasesDropping ACID: Wrapping Your Mind Around NoSQL Databases
Dropping ACID: Wrapping Your Mind Around NoSQL DatabasesKyle Banerjee
 
Big Data (NJ SQL Server User Group)
Big Data (NJ SQL Server User Group)Big Data (NJ SQL Server User Group)
Big Data (NJ SQL Server User Group)Don Demcsak
 
NoSql - mayank singh
NoSql - mayank singhNoSql - mayank singh
NoSql - mayank singhMayank Singh
 
An Introduction to NOSQL, Graph Databases and Neo4j
An Introduction to NOSQL, Graph Databases and Neo4jAn Introduction to NOSQL, Graph Databases and Neo4j
An Introduction to NOSQL, Graph Databases and Neo4jDebanjan Mahata
 
The Characteristics of a RESTful Semantic Web and Why They Are Important
The Characteristics of a RESTful Semantic Web and Why They Are ImportantThe Characteristics of a RESTful Semantic Web and Why They Are Important
The Characteristics of a RESTful Semantic Web and Why They Are ImportantChimezie Ogbuji
 
Intro to the semantic web (for libraries)
Intro to the semantic web (for libraries) Intro to the semantic web (for libraries)
Intro to the semantic web (for libraries) robin fay
 
May 2013 HUG: Apache Sqoop 2 - A next generation of data transfer tools
May 2013 HUG: Apache Sqoop 2 - A next generation of data transfer toolsMay 2013 HUG: Apache Sqoop 2 - A next generation of data transfer tools
May 2013 HUG: Apache Sqoop 2 - A next generation of data transfer toolsYahoo Developer Network
 

Ähnlich wie Link Walking with Riak (20)

Graph Databases
Graph DatabasesGraph Databases
Graph Databases
 
Evolution of the Graph Schema
Evolution of the Graph SchemaEvolution of the Graph Schema
Evolution of the Graph Schema
 
Linked data radical change
Linked data   radical changeLinked data   radical change
Linked data radical change
 
Large Scale Graph Analytics with JanusGraph
Large Scale Graph Analytics with JanusGraphLarge Scale Graph Analytics with JanusGraph
Large Scale Graph Analytics with JanusGraph
 
Large Scale Graph Analytics with JanusGraph
Large Scale Graph Analytics with JanusGraphLarge Scale Graph Analytics with JanusGraph
Large Scale Graph Analytics with JanusGraph
 
Linked Data Best Practices and BibFrame
Linked Data Best Practices and BibFrameLinked Data Best Practices and BibFrame
Linked Data Best Practices and BibFrame
 
Linked Data and OCLC
Linked Data and OCLCLinked Data and OCLC
Linked Data and OCLC
 
FiloDB: Reactive, Real-Time, In-Memory Time Series at Scale
FiloDB: Reactive, Real-Time, In-Memory Time Series at ScaleFiloDB: Reactive, Real-Time, In-Memory Time Series at Scale
FiloDB: Reactive, Real-Time, In-Memory Time Series at Scale
 
Scaling the Web: Databases & NoSQL
Scaling the Web: Databases & NoSQLScaling the Web: Databases & NoSQL
Scaling the Web: Databases & NoSQL
 
How does Riak compare to Cassandra? [Cassandra London User Group July 2011]
How does Riak compare to Cassandra? [Cassandra London User Group July 2011]How does Riak compare to Cassandra? [Cassandra London User Group July 2011]
How does Riak compare to Cassandra? [Cassandra London User Group July 2011]
 
"PageRank" - "The Anatomy of a Large-Scale Hypertextual Web Search Engine” pr...
"PageRank" - "The Anatomy of a Large-Scale Hypertextual Web Search Engine” pr..."PageRank" - "The Anatomy of a Large-Scale Hypertextual Web Search Engine” pr...
"PageRank" - "The Anatomy of a Large-Scale Hypertextual Web Search Engine” pr...
 
HATEOAS: The Confusing Bit from REST
HATEOAS: The Confusing Bit from RESTHATEOAS: The Confusing Bit from REST
HATEOAS: The Confusing Bit from REST
 
Dropping ACID: Wrapping Your Mind Around NoSQL Databases
Dropping ACID: Wrapping Your Mind Around NoSQL DatabasesDropping ACID: Wrapping Your Mind Around NoSQL Databases
Dropping ACID: Wrapping Your Mind Around NoSQL Databases
 
Big Data (NJ SQL Server User Group)
Big Data (NJ SQL Server User Group)Big Data (NJ SQL Server User Group)
Big Data (NJ SQL Server User Group)
 
NoSql - mayank singh
NoSql - mayank singhNoSql - mayank singh
NoSql - mayank singh
 
An Introduction to NOSQL, Graph Databases and Neo4j
An Introduction to NOSQL, Graph Databases and Neo4jAn Introduction to NOSQL, Graph Databases and Neo4j
An Introduction to NOSQL, Graph Databases and Neo4j
 
The Characteristics of a RESTful Semantic Web and Why They Are Important
The Characteristics of a RESTful Semantic Web and Why They Are ImportantThe Characteristics of a RESTful Semantic Web and Why They Are Important
The Characteristics of a RESTful Semantic Web and Why They Are Important
 
What's New in RDF 1.1?
What's New in RDF 1.1?What's New in RDF 1.1?
What's New in RDF 1.1?
 
Intro to the semantic web (for libraries)
Intro to the semantic web (for libraries) Intro to the semantic web (for libraries)
Intro to the semantic web (for libraries)
 
May 2013 HUG: Apache Sqoop 2 - A next generation of data transfer tools
May 2013 HUG: Apache Sqoop 2 - A next generation of data transfer toolsMay 2013 HUG: Apache Sqoop 2 - A next generation of data transfer tools
May 2013 HUG: Apache Sqoop 2 - A next generation of data transfer tools
 

Mehr von Susan Potter

Thinking in Properties
Thinking in PropertiesThinking in Properties
Thinking in PropertiesSusan Potter
 
Champaign-Urbana Javascript Meetup Talk (Jan 2020)
Champaign-Urbana Javascript Meetup Talk (Jan 2020)Champaign-Urbana Javascript Meetup Talk (Jan 2020)
Champaign-Urbana Javascript Meetup Talk (Jan 2020)Susan Potter
 
From Zero to Haskell: Lessons Learned
From Zero to Haskell: Lessons LearnedFrom Zero to Haskell: Lessons Learned
From Zero to Haskell: Lessons LearnedSusan Potter
 
Dynamically scaling a political news and activism hub (up to 5x the traffic i...
Dynamically scaling a political news and activism hub (up to 5x the traffic i...Dynamically scaling a political news and activism hub (up to 5x the traffic i...
Dynamically scaling a political news and activism hub (up to 5x the traffic i...Susan Potter
 
Functional Operations (Functional Programming at Comcast Labs Connect)
Functional Operations (Functional Programming at Comcast Labs Connect)Functional Operations (Functional Programming at Comcast Labs Connect)
Functional Operations (Functional Programming at Comcast Labs Connect)Susan Potter
 
Deploying distributed software services to the cloud without breaking a sweat
Deploying distributed software services to the cloud without breaking a sweatDeploying distributed software services to the cloud without breaking a sweat
Deploying distributed software services to the cloud without breaking a sweatSusan Potter
 

Mehr von Susan Potter (7)

Thinking in Properties
Thinking in PropertiesThinking in Properties
Thinking in Properties
 
Champaign-Urbana Javascript Meetup Talk (Jan 2020)
Champaign-Urbana Javascript Meetup Talk (Jan 2020)Champaign-Urbana Javascript Meetup Talk (Jan 2020)
Champaign-Urbana Javascript Meetup Talk (Jan 2020)
 
From Zero to Haskell: Lessons Learned
From Zero to Haskell: Lessons LearnedFrom Zero to Haskell: Lessons Learned
From Zero to Haskell: Lessons Learned
 
Dynamically scaling a political news and activism hub (up to 5x the traffic i...
Dynamically scaling a political news and activism hub (up to 5x the traffic i...Dynamically scaling a political news and activism hub (up to 5x the traffic i...
Dynamically scaling a political news and activism hub (up to 5x the traffic i...
 
Functional Operations (Functional Programming at Comcast Labs Connect)
Functional Operations (Functional Programming at Comcast Labs Connect)Functional Operations (Functional Programming at Comcast Labs Connect)
Functional Operations (Functional Programming at Comcast Labs Connect)
 
Twitter4R OAuth
Twitter4R OAuthTwitter4R OAuth
Twitter4R OAuth
 
Deploying distributed software services to the cloud without breaking a sweat
Deploying distributed software services to the cloud without breaking a sweatDeploying distributed software services to the cloud without breaking a sweat
Deploying distributed software services to the cloud without breaking a sweat
 

Kürzlich hochgeladen

08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...gurkirankumar98700
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilV3cube
 

Kürzlich hochgeladen (20)

08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of Brazil
 

Link Walking with Riak

  • 1. Link Walking with Riak (KV) Susan Potter / Finsignia June 25, 2011
  • 2. Riak Ecosystem Riak Search Riak KV Riak Core
  • 3. Riak Ecosystem Riak Search Riak KV Riak Core
  • 4. Riak Ecosystem Riak Search Riak KV Riak Core
  • 5. Riak Ecosystem Riak Search Riak KV Riak Core
  • 6. Riak Ecosystem Riak Search Riak KV Riak Core
  • 7. % 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
  • 8. % 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
  • 9. % 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
  • 10. % 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
  • 11. Scope of Talk • Problem Domain • not Consistent Hashing or DHTs • Linking Objects • not Vector Clocks • Traversing Links • not Gossip Protocol • Link Maintainence • not Hinted Handoff • not Read Repair • not Eventual Consistency
  • 12. Scope of Talk • Problem Domain • not Consistent Hashing or DHTs • Linking Objects • not Vector Clocks • Traversing Links • not Gossip Protocol • Link Maintainence • not Hinted Handoff • not Read Repair • not Eventual Consistency
  • 13. Scope of Talk • Problem Domain • not Consistent Hashing or DHTs • Linking Objects • not Vector Clocks • Traversing Links • not Gossip Protocol • Link Maintainence • not Hinted Handoff • not Read Repair • not Eventual Consistency
  • 14. Scope of Talk • Problem Domain • not Consistent Hashing or DHTs • Linking Objects • not Vector Clocks • Traversing Links • not Gossip Protocol • Link Maintainence • not Hinted Handoff • not Read Repair • not Eventual Consistency
  • 15. Scope of Talk • Problem Domain • not Consistent Hashing or DHTs • Linking Objects • not Vector Clocks • Traversing Links • not Gossip Protocol • Link Maintainence • not Hinted Handoff • not Read Repair • not Eventual Consistency
  • 16. Scope of Talk • Problem Domain • not Consistent Hashing or DHTs • Linking Objects • not Vector Clocks • Traversing Links • not Gossip Protocol • Link Maintainence • not Hinted Handoff • not Read Repair • not Eventual Consistency
  • 17. Scope of Talk • Problem Domain • not Consistent Hashing or DHTs • Linking Objects • not Vector Clocks • Traversing Links • not Gossip Protocol • Link Maintainence • not Hinted Handoff • not Read Repair • not Eventual Consistency
  • 18. Scope of Talk • Problem Domain • not Consistent Hashing or DHTs • Linking Objects • not Vector Clocks • Traversing Links • not Gossip Protocol • Link Maintainence • not Hinted Handoff • not Read Repair • not Eventual Consistency
  • 19. Scope of Talk • Problem Domain • not Consistent Hashing or DHTs • Linking Objects • not Vector Clocks • Traversing Links • not Gossip Protocol • Link Maintainence • not Hinted Handoff • not Read Repair • not Eventual Consistency
  • 20. Scope of Talk • Problem Domain • not Consistent Hashing or DHTs • Linking Objects • not Vector Clocks • Traversing Links • not Gossip Protocol • Link Maintainence • not Hinted Handoff • not Read Repair • not Eventual Consistency
  • 23. 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 ...
  • 24. 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 ...
  • 25. 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 ...
  • 26. 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 ...
  • 27. 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 ...
  • 28. Linking[2/2] • Two Dimensional both direction and type/tag • 0..* links per object of any type/tag • Metadata traversing not load, parse, then lookup cycle • Model sufficiency otherwise graph database might be more useful • Link to other buckets (in same Riak cluster)
  • 29. Linking[2/2] • Two Dimensional both direction and type/tag • 0..* links per object of any type/tag • Metadata traversing not load, parse, then lookup cycle • Model sufficiency otherwise graph database might be more useful • Link to other buckets (in same Riak cluster)
  • 30. Linking[2/2] • Two Dimensional both direction and type/tag • 0..* links per object of any type/tag • Metadata traversing not load, parse, then lookup cycle • Model sufficiency otherwise graph database might be more useful • Link to other buckets (in same Riak cluster)
  • 31. Linking[2/2] • Two Dimensional both direction and type/tag • 0..* links per object of any type/tag • Metadata traversing not load, parse, then lookup cycle • Model sufficiency otherwise graph database might be more useful • Link to other buckets (in same Riak cluster)
  • 32. Linking[2/2] • Two Dimensional both direction and type/tag • 0..* links per object of any type/tag • Metadata traversing not load, parse, then lookup cycle • Model sufficiency otherwise graph database might be more useful • Link to other buckets (in same Riak cluster)
  • 33. Traversing Links[1/4] • GET /riak/album/Born-This-Way/artist,_,1 • GET /riak/album/Born-This-Way/artist,performer,1 • GET /riak/album/Born-This-Way/artist,producer,1 • GET /riak/album/Born-This-Way/_,performer,1 • GET /riak/album/Born-This-Way/_,producer,1
  • 34. 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 • GET /riak/album/Born-This-Way/artist,producer,1 • GET /riak/album/Born-This-Way/_,performer,1 • GET /riak/album/Born-This-Way/_,producer,1
  • 35. 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 • GET /riak/album/Born-This-Way/artist,producer,1 • GET /riak/album/Born-This-Way/_,performer,1 • GET /riak/album/Born-This-Way/_,producer,1
  • 36. 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 • GET /riak/album/Born-This-Way/_,performer,1 • GET /riak/album/Born-This-Way/_,producer,1
  • 37. 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 • GET /riak/album/Born-This-Way/_,performer,1 • GET /riak/album/Born-This-Way/_,producer,1
  • 38. 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 • GET /riak/album/Born-This-Way/_,producer,1
  • 39. 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 • GET /riak/album/Born-This-Way/_,producer,1
  • 40. 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
  • 41. 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
  • 42. 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”
  • 43. Traversing Links[2/4] • GET /riak/album/A/artist,_,1/artist,collaborator,1 • GET /riak/album/A/artist,performer,0/artist,collaborator,1 • GET /riak/album/A/artist,producer,0/album,release,1
  • 44. Traversing Links[2/4] • GET /riak/album/A/artist,_,1/artist,collaborator,1 • GET /riak/album/A/artist,performer,0/artist,collaborator,1 • GET /riak/album/A/artist,producer,0/album,release,1
  • 45. 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 • GET /riak/album/A/artist,producer,0/album,release,1
  • 46. 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 • GET /riak/album/A/artist,producer,0/album,release,1
  • 47. 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 • GET /riak/album/A/artist,producer,0/album,release,1
  • 48. 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
  • 49. 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
  • 50. 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
  • 51. 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
  • 52. Traversing Links[3/4] artist,performer,1 • Bucket name e.g. artist, album • Tag (or type) name e.g. performer, producer • Return (or “keep”) useful in nested traversals • Wildcarding ’_’ for bucket and tag means “any” • Nesting traverse on multiple levels • Multiple Sources? how to walk links from multiple objects?
  • 53. Traversing Links[3/4] artist,performer,1 • Bucket name e.g. artist, album • Tag (or type) name e.g. performer, producer • Return (or “keep”) useful in nested traversals • Wildcarding ’_’ for bucket and tag means “any” • Nesting traverse on multiple levels • Multiple Sources? how to walk links from multiple objects?
  • 54. Traversing Links[3/4] artist,performer,1 • Bucket name e.g. artist, album • Tag (or type) name e.g. performer, producer • Return (or “keep”) useful in nested traversals • Wildcarding ’_’ for bucket and tag means “any” • Nesting traverse on multiple levels • Multiple Sources? how to walk links from multiple objects?
  • 55. Traversing Links[3/4] artist,performer,1 • Bucket name e.g. artist, album • Tag (or type) name e.g. performer, producer • Return (or “keep”) useful in nested traversals • Wildcarding ’_’ for bucket and tag means “any” • Nesting traverse on multiple levels • Multiple Sources? how to walk links from multiple objects?
  • 56. Traversing Links[3/4] _,_,0 • Bucket name e.g. artist, album • Tag (or type) name e.g. performer, producer • Return (or “keep”) useful in nested traversals • Wildcarding ’_’ for bucket and tag means “any” • Nesting traverse on multiple levels • Multiple Sources? how to walk links from multiple objects?
  • 57. Traversing Links[3/4] _,_,0/album,release,1 • Bucket name e.g. artist, album • Tag (or type) name e.g. performer, producer • Return (or “keep”) useful in nested traversals • Wildcarding ’_’ for bucket and tag means “any” • Nesting traverse on multiple levels • Multiple Sources? how to walk links from multiple objects?
  • 58. Traversing Links[3/4] • Bucket name e.g. artist, album • Tag (or type) name e.g. performer, producer • Return (or “keep”) useful in nested traversals • Wildcarding ’_’ for bucket and tag means “any” • Nesting traverse on multiple levels • Multiple Sources? how to walk links from multiple objects?
  • 59. 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
  • 60. 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
  • 61. 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
  • 62. Link Maintenance • Commit Hooks can use either pre- or post-commit hooks • Automatic Backlinks can use commit hooks to generate backlinks automatically • Trigger Messages links could only be used as triggers • Delete Cleanup post-commit hook with backlinks can clean up links to new orphans automatically
  • 63. Link Maintenance • Commit Hooks can use either pre- or post-commit hooks • Automatic Backlinks can use commit hooks to generate backlinks automatically • Trigger Messages links could only be used as triggers • Delete Cleanup post-commit hook with backlinks can clean up links to new orphans automatically
  • 64. Link Maintenance • Commit Hooks can use either pre- or post-commit hooks • Automatic Backlinks can use commit hooks to generate backlinks automatically • Trigger Messages links could only be used as triggers • Delete Cleanup post-commit hook with backlinks can clean up links to new orphans automatically
  • 65. Link Maintenance • Commit Hooks can use either pre- or post-commit hooks • Automatic Backlinks can use commit hooks to generate backlinks automatically • Trigger Messages links could only be used as triggers • Delete Cleanup post-commit hook with backlinks can clean up links to new orphans automatically
  • 66. Possibilities Object metadata extensions?
  • 67. Limitations Not a graph database!
  • 68. References[1/2] • Riak Wiki http://wiki.basho.com/ • Riak Mailing List riak-users@lists.basho.com • Riak Contrib http://contrib.basho.com/ • Riak Code Repos http://github.com/basho
  • 69. References[1/2] • Riak Wiki http://wiki.basho.com/ • Riak Mailing List riak-users@lists.basho.com • Riak Contrib http://contrib.basho.com/ • Riak Code Repos http://github.com/basho
  • 70. References[1/2] • Riak Wiki http://wiki.basho.com/ • Riak Mailing List riak-users@lists.basho.com • Riak Contrib http://contrib.basho.com/ • Riak Code Repos http://github.com/basho
  • 71. References[1/2] • Riak Wiki http://wiki.basho.com/ • Riak Mailing List riak-users@lists.basho.com • Riak Contrib http://contrib.basho.com/ • Riak Code Repos http://github.com/basho
  • 72. References[2/2] • Secondary index support in Riak? Introducing Secondary Indices: http://www.oscon.com/oscon2011/public/schedule/detail/19806 • riak_core applications e.g. Riak Search, riak_zab, riak_pipe • Comet KV database supports Active Storage Objects (ASO), handlers http://vanish.cs.washington.edu/pubs/osdi2010comet.pdf
  • 73. References[2/2] • Secondary index support in Riak? Introducing Secondary Indices: http://www.oscon.com/oscon2011/public/schedule/detail/19806 • riak_core applications e.g. Riak Search, riak_zab, riak_pipe • Comet KV database supports Active Storage Objects (ASO), handlers http://vanish.cs.washington.edu/pubs/osdi2010comet.pdf
  • 74. References[2/2] • Secondary index support in Riak? Introducing Secondary Indices: http://www.oscon.com/oscon2011/public/schedule/detail/19806 • riak_core applications e.g. Riak Search, riak_zab, riak_pipe • Comet KV database supports Active Storage Objects (ASO), handlers http://vanish.cs.washington.edu/pubs/osdi2010comet.pdf
  • 75. Credits • Basho & Riak logos Courtesy of Basho • Icy chained fence photo http://www.flickr.com/photos/existentist/342177746/ • Frozen chain photo http://www.flickr.com/photos/skedonk/4197921511/ • Hook and chain photo http://www.flickr.com/photos/37491467@N07/3871760093/
  • 76. Questions? Figure: http://www.flickr.com/photos/42682395@N04/ @SusanPotter
  • 77. Questions? Figure: http://www.flickr.com/photos/42682395@N04/ @SusanPotter