Saturday, May 8, 2010

Fascinating world of NoSql

The word nosql has been around the tech corner for few months (may be years now..). I recently had a chance to explore some of them. I would say I am pretty impressed with the way things are progressing in the nosql world.
NoSql is a innovative idea to replace traditional RDBMS with disk bases storage mechanism. One big example will be Google's BigTable. Online giants like facebook uses nosql database as its backend storage.

There are several types of NoSql databases, some of them are meant to store documents, some of them for key value pair. Most of them follow JSon notation(Javascript Object Notation) to represent the data.

I explored MongoDB and redis. Yet to explore Cassandra. I really likes MongoDB for its easiness to use, configure and efficiency. Redis is a lightening fast written in pure C, but I was able to crash it in a Solaris 10 box after 10 million insertions with limited memory. I could not really explore much on MongoDB as it is not supported in Solaris Sparc platform.

Basically, the Json data gets converted to Binary data(BSon) in MongoDB and stored into disk. You can create tables as and when needed. The storage file will be created upon the first insert. Redis, on the other hand, holds the complete data in a single file. It supports upto 16 databases on single installation, but it can increased by a configuration parameter.
The disk updation is done on a single thread so the integrity is maintained.

Most of the NoSql databases comes with map reduce method for storage and retrieval. You can run more than one number of nodes and server in a clustered environment and take full advantage of cloud computing using NoSql. Cassandra is a very popular one in Java world, as it is completely written in Java. But I doubt about the performance. However, I will be playing around it as and when I get a chance.

NoSql has a growing chance in the agile programming world. I hope more and more innovations and stable products in this area. It is just a matter of corporates getting into this world to get rid of heavy license cost of traditional RDBMS.

Redis Home Page:
http://code.google.com/p/redis/

MongoDB:
http://www.mongodb.org/