The Riak team of distributed systems engineers continues to develop new Riak functionality to help companies build innovative applications. A few members of the Riak team recently took a break from their day jobs to share some of the details of their recent work at the Erlang User Conference in Stockholm. In case you missed them, we wanted to share videos of these presentations. (Hint: They aren’t just for people passionate about Erlang)
Russell Brown provided an update on the research and implementation of CRDTs and his recent work on expanding CRDT support for bigger sets in Riak. Gordon Guthrie showed how NoSQL really means “not only SQL” and explained the new capabilities and techniques in Riak that are specifically optimized for time series data. Torben Hoffmann gave some hints on application architectures that have the flexibility to serve both the short and long term needs of a start-up. Andy Till explained how to debug Erlang, Elixir, and LFE applications using tracing with Erlyberly. Plus, Magnus Kessler leads a hands-on tutorial of Riak Distributed Data Types (CRDTs).
See more information on each of these presentations below.
Grab your popcorn and enjoy!
Big(ger) Sets: Making CRDT Sets Scale in Riak
Russell Brown
Eventually Consistent CRDTist at Riak
GitHub: russelldb
Presentation overview:
This talk looks at the original implementation of Riak Distributed Data Types (CRDTs) and shows a new approach to designing CRDTs in Riak from the ground up that comes with a great deal more scale and performance.
Talk objective:
Illustrate the engineering challenges inherent in taking research papers into a real world product. This is both a cautionary tale and a showcase of our recent work.
From NoSQL to More SQL – Adding Structure and Queriability to Riak
Gordon Guthrie
Senior Engineer @ Riak and Serial Entrepreneur
GitHub: gordonguthrie Twitter: @gordonguthrie
Presentation overview:
Riak is an industry leader in the NoSQL space but with the new Riak Time Series offering more traditional tools like native SQL querying is being added. This talk will look at meta-programming being used in a gossip-based cluster to build an adaptive Riak that reconfigures itself to handle structured data – and how we use standard SQL to interrogate that data.
Talk objective:
Explain the new capabilities and techniques in Riak TS
Winning as a Start-Up by Failing Fast
Torben Hoffmann
Chief Architect at Riak
GitHub: LeHoff Twitter: @LeHoff
Presentation Overview:
Scalability is a word often used to describe Riak KV & Erlang/Elixir, but it is not the first concern for a start-up. Scalability is a rich man’s problem.
Sure, you need a stack that can scale… when you are ready!
Until that point, you need something that is flexible and allows you to iterate over a lot of experiments in a short period of time.
Experiments with software often involve errors. Erlang/Elixir has a unique approach to dealing with errors that lend itself well to do the experiments and, at the same time, keep a start-up rolling. We will look into how you should architect your software to leverage this, so you work with the BEAM and not against it.
Riak KV is a scalable, reliable NoSQL database that takes the Erlang philosophy regarding failures to heart – don’t ignore failure, embrace failure!!
But wait a second… if scalability is a rich man’s problem, what role does Riak KV play for a start-up?
This talk will go into how to approach this dilemma by attacking it with an architecture that has the flexibility that serves both the short and long term needs of a start-up.
Talk objective:
Show how Riak KV and Erlang/Elixir can help a start-up focus on the most important thing: conducting experiments fast to get to a viable business model before the money runs out.
Trace Debugging With ErlyBERLY
Andy Till
Riak Time Series Database Developer
GitHub: andytill Twitter: @andy_till
Presentation overview:
The BEAM virtual machine has flexible and powerful tooling from introspection, statistics, and debugging without affecting the running application. Erlyberly is an ongoing project to lower the barrier for entry for using these capabilities which focus on tracing.
Talk objective:
Learn how to debug Erlang, Elixir, and LFE applications using tracing with erlyberly.
Tutorial: No more fighting with your siblings. Riak distributed Data Types (CRDTs) remove the stress
Slides (no video available)
Magnus Kessler
Client Services Engineer @ Riak
Tutorial Overview:
Choosing a highly available database can mean sacrificing some consistency of data during failure scenarios, but it should not mean data loss. Databases designed with partition tolerance and eventual consistency in mind can offer multiple ways to handle conflict resolution, but some can be difficult to reason about or so be simple that you lose the configurability you need.
In Riak KV, we recommend you allow ‘siblings’ or multiple versions of data to be stored whenever there is no way to determine the correct latest version. But once you have multiple siblings, how do you get back to the single correct and consolidated version of data your application is expecting to use?
Riak Data Types are distributed data structures designed to provide deterministic resolution logic, removing the need for the application developer to write such functionality in an ad-hoc manner or multiple varying ways across a large project.
Summary:
We will demonstrate why Riak KV would generate siblings and then implement each of the Riak Data Types available in Riak KV to solve the challenges of working with a highly available and eventually consistent database.
Next Steps
If you found these presentations interesting, you might also enjoy these blogs:
Running Riak in Docker
Riak’s Spark-Riak Connector 1.6.0 Now Available
NoSQL Riak TS Gets JDBC Driver Inspired by SQL
4 part series by Damien Krotkine, Ivan Paponov at booking.com
Using Riak as Events Storage – Part 1
Using Riak as Events Storage – Part 2
Using Riak as Events Storage – Part 3
Using Riak as Events Storage – Part 4