Big(ger) Sets: Making CRDT Sets Scale in Riak

Russell Brown
Eventually Consistent CRDTist at Basho

When Riak 2.0 shipped with CRDTs as Riak Data Types it was the first commercial database product to include this research-driven technology. CRDTs promised much in the way of making eventual consistency easier to use but performed badly in Riak 2.0. This talk looks at the original naive implementation and shows a new approach to designing CRDTs into Riak from the ground up that comes with a great deal more scale and performance.

Talk objectives:

Illustrate the engineering challenges inherent in taking research papers into a real world product. Both a cautionary tale and a showcase of our recent work.

Target audience:

Software engineers. Distributed systems enthusiasts, researchers who work with industry, and practitioners interested in research. Riak users.


Almost 20 years as a software developer. Formally Java, but concurrent and distributed programming was too hard so bought Joe Armstrong's book and learned Erlang on my honeymoon. Blagged a job writing Java for Basho in the hopes of one day writing Erlang for living, and since have contributed to riak and other distributed systems. Currently specialising in eventual consistency, causality, logical clocks, distributed data types, and all that.

GitHub: russelldb

Twitter: @russelldb

Back to conference page