Tuesday, June 19, 2012

First Impression on Riak vs mongoDB vs Cassandra/HBase

As part of the building out the next generation technology platform, we would like to explore NoSQL solutions to compliment our existing platform, which is built on RDBMS, primarily Oracle.

I have used mongoDB, Cassandra and HBase in the past life and I am eager to learn what Riak could offer as an alternative NoSQL solution.

In the next few weeks, I will be publishing our findings, lessons learned along the way. In this post, I will give my first un-biased impression on Riak vs other NoSQL technologies.

First Impression on Riak

Riak is an open source, distributed database solution, written in Erlang and supported by Basho. From first glimpse, it offers the following nice features,
  • Objects are stored by buckets and keys
  • Really nice HTTP API (for developing/debugging purpose)
  • Horizontal and linear scalability
  • Masterless replication with tunable read/write consistency level
  • Consist Key Hashing and even load distribution
  • Automatically rebalancing when new nodes are introduced or removed
  • Support Linkage between objects, a nature way to build hierarchy object model
  • Complex query support including secondary index, free text search, and MapReduce support
  • Excellent client library support
  • Thousands of name branded customers
From the first glance, Riak is very much like Cassandra with automatic cluster management, nicer API, and much less complexity in terms of cluster management and learning curve (no more Thrift API).

On the other other hand, Riak is a strict name/value pair model and does not offer column family or super column family support, as supported in Cassandra/HBase. I guess we can simulate column family support by turning bucket into row key, and keys into column family columns.

Overall, Riak looks like a good candidate for our prototyping and I will share our experience in the next  few blogs.

No comments:

Post a Comment