7D7W: Week 2 Summary – Riak

As discussed, I’m going through the 7 Databases in 7 Weeks book. This week was Riak (pronounced REE-ack).

Riak is a key-value dictionary type, NoSQL database, with a RESTful HTTP front-end (although some language-specific drivers are available too: Erland, Java, PHP, Python, Ruby, C#, etc). I’ll first note that on the download page:


There is an installer for everything under the sun, EXCEPT for Windows. Really? I guess the operating system religious wars still are going on, after all of these years! If you could only see me rolling my eyes right now. haha

OK, so I fixed my Mac issues and I worked on this, over there – and then also tried on Ubuntu. The book starts off by saying to install Riak and then run “make devrel”, which apparently creates a few sample databases. I never made it past this step.


I spent a fair amount of time (a few hours) trying to troubleshoot, but this just seems to be one of those proprietary and undocumented things. The closest I got was this post on stackoverflow, which recommended (of course) pulling down the source of some other product, and using that instead.

Despite my best efforts on Mac OS X Mavericks and Ubuntu, I could not get an instance of this database up and running. The fact that this was a show-stopper out of the gate, coupled with no Windows implementation (which is likely purposeful) – I’m not exactly blown away. I often say “there is a difference between whipping up a program, and releasing a product”. When you release a product, you need to be adequate documentation and a working app.

If it were running (and following the book), it’s a pretty cool concept. This is basically the idea of having a RESTful service hosted over HTTP, but instead of mapping that to an underlying datastore – like how WebAPI works for example, the RESTful interface IS the actual database. For example, you can retrieve data with calls like: http://localhost:8000/riak/Products/3 and perform inserts, updates, and deletes with a request using specific HTTP verbs like POST, PUT, and DELETE – respectively.

Riak easily supports many-node clusters and natively supports MapReduce, which is a programming model for processing large data sets in a parallel computing environment. So, it’s very scalable, fault-tolerant, and has a universal interface (REST) that can be used by pretty much any technology. Well, assuming you can stand up an instance of this database server!

Next steps…
Onward and upward – next week is HBase…

Posted in 7D7W, Professional Development, Uncategorized

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.


Enter your email address to follow this blog and receive notifications of new posts by email.

Join 9 other followers

%d bloggers like this: