SlideShare a Scribd company logo
1 of 65
Download to read offline
.
    Distributed computation on dynamo-style
          distributed storage: Riak pipe
.             An introduction to Riak


                   Jaseem Abid


                September 19, 2012




                                          .    .    .      . . . . . . . . . . . .               .    .        .    .    .
                                     ..   ..   ..       .. .. .. .. .. .. .. .. .. .. .. .. ..   ..       ..   ..   ..
. Riak




              .    .    .      . . . . . . . . . . . .               .    .        .    .    .
         ..   ..   ..       .. .. .. .. .. .. .. .. .. .. .. .. ..   ..       ..   ..   ..
. What is Riak ?




    Riak is an open source, distributed NoSQL database implementing
    the principles from Amazonā€™s Dynamo paper.




                                                   .    .    .      . . . . . . . . . . . .               .    .        .    .    .
                                              ..   ..   ..       .. .. .. .. .. .. .. .. .. .. .. .. ..   ..       ..   ..   ..
. Dynamo Model

   Riak is a highly available, proprietary key-value structured storage
   system or a distributed data store. It has properties of both
   databases and distributed hash tables (DHTs). It is not directly
   exposed as a web service, but is used to power parts of other
   Amazon Web Services such as Amazon S3.




                                                      .    .    .      . . . . . . . . . . . .               .    .        .    .    .
                                                 ..   ..   ..       .. .. .. .. .. .. .. .. .. .. .. .. ..   ..       ..   ..   ..
. Dynamo Model

   Riak is a highly available, proprietary key-value structured storage
   system or a distributed data store. It has properties of both
   databases and distributed hash tables (DHTs). It is not directly
   exposed as a web service, but is used to power parts of other
   Amazon Web Services such as Amazon S3.




                                                      .    .    .      . . . . . . . . . . . .               .    .        .    .    .
                                                 ..   ..   ..       .. .. .. .. .. .. .. .. .. .. .. .. ..   ..       ..   ..   ..
. Dynamo Model

   Riak is a highly available, proprietary key-value structured storage
   system or a distributed data store. It has properties of both
   databases and distributed hash tables (DHTs). It is not directly
   exposed as a web service, but is used to power parts of other
   Amazon Web Services such as Amazon S3.




                                                      .    .    .      . . . . . . . . . . . .               .    .        .    .    .
                                                 ..   ..   ..       .. .. .. .. .. .. .. .. .. .. .. .. ..   ..       ..   ..   ..
. Dynamo Model

   Riak is a highly available, proprietary key-value structured storage
   system or a distributed data store. It has properties of both
   databases and distributed hash tables (DHTs). It is not directly
   exposed as a web service, but is used to power parts of other
   Amazon Web Services such as Amazon S3.




                                                      .    .    .      . . . . . . . . . . . .               .    .        .    .    .
                                                 ..   ..   ..       .. .. .. .. .. .. .. .. .. .. .. .. ..   ..       ..   ..   ..
. Dynamo Model

   Riak is a highly available, proprietary key-value structured storage
   system or a distributed data store. It has properties of both
   databases and distributed hash tables (DHTs). It is not directly
   exposed as a web service, but is used to power parts of other
   Amazon Web Services such as Amazon S3.


   Implementations
       Apache Cassandra
       Project Voldemort
       Riak
       Amazon DynamoDB

                                                      .    .    .      . . . . . . . . . . . .               .    .        .    .    .
                                                 ..   ..   ..       .. .. .. .. .. .. .. .. .. .. .. .. ..   ..       ..   ..   ..
. This talk



    Front Matter
        Dynamo (and NoSQL) are nothing new
        Much of Dynamo was invented > 10 years ago
        Dynamo chooses AP of CAP
        This talk will focus on properties of Dynamo-inspired systems
        (Riak, Cassandra, Voldemort)




                                                    .    .    .      . . . . . . . . . . . .               .    .        .    .    .
                                               ..   ..   ..       .. .. .. .. .. .. .. .. .. .. .. .. ..   ..       ..   ..   ..
. CAP theorem




                     .    .    .      . . . . . . . . . . . .               .    .        .    .    .
                ..   ..   ..       .. .. .. .. .. .. .. .. .. .. .. .. ..   ..       ..   ..   ..
. CAP theorem



       Consistent, writes are atomic and all subsequent requests
       retrieve the new value




                                                   .    .    .      . . . . . . . . . . . .               .    .        .    .    .
                                              ..   ..   ..       .. .. .. .. .. .. .. .. .. .. .. .. ..   ..       ..   ..   ..
. CAP theorem



       Consistent, writes are atomic and all subsequent requests
       retrieve the new value
       Available, the database will always return a value as long as a
       single server is running




                                                    .    .    .      . . . . . . . . . . . .               .    .        .    .    .
                                               ..   ..   ..       .. .. .. .. .. .. .. .. .. .. .. .. ..   ..       ..   ..   ..
. CAP theorem



       Consistent, writes are atomic and all subsequent requests
       retrieve the new value
       Available, the database will always return a value as long as a
       single server is running
       Partition Tolerant, the system will still function even if server
       communication is temporarily lostā€”that is, a network
       partition




                                                      .    .    .      . . . . . . . . . . . .               .    .        .    .    .
                                                 ..   ..   ..       .. .. .. .. .. .. .. .. .. .. .. .. ..   ..       ..   ..   ..
. CAP theorem



       Consistent, writes are atomic and all subsequent requests
       retrieve the new value
       Available, the database will always return a value as long as a
       single server is running
       Partition Tolerant, the system will still function even if server
       communication is temporarily lostā€”that is, a network
       partition
       You can have only two at once.




                                                      .    .    .      . . . . . . . . . . . .               .    .        .    .    .
                                                 ..   ..   ..       .. .. .. .. .. .. .. .. .. .. .. .. ..   ..       ..   ..   ..
. CAP theorem




   Riak picks AP of CAP




                               .    .    .      . . . . . . . . . . . .               .    .        .    .    .
                          ..   ..   ..       .. .. .. .. .. .. .. .. .. .. .. .. ..   ..       ..   ..   ..
. Eventual Consistency



        Distributed databases must be partition tolerant, so the
        choice between availability and consistency can be diļ¬ƒcult.
        The real world is eventually consistent and works (mostly) ļ¬ne
        *Eventual* doesnā€™t mean minutes, days, or even seconds in
        non-failure cases
        DNS, HTTP with Expires: header
        How you model the real world matters!




                                                     .    .    .      . . . . . . . . . . . .               .    .        .    .    .
                                                ..   ..   ..       .. .. .. .. .. .. .. .. .. .. .. .. ..   ..       ..   ..   ..
. Riak Architecture
    Amazonā€™s Dynamo architecture
    Distributed, Scalable, No single point of failure
    No transactions; trade strong consistency for eventual consistency




                                                     .    .    .      . . . . . . . . . . . .               .    .        .    .    .
                                                ..   ..   ..       .. .. .. .. .. .. .. .. .. .. .. .. ..   ..       ..   ..   ..
. Simple Key Value data store - Store anything




    Plain text, JSON, or XML to images or video clipsā€”all accessible
    through a simple HTTP interface




                                                    .    .    .      . . . . . . . . . . . .               .    .        .    .    .
                                               ..   ..   ..       .. .. .. .. .. .. .. .. .. .. .. .. ..   ..       ..   ..   ..
. Simple Key Value data store - Store anything




    Plain text, JSON, or XML to images or video clipsā€”all accessible
    through a simple HTTP interface
    Riak KV




                                                    .    .    .      . . . . . . . . . . . .               .    .        .    .    .
                                               ..   ..   ..       .. .. .. .. .. .. .. .. .. .. .. .. ..   ..       ..   ..   ..
. Fault-Tolerant




    Riak is also fault-tolerant. Servers can go up or down at any
    moment with no single point of failure.




                                                      .    .    .      . . . . . . . . . . . .               .    .        .    .    .
                                                 ..   ..   ..       .. .. .. .. .. .. .. .. .. .. .. .. ..   ..       ..   ..   ..
. Riak loves the web




    Query Riak via URLs, headers, and verbs, and Riak returns assets
    and standard HTTP response codes.




                                                    .    .    .      . . . . . . . . . . . .               .    .        .    .    .
                                               ..   ..   ..       .. .. .. .. .. .. .. .. .. .. .. .. ..   ..       ..   ..   ..
. Scalable


      # start 4 nodes

      $   dev/dev1/bin/riak   start
      $   dev/dev2/bin/riak   start
      $   dev/dev3/bin/riak   start
      $   dev/dev4/bin/riak   start

      # scale out
      $ dev/dev2/bin/riak-admin join dev1@127.0.0.1

      # scabe back in
      $ riak-admin leave


                                            .    .    .      . . . . . . . . . . . .               .    .        .    .    .
                                       ..   ..   ..       .. .. .. .. .. .. .. .. .. .. .. .. ..   ..       ..   ..   ..
. Queriablity


    REST API
    Easy quick and dirty
    Map Reduce
    Provide set of starting keys, ļ¬lter via map
    Map reduce is meant for calulations/ aggregations and not queries.
    Riak Search
    Full text search in Riak
    Opinionated
    Roll out your own indices
    Diļ¬ƒcult to get it right
    More code to maintain
    Often introduces SPOFs


                                                     .    .    .      . . . . . . . . . . . .               .    .        .    .    .
                                                ..   ..   ..       .. .. .. .. .. .. .. .. .. .. .. .. ..   ..       ..   ..   ..
. Riak REST API




    Representational state transfer




                                           .    .    .      . . . . . . . . . . . .               .    .        .    .    .
                                      ..   ..   ..       .. .. .. .. .. .. .. .. .. .. .. .. ..   ..       ..   ..   ..
. Riak REST API




    Representational state transfer
    Create Update Read Delete verbs




                                           .    .    .      . . . . . . . . . . . .               .    .        .    .    .
                                      ..   ..   ..       .. .. .. .. .. .. .. .. .. .. .. .. ..   ..       ..   ..   ..
. Riak REST API




    Representational state transfer
    Create Update Read Delete verbs
    Riak and cURL




                                           .    .    .      . . . . . . . . . . . .               .    .        .    .    .
                                      ..   ..   ..       .. .. .. .. .. .. .. .. .. .. .. .. ..   ..       ..   ..   ..
. REST API w/ curl

    $ curl http://localhost:8091/ping
    OK

    # Letā€™s issue a bad query.
    # -I tells cURL that we want only the header response.

    $ curl -I http://localhost:8091/riak/no_bucket/no_key
    HTTP/1.1 404 Object Not Found
    Server: MochiWeb/1.1 WebMachine/1.7.3 
     (participate in the frantic)
    Date: Thu, 04 Aug 2011 01:25:49 GMT
    Content-Type: text/plain
    Content-Length: 10


                                             .    .    .      . . . . . . . . . . . .               .    .        .    .    .
                                        ..   ..   ..       .. .. .. .. .. .. .. .. .. .. .. .. ..   ..       ..   ..   ..
. Lets PUT something in the DB



    $ curl -v -X PUT http://localhost:8091/riak/favs/db 
    -H "Content-Type: text/html" 
    -d "<html>
          <body>
            <h1>
               My new favorite DB is RIAK
            </h1>
          </body>
       </html>"




                                            .    .    .      . . . . . . . . . . . .               .    .        .    .    .
                                       ..   ..   ..       .. .. .. .. .. .. .. .. .. .. .. .. ..   ..       ..   ..   ..
. Now get it back




    curl -X GET http://localhost:8091/riak/favs/db


    Or just hit the browser




                                            .    .    .      . . . . . . . . . . . .               .    .        .    .    .
                                       ..   ..   ..       .. .. .. .. .. .. .. .. .. .. .. .. ..   ..       ..   ..   ..
. Or POST it

    $ curl -I -X POST http://localhost:8091/riak/animals 
    -H "Content-Type: application/json" 
    -d '{
          "nickname" : "Sergeant Stubby",
          "breed" : "Terrier"
        }'

    HTTP/1.1 201 Created
    Vary: Accept-Encoding
    Server: MochiWeb/1.1 WebMachine/1.7.3 
    (participate in the frantic)
    Location: /riak/animals/6VZc2o7zKxq2B34kJrm1S0ma3PO
    Date: Tue, 05 Apr 2011 07:45:33 GMT
    Content-Type: application/json
    Content-Length: 0
                                             .    .    .      . . . . . . . . . . . .               .    .        .    .    .
                                        ..   ..   ..       .. .. .. .. .. .. .. .. .. .. .. .. ..   ..       ..   ..   ..
. Dump anything
     curl -X PUT HTTP://127.0.0.1:8091/riak/images/1.jpg 
     -H "Content-type: image/jpeg" 
     --data-binary @image_name.jpg




                                            .    .    .      . . . . . . . . . . . .               .    .        .    .    .
                                       ..   ..   ..       .. .. .. .. .. .. .. .. .. .. .. .. ..   ..       ..   ..   ..
. Or DELETE it


    $ curl -I -X DELETE http://localhost:8091/riak/ 
          animals/6VZc2o7zKxq2B34kJrm1S0ma3PO

    HTTP/1.1 204 No Content
    Vary: Accept-Encoding
    Server: MochiWeb/1.1 WebMachine/1.7.3 
     (participate in the frantic)
    Date: Mon, 11 Apr 2011 05:08:39 GMT
    Content-Type: application/x-www-form-urlencoded
    Content-Length: 0

    DELETE wonā€™t return any body, but the HTTP code will be 204 if
    successful. Otherwise, as youā€™d expect, it returns a 404.

                                                  .    .    .      . . . . . . . . . . . .               .    .        .    .    .
                                             ..   ..   ..       .. .. .. .. .. .. .. .. .. .. .. .. ..   ..       ..   ..   ..
. Map Reduce




   Google :)
   *large* data sets
   Functional Programming
   Apache Hadoop
   Why C suck here




                                 .    .    .      . . . . . . . . . . . .               .    .        .    .    .
                            ..   ..   ..       .. .. .. .. .. .. .. .. .. .. .. .. ..   ..       ..   ..   ..
. The tldr; version


    MapReduce is a framework for processing embarrassingly parallel
    problems across huge datasets using a large number of computers
    (nodes), collectively referred to as a cluster (if all nodes are on the
    same local network and use similar hardware) or a grid (if the
    nodes are shared across geographically and administratively
    distributed systems, and use more heterogenous hardware).
    Computational processing can occur on data stored either in a
    ļ¬lesystem (unstructured) or in a database (structured).
    MapReduce can take advantage of locality of data, processing data
    on or near the storage assets to decrease transmission of data.




                                                        .    .    .      . . . . . . . . . . . .               .    .        .    .    .
                                                   ..   ..   ..       .. .. .. .. .. .. .. .. .. .. .. .. ..   ..       ..   ..   ..
. Map




   ā€Mapā€ step: The master node takes the input, divides it into
   smaller sub-problems, and distributes them to worker nodes. A
   worker node may do this again in turn, leading to a multi-level tree
   structure. The worker node processes the smaller problem, and
   passes the answer back to its master node.




                                                     .    .    .      . . . . . . . . . . . .               .    .        .    .    .
                                                ..   ..   ..       .. .. .. .. .. .. .. .. .. .. .. .. ..   ..       ..   ..   ..
. Reduce




    ā€Reduceā€ step: The master node then collects the answers to all
    the sub-problems and combines them in some way to form the
    output ā€“ the answer to the problem it was originally trying to solve.




                                                       .    .    .      . . . . . . . . . . . .               .    .        .    .    .
                                                  ..   ..   ..       .. .. .. .. .. .. .. .. .. .. .. .. ..   ..       ..   ..   ..
