The Basho team of distributed systems engineers continues to develop new Riak functionality to help companies build innovative applications. A few members of the Basho 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
Eventually Consistent CRDTist at Basho
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.
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
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.
Explain the new capabilities and techniques in Riak TS
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 lends 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?
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
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 focuses on tracing.
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)
Client Services Engineer @ Basho
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.
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.
If you found these presentations interesting, you might also enjoy these blogs:
3 part series by Damien Krotkine, Ivan Paponov at bookings.com