Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Riak 1.3

Riak 1.3

An overview of the new features in Riak 1.3 [0]. Presentation ends in a demonstration of Riak CS [1] in a Vagrant project [2].

[0] http://basho.com/introducing-riak-1-3/
[1] http://basho.com/riak-cloud-storage/
[2] https://github.com/hectcastro/vagrant-riak-cs-cluster

Hector Castro

March 21, 2013
Tweet

More Decks by Hector Castro

Other Decks in Technology

Transcript

  1. $ git clone [email protected]:basho/riak.git Cloning into 'riak'... remote: Counting objects:

    13873, done. remote: Compressing objects: 100% (4535/4535), done. remote: Total 13873 (delta 9062), reused 13721 (delta 8933) Receiving objects: 100% (13873/13873), 10.46 MiB | 1.54 MiB/s, done. Resolving deltas: 100% (9062/9062), done. $
  2. $ git clone [email protected]:basho/riak.git Cloning into 'riak'... remote: Counting objects:

    13873, done. remote: Compressing objects: 100% (4535/4535), done. remote: Total 13873 (delta 9062), reused 13721 (delta 8933) Receiving objects: 100% (13873/13873), 10.46 MiB | 1.54 MiB/s, done. Resolving deltas: 100% (9062/9062), done. $ cd riak && git checkout riak-1.3.0 $
  3. $ cat RELEASE-NOTES.md ## Riak 1.3.0 Release Notes * Active

    Anti-entropy * Riak Control * IPv6 * MapReduce Backpressure * syslog $
  4. // Active Anti-entropy * Lightweight background process * Constantly verifying

    and repairing replicas * Hash tree exchange proportional to the amount of divergent data
  5. // Active Anti-entropy * Lightweight background process * Constantly verifying

    and repairing replicas * Hash tree exchange proportional to the amount of divergent data * Hash trees persisted to disk and kept up-to-date in real-time
  6. +-------+ +-------+ +-------+ | 1 | | 2 | |

    3 | |-------| |-------| |-------| | | | | | | | n | | n | | n | | | | | | | +-------+ +-------+ +-------+ Write value [m]...
  7. +-------+ +-------+ +-------+ | 1 | | 2 | |

    3 | |-------| |-------| |-------| | | | | | | | m | | m | | n | | | | | | | +-------+ +-------+ +-------+ Write value [m]... Some network partition prevents node [3] from getting [m].
  8. +-------+ +-------+ +-------+ | 1 | | 2 | |

    3 | |-------| |-------| |-------| | | | | | | | m | | m | | n | | | | | | | +-------+ +-------+ +-------+ Write value [m]... Some network partition prevents node [3] from getting [m]. Triggering a read...
  9. +-------+ +-------+ +-------+ | 1 | | 2 | |

    3 | |-------| |-------| |-------| | | | | | | | m | | m | | m | | | | | | | +-------+ +-------+ +-------+ Write value [m]... Some network partition prevents node [3] from getting [m]. Triggering a read... Successfully read value [m] and repaired node [3] with value [m].
  10. +-------+ +-------+ +-------+ | 1 | | 2 | |

    3 | |-------| |-------| |-------| | | | | | | | m | | m | | n | | | | | | | +-------+ +-------+ +-------+ Rewind. Similar scenario with some failures.
  11. +-------+ +-------+ +-------+ | 1 | | 2 | |

    3 | |-------| |-------| |-------| | | | | | | | m | | m | | n | | | | | | | +-------+ +-------+ +-------+ Rewind. Similar scenario with some failures. Node [1] disk failure...
  12. +-------+ +-------+ +-------+ | 1 | | 2 | |

    3 | |-------| |-------| |-------| | | | | | | | m | | m | | n | | | | | | | +-------+ +-------+ +-------+ Rewind. Similar scenario with some failures. Node [1] disk failure... Node [2] disk failure...
  13. +-------+ +-------+ +-------+ | 1 | | 2 | |

    3 | |-------| |-------| |-------| | | | | | | | m | | m | | n | | | | | | | +-------+ +-------+ +-------+ Rewind. Similar scenario with some failures. Node [1] disk failure... Node [2] disk failure... Triggering a read...
  14. +-------+ +-------+ +-------+ | 1 | | 2 | |

    3 | |-------| |-------| |-------| | | | | | | | m | | m | | n | | | | | | | +-------+ +-------+ +-------+ Rewind. Similar scenario with some failures. Node [1] disk failure... Node [2] disk failure... Triggering a read... Sheeeeeeeeeeeeeeeeeeeeeit.
  15. // Riak Control * Modular and extensible [0] * Fancy

    admin UI built using Ember.js and Ember Data for persistence
  16. // Riak Control * Modular and extensible [0] * Fancy

    admin UI built using Ember.js and Ember Data for persistence * View a snapshot of cluster health, cluster detail, ring view
  17. // Riak Control * Modular and extensible [0] * Fancy

    admin UI built using Ember.js and Ember Data for persistence * View a snapshot of cluster health, cluster detail, ring view [0] github.com/basho/riak_control/wiki/Contributing-to-Riak-Control
  18. // IPv6 * Riak Handoff interfaces now listen on IPv6

    addresses * Protocol Buffers interfaces now listen on IPv6 addresses
  19. // IPv6 * Riak Handoff interfaces now listen on IPv6

    addresses * Protocol Buffers interfaces now listen on IPv6 addresses * HTTP has always supported IPv6
  20. // MapReduce Backpressure * Completes end-to-end backpressure * Helps mitigate

    errors in inefficient MapReduce jobs * Produces fewer pointless errors
  21. $ git clone [email protected]:basho/riak_ee.git Cloning into 'riak_ee'... remote: Counting objects:

    15769, done. remote: Compressing objects: 100% (12914/12914), done. remote: Total 15769 (delta 2462), reused 15724 (delta 2419) Receiving objects: 100% (15769/15769), 19.07 MiB | 1.21 MiB/s, done. Resolving deltas: 100% (2462/2462), done. $
  22. $ git clone [email protected]:basho/riak_ee.git Cloning into 'riak_ee'... remote: Counting objects:

    15769, done. remote: Compressing objects: 100% (12914/12914), done. remote: Total 15769 (delta 2462), reused 15724 (delta 2419) Receiving objects: 100% (15769/15769), 19.07 MiB | 1.21 MiB/s, done. Resolving deltas: 100% (2462/2462), done. $ cd riak_ee && git checkout riak_ee-1.3.0 $
  23. $ cat RELEASE-NOTES.md ## Riak 1.3.0 Release Notes * Advanced

    multi-datacenter replication (Brave New World) $
  24. // Brave New World * Single connection per cluster to

    using one-to-one connections between peer nodes of clusters
  25. // Brave New World * Single connection per cluster to

    using one-to-one connections between peer nodes of clusters * Replication can use the full capacity of the network and cluster while increasing fault tolerance
  26. // Brave New World * Single connection per cluster to

    using one-to-one connections between peer nodes of clusters * Replication can use the full capacity of the network and cluster while increasing fault tolerance * Replication uses a single port for all communications
  27. // Brave New World * Single connection per cluster to

    using one-to-one connections between peer nodes of clusters * Replication can use the full capacity of the network and cluster while increasing fault tolerance * Replication uses a single port for all communications * Clarified terminology: *source* = primary cluster, *sink* = secondary cluster
  28. // Future Work * Dynamic ring sizing * Convergent replicated

    data type (CRDTs) * Secondary index (2i) improvements
  29. // Future Work * Dynamic ring sizing * Convergent replicated

    data type (CRDTs) * Secondary index (2i) improvements * Yokozuna
  30. $ cd ~/community $ cat summary.md ## Riak Community Summary

    * Mailing List - 1300 developers * IRC - 200+ people every day yelling about software * GitHub - 1000s of watchers; 200+ contributors to all projects * Meetups - 10 Countries, 23 Cities, 3700+ Members * Deployments - 1000s in production $
  31. $ cat ricon-east.md ## RICON | East * May 13-14th

    in New York City * Talks, hacking, parties * Dedicated to future of Riak and distributed systems in production * Coupon code: lovevnodes $
  32. $ cat ricon-east.md ## RICON | East * May 13-14th

    in New York City * Talks, hacking, parties * Dedicated to future of Riak and distributed systems in production * Coupon code: lovevnodes $ lynx http://ricon.io/east.html