Thursday, April 24, 2008

RDBMS vs Object/document DB

I am now sick and tired of people telling/writing blogs about how Object DB will rule the world and the RDBMS is crap. Well in my view both they are both right and wrong. It is true that Document DBs will rule the roost in years to come. This is primarily due to the fact that web applications are mostly normal CRUD (Create, Read, Update, Delete) applications where object/document/flat DBs work well. Due to sharp decline in storage media prices normalizing a datastore is not that useful/cost-saving anymore. Even if we have millions of records, keeping them in a denormalized form for easy fetching makes sense.
That said, this does not mean that RDBMS are things of past. They are in fact quiet important for a lot of things which either cannot be done on Object DBs or will be much slower than RDMSs. For instance, suppose you have to make a small data analytics system for a log file which has 2 million entires everyday which DB will you use ? (Hint: The one that allows you to normalize, join , index, sort and group data in any manner you like!)
I think all these RDBMS bashing crowd is
1. Have never used databases at all and read blogs and created a very strong opnion against RDBMSs
2. Have used databases but don't know jack shit about database design and query optimization
3. Are lispers and think all data is code or the other way round!

I did do this small experiment involving a log file having about 2 million entries. We pushed it into a lisp based object DB called acache and generated some statistics. We also pushed the same log file in a MySQL DB. Although data entry time was almost the same (for MySQl about 24-25mins and for acache about 30 mins) there was a massive difference when we tried the analytics part. Acache took around 2-3 minutes to generate only one statistics from the data. MySQL one generated 10 in 52 seconds!!!
Beat that!

No comments: