Search code examples
performancehazelcastoracle-coherenceterracottanosql

When In-Memory-Data-Grid get benefit over NoSQL / NoSQL + Distributed Cache


Task: Let's imagine that hight concurrent environment, when both statements are true:

  1. You want to immediately response to user on user event. For that you need to fetch some data from data storage + process them;
  2. Your system is read/write intensive, and it's very important to have data consistency.

Let it be popular hotel booking system.

IMDG:

As I understand IMDG should be used when we need to process lots of data and immediately (on user event, service request etc.). So it looks like an ideal option for popular hotel booking system.

IMDG vs NoSQL (+ Distributed Cache):

IMDG has one disadvantage - costs. RAM is more expensive and IMDGs are also far from open source. Moreover, there are articles which claims you don't need IMDG, and NoSQL is good enough.

Question:

So I would very appreciate your experience about how to determine when NoSQL starts to stuck and you need to take In Memory Data Grid?


Solution

  • Full disclosure: I work for Alachisoft.

    I don’t agree with your assertion that most IMDG’s are not Open Source. In fact, it is just the opposite. There are many Open Source IMDGs. For example, my company develops an In-Memory Data Grid for .NET called NCache and an In-Memory Data Grid for Java called TayzGrid. Both are Open Source and have been in the market for 10 years!

    Also, I don’t think this should be an IMDG vs NoSQL(+distributed cache) debate. It should be Relational vs. NoSQL and IMDG is present in both cases. By the way, Distributed Cache is frequently used by some IMDG’s since this name is more popular in the .NET space.

    So, I would suggest that you use IMDG regardless of whether you use NoSQL or Relational. It all depends what type of performance you require. If relational database is enough for you then stick to it.

    Also check out these open source IMDGs, if you need support or are planning to use it for an enterprise then you can always get the paid licenses to move on for a more feature rich version and support.