In-Memory Databases - A good alternative to traditional RDBMS?

Regular readers would have noticed, RDBMS has had its fair share of bashing in this blog here, here & here. There have been fair share of readers' interest, criticism & push-back about the concepts discussed already. I would agree that all I have been providing is criticism of RDBMS and not a fair solution to overcome various problems. This blog is about one such solution - In-memory Database.

In an earlier blog post we have dealt with scenarios on how RAM should take the place of the disk as the primary data access layer and In-memory Data Grid as . If we apply the same principle to our regular/traditional RDBMS, which do frequent disk access we get In-Memory Databases!

So why 'In-memory Databases'?
  1. Considerable Performance gains as Disk IO is eliminated
  2. Easier/Built-in High Availability. You can see from this post that traditional DBs based on disks are breakable!
  3. Scalability - We can scale by just adding more nodes. With Traditional RDBMS, we have a cap beyond which adding more nodes will not improve performance, as the writes while getting replicated across systems will eat-up all the resources themselves, and you have no room for queries!
Why NOT 'In-memory Databases' right away?
  1. It is still hard to have the entire database on your memory if the database is huge or in-terms of TBs
  2. Cost of memory is higher than cost of that disks; adding disk space is cheaper.
  3. Additional costs for application development, if existing code doesn't take advantage of In-Memory paradigm.
  4. Learning Curve needed for existing developers to get used to the new paradigm
  5. Relatively new technology hence the associated Perceived risks and/or Reluctance to change.
There are some commercial products in this space which you might want to play around with. A good starting point would be to go over the testing results as brought-out by this blog post.

Happy Programming!

Bookmark/Share this post with:
Bookmark and Share

Read more!