. JSON
   {
         "name": "John Smith",
         "age": 25,
         "address": {
             "streetAddress": "21 2nd Street",
             "city": "New York"
             "postalCode": "10021"
         },
         "phoneNumber": [
             {
                 "type": "home",
                 "number": "212 555-1234"
             },
             {
                 "type": "fax",
                 "number": "646 555-4567"
             }
         ]
   }                                        ..
                                                 .
                                                 ..
                                                      .
                                                      ..
                                                           .      . . . . . . . . . . . .
                                                               .. .. .. .. .. .. .. .. .. .. .. .. ..
                                                                                                        .
                                                                                                        ..
                                                                                                             .
                                                                                                                 ..
                                                                                                                      .
                                                                                                                      ..
                                                                                                                           .
                                                                                                                           ..
                                                                                                                                .
. Map


   The Riak way

   function (v) {
       return [v.phoneNumber];
   }

   The couchDB way

   function (v) {
       emit("phone", v.phoneNumber);
   }



                                            .    .    .      . . . . . . . . . . . .               .    .        .    .    .
                                       ..   ..   ..       .. .. .. .. .. .. .. .. .. .. .. .. ..   ..       ..   ..   ..
. Riak Search




    ...




                     .    .    .      . . . . . . . . . . . .               .    .        .    .    .
                ..   ..   ..       .. .. .. .. .. .. .. .. .. .. .. .. ..   ..       ..   ..   ..
. Riak Secondary Indices




    ...




                                .    .    .      . . . . . . . . . . . .               .    .        .    .    .
                           ..   ..   ..       .. .. .. .. .. .. .. .. .. .. .. .. ..   ..       ..   ..   ..
. Riak ā€¦




    Written in : Erlang & C, some Javascript




                                                    .    .    .      . . . . . . . . . . . .               .    .        .    .    .
                                               ..   ..   ..       .. .. .. .. .. .. .. .. .. .. .. .. ..   ..       ..   ..   ..
. Riak ā€¦




    Protocol: HTTP/REST or custom binary




                                                .    .    .      . . . . . . . . . . . .               .    .        .    .    .
                                           ..   ..   ..       .. .. .. .. .. .. .. .. .. .. .. .. ..   ..       ..   ..   ..
. Riak ā€¦




    Tunable trade-oļ¬€s for distribution and replication (N, R, W)




                                                     .    .    .      . . . . . . . . . . . .               .    .        .    .    .
                                                ..   ..   ..       .. .. .. .. .. .. .. .. .. .. .. .. ..   ..       ..   ..   ..
. Riak ā€¦




    Pre - and post-commit hooks in JavaScript or Erlang, for
    validation and security.




                                                    .    .    .      . . . . . . . . . . . .               .    .        .    .    .
                                               ..   ..   ..       .. .. .. .. .. .. .. .. .. .. .. .. ..   ..       ..   ..   ..
. Riak ā€¦




    Map/reduce in JavaScript or Erlang




                                              .    .    .      . . . . . . . . . . . .               .    .        .    .    .
                                         ..   ..   ..       .. .. .. .. .. .. .. .. .. .. .. .. ..   ..       ..   ..   ..
. Riak ā€¦




    Links & link walking: use it as a graph database




                                                     .    .    .      . . . . . . . . . . . .               .    .        .    .    .
                                                ..   ..   ..       .. .. .. .. .. .. .. .. .. .. .. .. ..   ..       ..   ..   ..
. Riak ā€¦




    Secondary indices: but only one at once Large object support
    (Luwak)




                                                    .    .    .      . . . . . . . . . . . .               .    .        .    .    .
                                               ..   ..   ..       .. .. .. .. .. .. .. .. .. .. .. .. ..   ..       ..   ..   ..
. Riak ā€¦




    Comes in ā€open sourceā€ and ā€enterpriseā€ editions




                                                    .    .    .      . . . . . . . . . . . .               .    .        .    .    .
                                               ..   ..   ..       .. .. .. .. .. .. .. .. .. .. .. .. ..   ..       ..   ..   ..
. Riak ā€¦




    Full-text search, indexing, querying with Riak ā€¦Search server (beta)




                                                      .    .    .      . . . . . . . . . . . .               .    .        .    .    .
                                                 ..   ..   ..       .. .. .. .. .. .. .. .. .. .. .. .. ..   ..       ..   ..   ..
. Riak ā€¦




    In the process of migrating the storing backend from ā€Bitcaskā€ to
    Google ā€LevelDBā€




                                                     .    .    .      . . . . . . . . . . . .               .    .        .    .    .
                                                ..   ..   ..       .. .. .. .. .. .. .. .. .. .. .. .. ..   ..       ..   ..   ..
. Riak ā€¦




    Masterless multi-site replication replication and SNMP monitoring
    are commercially licensed




                                                     .    .    .      . . . . . . . . . . . .               .    .        .    .    .
                                                ..   ..   ..       .. .. .. .. .. .. .. .. .. .. .. .. ..   ..       ..   ..   ..
. Riak ā€¦




    Best used: If you want something Cassandra-like (Dynamo-like),
    but no way youā€™re gonna deal with the bloat and complexity. If you
    need very good single-site scalability, availability and
    fault-tolerance, but youā€™re ready to pay for multi-site replication.




                                                      .    .    .      . . . . . . . . . . . .               .    .        .    .    .
                                                 ..   ..   ..       .. .. .. .. .. .. .. .. .. .. .. .. ..   ..       ..   ..   ..
. Riak ā€¦




    For example: Point-of-sales data collection. Factory control
    systems. Places where even seconds of downtime hurt. Could be
    used as a well-update-able web server.




                                                   .    .    .      . . . . . . . . . . . .               .    .        .    .    .
                                              ..   ..   ..       .. .. .. .. .. .. .. .. .. .. .. .. ..   ..       ..   ..   ..
. Review



       Multi-node Clustering
       MapReduce Processing
       Integrated Full-Text Search
       Secondary Indexing
       Masterless Multi-Site Replication
       Large Object Support
       Implementation
       Architecture




                                                .    .    .      . . . . . . . . . . . .               .    .        .    .    .
                                           ..   ..   ..       .. .. .. .. .. .. .. .. .. .. .. .. ..   ..       ..   ..   ..
. Why use Riak




    Scalable
    Riak is built so you can add more capacity as your app or platform
    grows. When you add new machines, Riak distributes data
    automatically around the cluster with no downtime and a
    near-linear increase in performance and throughput




                                                     .    .    .      . . . . . . . . . . . .               .    .        .    .    .
                                                ..   ..   ..       .. .. .. .. .. .. .. .. .. .. .. .. ..   ..       ..   ..   ..
. Why use Riak




    Simple Ops
    Riak is the most boring database youā€™ll ever run in production. No
    sharding required, just horizontal scaling and straight-forward
    capacity planning. The same operational tasks apply to small
    clusters and large clusters. More machines does not mean more
    ops.




                                                     .    .    .      . . . . . . . . . . . .               .    .        .    .    .
                                                ..   ..   ..       .. .. .. .. .. .. .. .. .. .. .. .. ..   ..       ..   ..   ..
. Why use Riak




    Masterless
    A Riak cluster is masterless. No node is special and any node can
    handle requests for any other node in the cluster. All requests to
    Riak happen concurrently and developers donā€™t have to spend time
    worrying about read/write locks or single points of failure.




                                                     .    .    .      . . . . . . . . . . . .               .    .        .    .    .
                                                ..   ..   ..       .. .. .. .. .. .. .. .. .. .. .. .. ..   ..       ..   ..   ..
. Why use Riak




    Fault Tolerant
    Decide how many replicas of the data you want (start at 3). If
    nodes go down, requests are routed transparently to other nodes.
    Riak uses proven architectural principles like hinted handoļ¬€ and
    read repair so you can always write and read data, even in failure
    conditions.




                                                      .    .    .      . . . . . . . . . . . .               .    .        .    .    .
                                                 ..   ..   ..       .. .. .. .. .. .. .. .. .. .. .. .. ..   ..       ..   ..   ..
. Why use Riak




    Complex Queries
    In addition to key/value access to your data, Riak has built-in
    support for MapReduce, Full Text Search, and Secondary Indexes,
    giving developers various ways to store and query their data.




                                                   .    .    .      . . . . . . . . . . . .               .    .        .    .    .
                                              ..   ..   ..       .. .. .. .. .. .. .. .. .. .. .. .. ..   ..       ..   ..   ..
. Why use Riak




    Flexible APIs
    Riak is equipped with fully-featured HTTP and Protocol Buļ¬€ers
    APIs, with support for both of these transports in all of our
    supported client libraries. You can also write your own client layer
    to wrap our APIs if your use case or preference calls for it.




                                                       .    .    .      . . . . . . . . . . . .               .    .        .    .    .
                                                  ..   ..   ..       .. .. .. .. .. .. .. .. .. .. .. .. ..   ..       ..   ..   ..
. Why use Riak




    1000s of Users
    Comcast, Yammer, Voxer, Boeing, BestBuy, SEOMoz, Joyent,
    Kiip, DotCloud, Formspring, GitHub, and the Danish Government
    are just a few of the thousands of startups and enterprises that
    have deployed Riak.




                                                    .    .    .      . . . . . . . . . . . .               .    .        .    .    .
                                               ..   ..   ..       .. .. .. .. .. .. .. .. .. .. .. .. ..   ..       ..   ..   ..
. Who uses it and why?



       github   git.io
     comcast    Internal object storage
     yammer     Notiļ¬cations
     DISQUS     analytics
         AOL    1.5 billion data objects per day
      Mozilla   User reviews


    joyent, best buy ā€¦




                                                        .    .    .      . . . . . . . . . . . .               .    .        .    .    .
                                                   ..   ..   ..       .. .. .. .. .. .. .. .. .. .. .. .. ..   ..       ..   ..   ..
. Why use Riak




    Language Support
    Basho and the Riak Community maintain libraries for most major
    languages including Java, Node.js, Python, Ruby, PHP, C/C++,
    and many more. All the client code, like the core Riak code, is
    available on GitHub.




                                                    .    .    .      . . . . . . . . . . . .               .    .        .    .    .
                                               ..   ..   ..       .. .. .. .. .. .. .. .. .. .. .. .. ..   ..       ..   ..   ..
. Why use Riak




    Powerful Community
    The Riak community is composed of smart, passionate hackers
    who are contributing code, support, and evangelism every day.
    There are hundreds of companies and individuals testing, breaking,
    running, and building Riak.




                                                     .    .    .      . . . . . . . . . . . .               .    .        .    .    .
                                                ..   ..   ..       .. .. .. .. .. .. .. .. .. .. .. .. ..   ..       ..   ..   ..
Questions?




                  .    .    .      . . . . . . . . . . . .               .    .        .    .    .
             ..   ..   ..       .. .. .. .. .. .. .. .. .. .. .. .. ..   ..       ..   ..   ..

More Related Content

What's hot

Pragmatic.bookshelf.pragmatic.ajax.a.web.2.0.primer.apr.2006
Pragmatic.bookshelf.pragmatic.ajax.a.web.2.0.primer.apr.2006Pragmatic.bookshelf.pragmatic.ajax.a.web.2.0.primer.apr.2006
Pragmatic.bookshelf.pragmatic.ajax.a.web.2.0.primer.apr.2006ngotuananh
Ā 
Lesson in electric circuits v3
Lesson in electric circuits v3Lesson in electric circuits v3
Lesson in electric circuits v3ayalewtfr
Ā 
Cold Hard Cache
Cold Hard CacheCold Hard Cache
Cold Hard CacheAlex Miller
Ā 
Metatron Technology Consulting 's MySQL to PostgreSQL ...
Metatron Technology Consulting 's MySQL to PostgreSQL ...Metatron Technology Consulting 's MySQL to PostgreSQL ...
Metatron Technology Consulting 's MySQL to PostgreSQL ...webhostingguy
Ā 
Apache Cassandra Multi-Datacenter Essentials (Julien Anguenot, iLand Internet...
Apache Cassandra Multi-Datacenter Essentials (Julien Anguenot, iLand Internet...Apache Cassandra Multi-Datacenter Essentials (Julien Anguenot, iLand Internet...
Apache Cassandra Multi-Datacenter Essentials (Julien Anguenot, iLand Internet...DataStax
Ā 
Understanding Data Consistency in Apache Cassandra
Understanding Data Consistency in Apache CassandraUnderstanding Data Consistency in Apache Cassandra
Understanding Data Consistency in Apache CassandraDataStax
Ā 
Cassandra concepts, patterns and anti-patterns
Cassandra concepts, patterns and anti-patternsCassandra concepts, patterns and anti-patterns
Cassandra concepts, patterns and anti-patternsDave Gardner
Ā 

What's hot (7)

Pragmatic.bookshelf.pragmatic.ajax.a.web.2.0.primer.apr.2006
Pragmatic.bookshelf.pragmatic.ajax.a.web.2.0.primer.apr.2006Pragmatic.bookshelf.pragmatic.ajax.a.web.2.0.primer.apr.2006
Pragmatic.bookshelf.pragmatic.ajax.a.web.2.0.primer.apr.2006
Ā 
Lesson in electric circuits v3
Lesson in electric circuits v3Lesson in electric circuits v3
Lesson in electric circuits v3
Ā 
Cold Hard Cache
Cold Hard CacheCold Hard Cache
Cold Hard Cache
Ā 
Metatron Technology Consulting 's MySQL to PostgreSQL ...
Metatron Technology Consulting 's MySQL to PostgreSQL ...Metatron Technology Consulting 's MySQL to PostgreSQL ...
Metatron Technology Consulting 's MySQL to PostgreSQL ...
Ā 
Apache Cassandra Multi-Datacenter Essentials (Julien Anguenot, iLand Internet...
Apache Cassandra Multi-Datacenter Essentials (Julien Anguenot, iLand Internet...Apache Cassandra Multi-Datacenter Essentials (Julien Anguenot, iLand Internet...
Apache Cassandra Multi-Datacenter Essentials (Julien Anguenot, iLand Internet...
Ā 
Understanding Data Consistency in Apache Cassandra
Understanding Data Consistency in Apache CassandraUnderstanding Data Consistency in Apache Cassandra
Understanding Data Consistency in Apache Cassandra
Ā 
Cassandra concepts, patterns and anti-patterns
Cassandra concepts, patterns and anti-patternsCassandra concepts, patterns and anti-patterns
Cassandra concepts, patterns and anti-patterns
Ā 

Viewers also liked

Introducing Riak
Introducing RiakIntroducing Riak
Introducing RiakKevin Smith
Ā 
Counters with Riak on Amazon EC2 at Hackover
Counters with Riak on Amazon EC2 at HackoverCounters with Riak on Amazon EC2 at Hackover
Counters with Riak on Amazon EC2 at HackoverAndrei Savu
Ā 
Supervisord, The Process Manager
Supervisord, The Process ManagerSupervisord, The Process Manager
Supervisord, The Process Managersamof76
Ā 
Riak a successful failure
Riak   a successful failureRiak   a successful failure
Riak a successful failureGiltTech
Ā 
Riak - From Small to Large
Riak - From Small to LargeRiak - From Small to Large
Riak - From Small to LargeRusty Klophaus
Ā 
Distributed Key-Value Stores- Featuring Riak
Distributed Key-Value Stores- Featuring RiakDistributed Key-Value Stores- Featuring Riak
Distributed Key-Value Stores- Featuring Riaksamof76
Ā 
Riak in Ten Minutes
Riak in Ten MinutesRiak in Ten Minutes
Riak in Ten MinutesJon Meredith
Ā 
Relational Databases to Riak
Relational Databases to RiakRelational Databases to Riak
Relational Databases to RiakBasho Technologies
Ā 
Introduction to Riak - Red Dirt Ruby Conf Training
Introduction to Riak - Red Dirt Ruby Conf TrainingIntroduction to Riak - Red Dirt Ruby Conf Training
Introduction to Riak - Red Dirt Ruby Conf TrainingSean Cribbs
Ā 
Tele3113 wk2tue
Tele3113 wk2tueTele3113 wk2tue
Tele3113 wk2tueVin Voro
Ā 
Paczka ciasteczek
Paczka ciasteczekPaczka ciasteczek
Paczka ciasteczekderus19
Ā 
Getting Started
Getting StartedGetting Started
Getting StartedDiveon
Ā 
Future of cities meda city congress november 2012
Future of cities   meda city congress november 2012Future of cities   meda city congress november 2012
Future of cities meda city congress november 2012Alain JordĆ 
Ā 
Ennio Ciriolo - Chi gioca con la nostra storia?
Ennio Ciriolo - Chi gioca con la nostra storia?Ennio Ciriolo - Chi gioca con la nostra storia?
Ennio Ciriolo - Chi gioca con la nostra storia?enniociriolo
Ā 
dMT SPC Presentation Products-engl.
dMT SPC Presentation Products-engl.dMT SPC Presentation Products-engl.
dMT SPC Presentation Products-engl.dmtgms
Ā 
Dia de-la-energia2013-Ramon Espinasa
Dia de-la-energia2013-Ramon EspinasaDia de-la-energia2013-Ramon Espinasa
Dia de-la-energia2013-Ramon EspinasaReporte EnergĆ­a
Ā 
Social Media for NFP
Social Media for NFPSocial Media for NFP
Social Media for NFPwebAssistca
Ā 
Tele4653 l6
Tele4653 l6Tele4653 l6
Tele4653 l6Vin Voro
Ā 
http://accountants.inboxhilllocalarea.com/
http://accountants.inboxhilllocalarea.com/http://accountants.inboxhilllocalarea.com/
http://accountants.inboxhilllocalarea.com/accountantsbh
Ā 
ą¦†ą¦¤ą§ą¦® ą¦øą¦šą§‡ą¦¤ą¦Øą¦¤ą¦¾ ą¦…ą¦°ą§ą¦œą¦Øą§‡ą¦° ą¦øą§‚ą¦¤ą§ą¦°
ą¦†ą¦¤ą§ą¦® ą¦øą¦šą§‡ą¦¤ą¦Øą¦¤ą¦¾ ą¦…ą¦°ą§ą¦œą¦Øą§‡ą¦° ą¦øą§‚ą¦¤ą§ą¦° ą¦†ą¦¤ą§ą¦® ą¦øą¦šą§‡ą¦¤ą¦Øą¦¤ą¦¾ ą¦…ą¦°ą§ą¦œą¦Øą§‡ą¦° ą¦øą§‚ą¦¤ą§ą¦°
ą¦†ą¦¤ą§ą¦® ą¦øą¦šą§‡ą¦¤ą¦Øą¦¤ą¦¾ ą¦…ą¦°ą§ą¦œą¦Øą§‡ą¦° ą¦øą§‚ą¦¤ą§ą¦° Abul Bashar
Ā 

Viewers also liked (20)

Introducing Riak
Introducing RiakIntroducing Riak
Introducing Riak
Ā 
Counters with Riak on Amazon EC2 at Hackover
Counters with Riak on Amazon EC2 at HackoverCounters with Riak on Amazon EC2 at Hackover
Counters with Riak on Amazon EC2 at Hackover
Ā 
Supervisord, The Process Manager
Supervisord, The Process ManagerSupervisord, The Process Manager
Supervisord, The Process Manager
Ā 
Riak a successful failure
Riak   a successful failureRiak   a successful failure
Riak a successful failure
Ā 
Riak - From Small to Large
Riak - From Small to LargeRiak - From Small to Large
Riak - From Small to Large
Ā 
Distributed Key-Value Stores- Featuring Riak
Distributed Key-Value Stores- Featuring RiakDistributed Key-Value Stores- Featuring Riak
Distributed Key-Value Stores- Featuring Riak
Ā 
Riak in Ten Minutes
Riak in Ten MinutesRiak in Ten Minutes
Riak in Ten Minutes
Ā 
Relational Databases to Riak
Relational Databases to RiakRelational Databases to Riak
Relational Databases to Riak
Ā 
Introduction to Riak - Red Dirt Ruby Conf Training
Introduction to Riak - Red Dirt Ruby Conf TrainingIntroduction to Riak - Red Dirt Ruby Conf Training
Introduction to Riak - Red Dirt Ruby Conf Training
Ā 
Tele3113 wk2tue
Tele3113 wk2tueTele3113 wk2tue
Tele3113 wk2tue
Ā 
Paczka ciasteczek
Paczka ciasteczekPaczka ciasteczek
Paczka ciasteczek
Ā 
Getting Started
Getting StartedGetting Started
Getting Started
Ā 
Future of cities meda city congress november 2012
Future of cities   meda city congress november 2012Future of cities   meda city congress november 2012
Future of cities meda city congress november 2012
Ā 
Ennio Ciriolo - Chi gioca con la nostra storia?
Ennio Ciriolo - Chi gioca con la nostra storia?Ennio Ciriolo - Chi gioca con la nostra storia?
Ennio Ciriolo - Chi gioca con la nostra storia?
Ā 
dMT SPC Presentation Products-engl.
dMT SPC Presentation Products-engl.dMT SPC Presentation Products-engl.
dMT SPC Presentation Products-engl.
Ā 
Dia de-la-energia2013-Ramon Espinasa
Dia de-la-energia2013-Ramon EspinasaDia de-la-energia2013-Ramon Espinasa
Dia de-la-energia2013-Ramon Espinasa
Ā 
Social Media for NFP
Social Media for NFPSocial Media for NFP
Social Media for NFP
Ā 
Tele4653 l6
Tele4653 l6Tele4653 l6
Tele4653 l6
Ā 
http://accountants.inboxhilllocalarea.com/
http://accountants.inboxhilllocalarea.com/http://accountants.inboxhilllocalarea.com/
http://accountants.inboxhilllocalarea.com/
Ā 
ą¦†ą¦¤ą§ą¦® ą¦øą¦šą§‡ą¦¤ą¦Øą¦¤ą¦¾ ą¦…ą¦°ą§ą¦œą¦Øą§‡ą¦° ą¦øą§‚ą¦¤ą§ą¦°
ą¦†ą¦¤ą§ą¦® ą¦øą¦šą§‡ą¦¤ą¦Øą¦¤ą¦¾ ą¦…ą¦°ą§ą¦œą¦Øą§‡ą¦° ą¦øą§‚ą¦¤ą§ą¦° ą¦†ą¦¤ą§ą¦® ą¦øą¦šą§‡ą¦¤ą¦Øą¦¤ą¦¾ ą¦…ą¦°ą§ą¦œą¦Øą§‡ą¦° ą¦øą§‚ą¦¤ą§ą¦°
ą¦†ą¦¤ą§ą¦® ą¦øą¦šą§‡ą¦¤ą¦Øą¦¤ą¦¾ ą¦…ą¦°ą§ą¦œą¦Øą§‡ą¦° ą¦øą§‚ą¦¤ą§ą¦°
Ā 

Similar to Intro to riak

Ibm system storage solutions handbook
Ibm system storage solutions handbook Ibm system storage solutions handbook
Ibm system storage solutions handbook Diego Alberto Tamayo
Ā 
Performance tuning for ibm tivoli directory server redp4258
Performance tuning for ibm tivoli directory server   redp4258Performance tuning for ibm tivoli directory server   redp4258
Performance tuning for ibm tivoli directory server redp4258Banking at Ho Chi Minh city
Ā 
Expert oracle database architecture
Expert oracle database architectureExpert oracle database architecture
Expert oracle database architectureairy6548
Ā 
Sap In-Memory IBM
Sap In-Memory IBMSap In-Memory IBM
Sap In-Memory IBMAbhilash Sidd
Ā 
Db2 v9 admin guide z os
Db2 v9 admin guide z osDb2 v9 admin guide z os
Db2 v9 admin guide z osLeo Goicochea
Ā 
Optimizing oracle-on-sun-cmt-platform
Optimizing oracle-on-sun-cmt-platformOptimizing oracle-on-sun-cmt-platform
Optimizing oracle-on-sun-cmt-platformSal Marcus
Ā 
Tape automation with ibm e server xseries servers redp0415
Tape automation with ibm e server xseries servers redp0415Tape automation with ibm e server xseries servers redp0415
Tape automation with ibm e server xseries servers redp0415Banking at Ho Chi Minh city
Ā 
Ref arch for ve sg248155
Ref arch for ve sg248155Ref arch for ve sg248155
Ref arch for ve sg248155Accenture
Ā 
46061598 xml-data-exchange-using-abap
46061598 xml-data-exchange-using-abap46061598 xml-data-exchange-using-abap
46061598 xml-data-exchange-using-abapGerda_Meier
Ā 
IBM Flex System Networking in an Enterprise Data Center
IBM Flex System Networking in an Enterprise Data CenterIBM Flex System Networking in an Enterprise Data Center
IBM Flex System Networking in an Enterprise Data CenterIBM India Smarter Computing
Ā 
SAP In-Memory Computing on IBM eX5 Systems
SAP In-Memory Computing on IBM eX5 SystemsSAP In-Memory Computing on IBM eX5 Systems
SAP In-Memory Computing on IBM eX5 SystemsIBM India Smarter Computing
Ā 
Integrating ibm db2 with the ibm system storage n series sg247329
Integrating ibm db2 with the ibm system storage n series sg247329Integrating ibm db2 with the ibm system storage n series sg247329
Integrating ibm db2 with the ibm system storage n series sg247329Banking at Ho Chi Minh city
Ā 
Integrating ibm db2 with the ibm system storage n series sg247329
Integrating ibm db2 with the ibm system storage n series sg247329Integrating ibm db2 with the ibm system storage n series sg247329
Integrating ibm db2 with the ibm system storage n series sg247329Banking at Ho Chi Minh city
Ā 
RDB Synchronization, Transcoding and LDAP Directory Services ...
RDB Synchronization, Transcoding and LDAP Directory Services ...RDB Synchronization, Transcoding and LDAP Directory Services ...
RDB Synchronization, Transcoding and LDAP Directory Services ...Videoguy
Ā 
Experiences with oracle 10g database for linux on z series sg246482
Experiences with oracle 10g database for linux on z series sg246482Experiences with oracle 10g database for linux on z series sg246482
Experiences with oracle 10g database for linux on z series sg246482Banking at Ho Chi Minh city
Ā 
Zimbra guide admin_anglais_uniquement
Zimbra guide admin_anglais_uniquementZimbra guide admin_anglais_uniquement
Zimbra guide admin_anglais_uniquementchiensy
Ā 
irmpg_3.7_python_202301.pdf
irmpg_3.7_python_202301.pdfirmpg_3.7_python_202301.pdf
irmpg_3.7_python_202301.pdfFernandoBello39
Ā 
DB2 10 for Linux on System z Using z/VM v6.2, Single System Image Clusters an...
DB2 10 for Linux on System z Using z/VM v6.2, Single System Image Clusters an...DB2 10 for Linux on System z Using z/VM v6.2, Single System Image Clusters an...
DB2 10 for Linux on System z Using z/VM v6.2, Single System Image Clusters an...IBM India Smarter Computing
Ā 

Similar to Intro to riak (20)

Ibm system storage solutions handbook
Ibm system storage solutions handbook Ibm system storage solutions handbook
Ibm system storage solutions handbook
Ā 
Performance tuning for ibm tivoli directory server redp4258
Performance tuning for ibm tivoli directory server   redp4258Performance tuning for ibm tivoli directory server   redp4258
Performance tuning for ibm tivoli directory server redp4258
Ā 
Expert oracle database architecture
Expert oracle database architectureExpert oracle database architecture
Expert oracle database architecture
Ā 
Sap In-Memory IBM
Sap In-Memory IBMSap In-Memory IBM
Sap In-Memory IBM
Ā 
Db2 v9 admin guide z os
Db2 v9 admin guide z osDb2 v9 admin guide z os
Db2 v9 admin guide z os
Ā 
R data
R dataR data
R data
Ā 
Optimizing oracle-on-sun-cmt-platform
Optimizing oracle-on-sun-cmt-platformOptimizing oracle-on-sun-cmt-platform
Optimizing oracle-on-sun-cmt-platform
Ā 
Tape automation with ibm e server xseries servers redp0415
Tape automation with ibm e server xseries servers redp0415Tape automation with ibm e server xseries servers redp0415
Tape automation with ibm e server xseries servers redp0415
Ā 
Ref arch for ve sg248155
Ref arch for ve sg248155Ref arch for ve sg248155
Ref arch for ve sg248155
Ā 
46061598 xml-data-exchange-using-abap
46061598 xml-data-exchange-using-abap46061598 xml-data-exchange-using-abap
46061598 xml-data-exchange-using-abap
Ā 
IBM Flex System Networking in an Enterprise Data Center
IBM Flex System Networking in an Enterprise Data CenterIBM Flex System Networking in an Enterprise Data Center
IBM Flex System Networking in an Enterprise Data Center
Ā 
SAP In-Memory Computing on IBM eX5 Systems
SAP In-Memory Computing on IBM eX5 SystemsSAP In-Memory Computing on IBM eX5 Systems
SAP In-Memory Computing on IBM eX5 Systems
Ā 
Integrating ibm db2 with the ibm system storage n series sg247329
Integrating ibm db2 with the ibm system storage n series sg247329Integrating ibm db2 with the ibm system storage n series sg247329
Integrating ibm db2 with the ibm system storage n series sg247329
Ā 
Integrating ibm db2 with the ibm system storage n series sg247329
Integrating ibm db2 with the ibm system storage n series sg247329Integrating ibm db2 with the ibm system storage n series sg247329
Integrating ibm db2 with the ibm system storage n series sg247329
Ā 
RDB Synchronization, Transcoding and LDAP Directory Services ...
RDB Synchronization, Transcoding and LDAP Directory Services ...RDB Synchronization, Transcoding and LDAP Directory Services ...
RDB Synchronization, Transcoding and LDAP Directory Services ...
Ā 
Experiences with oracle 10g database for linux on z series sg246482
Experiences with oracle 10g database for linux on z series sg246482Experiences with oracle 10g database for linux on z series sg246482
Experiences with oracle 10g database for linux on z series sg246482
Ā 
Zimbra guide admin_anglais_uniquement
Zimbra guide admin_anglais_uniquementZimbra guide admin_anglais_uniquement
Zimbra guide admin_anglais_uniquement
Ā 
irmpg_3.7_python_202301.pdf
irmpg_3.7_python_202301.pdfirmpg_3.7_python_202301.pdf
irmpg_3.7_python_202301.pdf
Ā 
pyspark.pdf
pyspark.pdfpyspark.pdf
pyspark.pdf
Ā 
DB2 10 for Linux on System z Using z/VM v6.2, Single System Image Clusters an...
DB2 10 for Linux on System z Using z/VM v6.2, Single System Image Clusters an...DB2 10 for Linux on System z Using z/VM v6.2, Single System Image Clusters an...
DB2 10 for Linux on System z Using z/VM v6.2, Single System Image Clusters an...
Ā 

Recently uploaded

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
Ā 
šŸ¬ 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
Ā 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
Ā 
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
Ā 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
Ā 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
Ā 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUK Journal
Ā 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
Ā 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
Ā 
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
Ā 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
Ā 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
Ā 
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
Ā 
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
Ā 
Scaling API-first ā€“ The story of a global engineering organization
Scaling API-first ā€“ The story of a global engineering organizationScaling API-first ā€“ The story of a global engineering organization
Scaling API-first ā€“ The story of a global engineering organizationRadu Cotescu
Ā 
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
Ā 
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
Ā 
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
Ā 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
Ā 
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
Ā 

Recently uploaded (20)

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...
Ā 
šŸ¬ The future of MySQL is Postgres šŸ˜
šŸ¬  The future of MySQL is Postgres   šŸ˜šŸ¬  The future of MySQL is Postgres   šŸ˜
šŸ¬ The future of MySQL is Postgres šŸ˜
Ā 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
Ā 
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
Ā 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
Ā 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
Ā 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Ā 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
Ā 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Ā 
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
Ā 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
Ā 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
Ā 
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
Ā 
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
Ā 
Scaling API-first ā€“ The story of a global engineering organization
Scaling API-first ā€“ The story of a global engineering organizationScaling API-first ā€“ The story of a global engineering organization
Scaling API-first ā€“ The story of a global engineering organization
Ā 
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
Ā 
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
Ā 
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
Ā 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
Ā 
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
Ā 

Intro to riak

  • 1. . Distributed computation on dynamo-style distributed storage: Riak pipe . An introduction to Riak Jaseem Abid September 19, 2012 . . . . . . . . . . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..
  • 2. . Riak . . . . . . . . . . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..
  • 3. . What is Riak ? Riak is an open source, distributed NoSQL database implementing the principles from Amazonā€™s Dynamo paper. . . . . . . . . . . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..
  • 4. . Dynamo Model Riak is a highly available, proprietary key-value structured storage system or a distributed data store. It has properties of both databases and distributed hash tables (DHTs). It is not directly exposed as a web service, but is used to power parts of other Amazon Web Services such as Amazon S3. . . . . . . . . . . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..
  • 5. . Dynamo Model Riak is a highly available, proprietary key-value structured storage system or a distributed data store. It has properties of both databases and distributed hash tables (DHTs). It is not directly exposed as a web service, but is used to power parts of other Amazon Web Services such as Amazon S3. . . . . . . . . . . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..
  • 6. . Dynamo Model Riak is a highly available, proprietary key-value structured storage system or a distributed data store. It has properties of both databases and distributed hash tables (DHTs). It is not directly exposed as a web service, but is used to power parts of other Amazon Web Services such as Amazon S3. . . . . . . . . . . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..
  • 7. . Dynamo Model Riak is a highly available, proprietary key-value structured storage system or a distributed data store. It has properties of both databases and distributed hash tables (DHTs). It is not directly exposed as a web service, but is used to power parts of other Amazon Web Services such as Amazon S3. . . . . . . . . . . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..
  • 8. . Dynamo Model Riak is a highly available, proprietary key-value structured storage system or a distributed data store. It has properties of both databases and distributed hash tables (DHTs). It is not directly exposed as a web service, but is used to power parts of other Amazon Web Services such as Amazon S3. Implementations Apache Cassandra Project Voldemort Riak Amazon DynamoDB . . . . . . . . . . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..
  • 9. . This talk Front Matter Dynamo (and NoSQL) are nothing new Much of Dynamo was invented > 10 years ago Dynamo chooses AP of CAP This talk will focus on properties of Dynamo-inspired systems (Riak, Cassandra, Voldemort) . . . . . . . . . . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..
  • 10. . CAP theorem . . . . . . . . . . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..
  • 11. . CAP theorem Consistent, writes are atomic and all subsequent requests retrieve the new value . . . . . . . . . . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..
  • 12. . CAP theorem Consistent, writes are atomic and all subsequent requests retrieve the new value Available, the database will always return a value as long as a single server is running . . . . . . . . . . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..
  • 13. . CAP theorem Consistent, writes are atomic and all subsequent requests retrieve the new value Available, the database will always return a value as long as a single server is running Partition Tolerant, the system will still function even if server communication is temporarily lostā€”that is, a network partition . . . . . . . . . . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..
  • 14. . CAP theorem Consistent, writes are atomic and all subsequent requests retrieve the new value Available, the database will always return a value as long as a single server is running Partition Tolerant, the system will still function even if server communication is temporarily lostā€”that is, a network partition You can have only two at once. . . . . . . . . . . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..
  • 15. . CAP theorem Riak picks AP of CAP . . . . . . . . . . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..
  • 16. . Eventual Consistency Distributed databases must be partition tolerant, so the choice between availability and consistency can be diļ¬ƒcult. The real world is eventually consistent and works (mostly) ļ¬ne *Eventual* doesnā€™t mean minutes, days, or even seconds in non-failure cases DNS, HTTP with Expires: header How you model the real world matters! . . . . . . . . . . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..
  • 17. . Riak Architecture Amazonā€™s Dynamo architecture Distributed, Scalable, No single point of failure No transactions; trade strong consistency for eventual consistency . . . . . . . . . . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..
  • 18. . Simple Key Value data store - Store anything Plain text, JSON, or XML to images or video clipsā€”all accessible through a simple HTTP interface . . . . . . . . . . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..
  • 19. . Simple Key Value data store - Store anything Plain text, JSON, or XML to images or video clipsā€”all accessible through a simple HTTP interface Riak KV . . . . . . . . . . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..
  • 20. . Fault-Tolerant Riak is also fault-tolerant. Servers can go up or down at any moment with no single point of failure. . . . . . . . . . . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..
  • 21. . Riak loves the web Query Riak via URLs, headers, and verbs, and Riak returns assets and standard HTTP response codes. . . . . . . . . . . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..
  • 22. . Scalable # start 4 nodes $ dev/dev1/bin/riak start $ dev/dev2/bin/riak start $ dev/dev3/bin/riak start $ dev/dev4/bin/riak start # scale out $ dev/dev2/bin/riak-admin join dev1@127.0.0.1 # scabe back in $ riak-admin leave . . . . . . . . . . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..
  • 23. . Queriablity REST API Easy quick and dirty Map Reduce Provide set of starting keys, ļ¬lter via map Map reduce is meant for calulations/ aggregations and not queries. Riak Search Full text search in Riak Opinionated Roll out your own indices Diļ¬ƒcult to get it right More code to maintain Often introduces SPOFs . . . . . . . . . . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..
  • 24. . Riak REST API Representational state transfer . . . . . . . . . . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..
  • 25. . Riak REST API Representational state transfer Create Update Read Delete verbs . . . . . . . . . . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..
  • 26. . Riak REST API Representational state transfer Create Update Read Delete verbs Riak and cURL . . . . . . . . . . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..
  • 27. . REST API w/ curl $ curl http://localhost:8091/ping OK # Letā€™s issue a bad query. # -I tells cURL that we want only the header response. $ curl -I http://localhost:8091/riak/no_bucket/no_key HTTP/1.1 404 Object Not Found Server: MochiWeb/1.1 WebMachine/1.7.3 (participate in the frantic) Date: Thu, 04 Aug 2011 01:25:49 GMT Content-Type: text/plain Content-Length: 10 . . . . . . . . . . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..
  • 28. . Lets PUT something in the DB $ curl -v -X PUT http://localhost:8091/riak/favs/db -H "Content-Type: text/html" -d "<html> <body> <h1> My new favorite DB is RIAK </h1> </body> </html>" . . . . . . . . . . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..
  • 29. . Now get it back curl -X GET http://localhost:8091/riak/favs/db Or just hit the browser . . . . . . . . . . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..
  • 30. . Or POST it $ curl -I -X POST http://localhost:8091/riak/animals -H "Content-Type: application/json" -d '{ "nickname" : "Sergeant Stubby", "breed" : "Terrier" }' HTTP/1.1 201 Created Vary: Accept-Encoding Server: MochiWeb/1.1 WebMachine/1.7.3 (participate in the frantic) Location: /riak/animals/6VZc2o7zKxq2B34kJrm1S0ma3PO Date: Tue, 05 Apr 2011 07:45:33 GMT Content-Type: application/json Content-Length: 0 . . . . . . . . . . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..
  • 31. . Dump anything curl -X PUT HTTP://127.0.0.1:8091/riak/images/1.jpg -H "Content-type: image/jpeg" --data-binary @image_name.jpg . . . . . . . . . . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..
  • 32. . Or DELETE it $ curl -I -X DELETE http://localhost:8091/riak/ animals/6VZc2o7zKxq2B34kJrm1S0ma3PO HTTP/1.1 204 No Content Vary: Accept-Encoding Server: MochiWeb/1.1 WebMachine/1.7.3 (participate in the frantic) Date: Mon, 11 Apr 2011 05:08:39 GMT Content-Type: application/x-www-form-urlencoded Content-Length: 0 DELETE wonā€™t return any body, but the HTTP code will be 204 if successful. Otherwise, as youā€™d expect, it returns a 404. . . . . . . . . . . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..
  • 33. . Map Reduce Google :) *large* data sets Functional Programming Apache Hadoop Why C suck here . . . . . . . . . . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..
  • 34. . The tldr; version MapReduce is a framework for processing embarrassingly parallel problems across huge datasets using a large number of computers (nodes), collectively referred to as a cluster (if all nodes are on the same local network and use similar hardware) or a grid (if the nodes are shared across geographically and administratively distributed systems, and use more heterogenous hardware). Computational processing can occur on data stored either in a ļ¬lesystem (unstructured) or in a database (structured). MapReduce can take advantage of locality of data, processing data on or near the storage assets to decrease transmission of data. . . . . . . . . . . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..
  • 35. . Map ā€Mapā€ step: The master node takes the input, divides it into smaller sub-problems, and distributes them to worker nodes. A worker node may do this again in turn, leading to a multi-level tree structure. The worker node processes the smaller problem, and passes the answer back to its master node. . . . . . . . . . . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..
  • 36. . Reduce ā€Reduceā€ step: The master node then collects the answers to all the sub-problems and combines them in some way to form the output ā€“ the answer to the problem it was originally trying to solve. . . . . . . . . . . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..
  • 37. . JSON { "name": "John Smith", "age": 25, "address": { "streetAddress": "21 2nd Street", "city": "New York" "postalCode": "10021" }, "phoneNumber": [ { "type": "home", "number": "212 555-1234" }, { "type": "fax", "number": "646 555-4567" } ] } .. . .. . .. . . . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. .. . .. . .. . .. . .. .
  • 38. . Map The Riak way function (v) { return [v.phoneNumber]; } The couchDB way function (v) { emit("phone", v.phoneNumber); } . . . . . . . . . . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..
  • 39. . Riak Search ... . . . . . . . . . . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..
  • 40. . Riak Secondary Indices ... . . . . . . . . . . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..
  • 41. . Riak ā€¦ Written in : Erlang & C, some Javascript . . . . . . . . . . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..
  • 42. . Riak ā€¦ Protocol: HTTP/REST or custom binary . . . . . . . . . . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..
  • 43. . Riak ā€¦ Tunable trade-oļ¬€s for distribution and replication (N, R, W) . . . . . . . . . . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..
  • 44. . Riak ā€¦ Pre - and post-commit hooks in JavaScript or Erlang, for validation and security. . . . . . . . . . . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..
  • 45. . Riak ā€¦ Map/reduce in JavaScript or Erlang . . . . . . . . . . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..
  • 46. . Riak ā€¦ Links & link walking: use it as a graph database . . . . . . . . . . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..
  • 47. . Riak ā€¦ Secondary indices: but only one at once Large object support (Luwak) . . . . . . . . . . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..
  • 48. . Riak ā€¦ Comes in ā€open sourceā€ and ā€enterpriseā€ editions . . . . . . . . . . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..
  • 49. . Riak ā€¦ Full-text search, indexing, querying with Riak ā€¦Search server (beta) . . . . . . . . . . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..
  • 50. . Riak ā€¦ In the process of migrating the storing backend from ā€Bitcaskā€ to Google ā€LevelDBā€ . . . . . . . . . . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..
  • 51. . Riak ā€¦ Masterless multi-site replication replication and SNMP monitoring are commercially licensed . . . . . . . . . . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..
  • 52. . Riak ā€¦ Best used: If you want something Cassandra-like (Dynamo-like), but no way youā€™re gonna deal with the bloat and complexity. If you need very good single-site scalability, availability and fault-tolerance, but youā€™re ready to pay for multi-site replication. . . . . . . . . . . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..
  • 53. . Riak ā€¦ For example: Point-of-sales data collection. Factory control systems. Places where even seconds of downtime hurt. Could be used as a well-update-able web server. . . . . . . . . . . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..
  • 54. . Review Multi-node Clustering MapReduce Processing Integrated Full-Text Search Secondary Indexing Masterless Multi-Site Replication Large Object Support Implementation Architecture . . . . . . . . . . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..
  • 55. . Why use Riak Scalable Riak is built so you can add more capacity as your app or platform grows. When you add new machines, Riak distributes data automatically around the cluster with no downtime and a near-linear increase in performance and throughput . . . . . . . . . . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..
  • 56. . Why use Riak Simple Ops Riak is the most boring database youā€™ll ever run in production. No sharding required, just horizontal scaling and straight-forward capacity planning. The same operational tasks apply to small clusters and large clusters. More machines does not mean more ops. . . . . . . . . . . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..
  • 57. . Why use Riak Masterless A Riak cluster is masterless. No node is special and any node can handle requests for any other node in the cluster. All requests to Riak happen concurrently and developers donā€™t have to spend time worrying about read/write locks or single points of failure. . . . . . . . . . . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..
  • 58. . Why use Riak Fault Tolerant Decide how many replicas of the data you want (start at 3). If nodes go down, requests are routed transparently to other nodes. Riak uses proven architectural principles like hinted handoļ¬€ and read repair so you can always write and read data, even in failure conditions. . . . . . . . . . . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..
  • 59. . Why use Riak Complex Queries In addition to key/value access to your data, Riak has built-in support for MapReduce, Full Text Search, and Secondary Indexes, giving developers various ways to store and query their data. . . . . . . . . . . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..
  • 60. . Why use Riak Flexible APIs Riak is equipped with fully-featured HTTP and Protocol Buļ¬€ers APIs, with support for both of these transports in all of our supported client libraries. You can also write your own client layer to wrap our APIs if your use case or preference calls for it. . . . . . . . . . . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..
  • 61. . Why use Riak 1000s of Users Comcast, Yammer, Voxer, Boeing, BestBuy, SEOMoz, Joyent, Kiip, DotCloud, Formspring, GitHub, and the Danish Government are just a few of the thousands of startups and enterprises that have deployed Riak. . . . . . . . . . . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..
  • 62. . Who uses it and why? github git.io comcast Internal object storage yammer Notiļ¬cations DISQUS analytics AOL 1.5 billion data objects per day Mozilla User reviews joyent, best buy ā€¦ . . . . . . . . . . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..
  • 63. . Why use Riak Language Support Basho and the Riak Community maintain libraries for most major languages including Java, Node.js, Python, Ruby, PHP, C/C++, and many more. All the client code, like the core Riak code, is available on GitHub. . . . . . . . . . . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..
  • 64. . Why use Riak Powerful Community The Riak community is composed of smart, passionate hackers who are contributing code, support, and evangelism every day. There are hundreds of companies and individuals testing, breaking, running, and building Riak. . . . . . . . . . . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..
  • 65. Questions? . . . . . . . . . . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..