Basho guys have started to talk about their experience on building Riak, the Dynamo-like distributed key-value store and the common building blocks of distributed systems.
Justin Sheehy interviewed by Sadek Drobi over ☞ InfoQ.com:
Even just the Dynamo specific parts are very dramatic in differences. There have been a number of Dynamo-like systems developed over the past few years, each of which has had to design and implement large portions of even just the Dynamo-like sections on their own. Because Dynamo tells you what some very good design decisions are but it doesn’t show you how to implement the system. Even just the Dynamo portion you have to do a lot of design work, just to implement that.
Justin on choosing Erlang for implementing Riak:
There was a really natural choice because especially when you look at the Dynamo model, where they talk about all these operations where to get a value you’ll send messages to multiple other parties, then you’ll wait through various phases for responses of different classes to come back and the basic building blocks to do that kind of messaging and to do that kind of more complex state machine are there for you out of the box for you in Erlang.
Kevin Smith promises a series of posts covering the details of ☞ riak_core, the refactored core of the Riak system that can be used for building Dynamo-like distributed systems:
Distributed systems are complex and some of that complexity shows in the amount of features available in riak_core. Rather than dive deeply into code, I’m going to separate the features into broad categories and give an overview of each.
The ☞ first part covers aspects like:
- node liveness & membership (note it is interesting to note that improvements to the failure recovery mechanism is part of the latest Riak release
- partitioning & distributing work
- cluster state
Definitely a series I’ll keep an eye on as I’m pretty sure there are many things to be learned from their experience. (shameless plug) If you happen to be in the Bay area in November, come check the NoSQL track at QCon where, even if not yet published yet, among others, Andy Gross, VP of engineering at Basho, will be speaking about how to build Dynamo style systems using Riak’s core.
Building Blocks of Dynamo-like Distributed Systems originally posted on the NoSQL blog: myNoSQL