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


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

Join 9 other followers

%d bloggers like this: