[Ilugc] Best nosql database

  • From: l.mohanphy@xxxxxxxxx (Mohan L)
  • Date: Sat Sep 11 12:07:45 2010

On Sat, Sep 11, 2010 at 9:40 AM, rajkumar vbalakrishnasamy <
rajkumar.lynx@xxxxxxxxx> wrote:

Hi all,
   Which database is suitable for High performance and scalable.How nosql
is gaining importance nowadays and which is the most powerful nosql
database.And also which is the best alternative to the mysql database.

 Hi Rajkumar,
It is very hard to answer your question. I will try to give overview of all
about NoSQL.

MySQL is a relational database management system, written to run on single
machine and it provides ACID property (Atomicity, Consistency, Isolation and
Durability), whereas NoSQL (Stands for Not Only SQL) is an emerging
distributed and scalible non-relational data storage mechanism for storing
large scale of data.
NoSQL is not alternative to mysql database. *NoSQL is about choice*. You
have to evaluate which NoSQL database most suited for your problem. It is
very hard to tell which NoSQL database to solve your problem.

LIST OF NOSQL DATABASES: http://nosql-database.org/

If you see the above page there is lot of NoSQL databases are there.
Choosing among the one for your problem is little bit hard at begining, it
dependends on business you are running. Last month I gave a presentation
about "EVALUATING NOSQL DATABASES" for our engineers. I would like to share
some of the thing to you:

There are two things you have to consider at evaluating NoSQL databases for
your problem.
I). The Data Model.
II). The CAP Theorem.

I). The Data Model :
NOSQL databases can be categorized according to their "Data Model"(is all
about the system internally stores the data) into the following four
categories:

   1. Key-Value-stores
   2. BigTable-implementations
   3. Document-stores
   4. Graph Databases

Example :
1). Key-Value
- Voldemort
- Dynomite

2). Column-Oriented
Hadoop HBase
Cassandra
Hypertable

3). Document-Oriented
CouchDB
MongoDB

You have to find out which data model is sutable for your bussiness data(eg.
last month sorceforge.net started to using MongoDB it comes under the
document-stores data model categorie:
http://www.infoq.com/presentations/MongoDB-at-SourceForge).

II). The CAP Theorem :

Eric Brewer is an expert in distributed system and professor at UC Berkeley
formulated a theorem called CAP theorem. CAP stands for Consistency,
Availability, and Partition tolerance. These are three properties that are
commonly desired in a distributed system. The theorem simply states that any
shared-data system can only achieve two of these three.

So the CAP theorem allows the designer of distributed system can only pick
two of the those three properties.

At the time of evaluating NoSQL for your bussiness, you have to make sure
which of three property are important for your business model.

1). Consistent, Available (CA) Systems have trouble with partitions:
Example:
- Traditional RDBMSs like Postgres, MySQL, etc (relational)
- This system sacrifice Partition-Tolerant

2). Consistent, Partition-Tolerant (CP) Systems have trouble with
availability while keeping data consistent across partitioned nodes.
Example:
- Hypertable, HBase
- This system sacrifice Available
3).  Available, Partition-Tolerant (AP) Systems:
    Example :
- Cassandra, CouchDB

You can find the Mathematical proof of CAP theorem and explanation here:
http://nosqlsummer.org/paper/cap-theorem
http://www.julianbrowne.com/article/viewer/brewers-cap-theorem

The CONCLUSION is :
Last 30 to 40 years,  we have only one option traditional
RDBMSs(SQL,Postgres, MySQL...) for all of our problem. Now the trend has
been changing(The era of using RDBMSes for *all problems* is over), *instead
we should use the database most suited for the problem at hand*. NoSQL is
about choice. We could even use multiple databases in conjunction, and let
each database handle the things it do best.

I think there is a stall in SFD-2010 about NoSQL. I request you come there
you may get more clear ideas about NoSQL.

I hope it will help you and others also.

Links :
1). http://www.royans.net/arch/brewers-cap-theorem-on-distributed-systems/
2). http://blog.nahurst.com/visual-guide-to-nosql-systems
3). http://nosql-database.org/

Thanks & Rg
Mohan L
http://lmohanphy.livejournal.com/

Other related posts: