The needs for that project I am working appear to suggest to presenting both a relational database (e.g. postgre, MySQL) in conjunction with a vital-value store (e.g. HBase, Cassandra). Our data almost breaks nicely into among the two data models except for a tiny bit of interdependence.
This isn't an effort to cram a relational database right into a key-value store they're separate from one another.
What are the serious good reasons to not do that?
It will work fine.
You will find a few things you have to be conscious of / be careful for:
- Your program has become accountable for the information consistency between your stores, not the relational model.
- Based on your technology you might have transactions that span the information stores. Here you may have to program some manual cleanup operate in the situation of the failure.
Sometimes in SQL DBMS territory, so take that prejudice into consideration, but...
Just like Shiraz Bhaiji, I be worried about the "aside from a tiny bit of interdependence". You will find numerous things to consider, the solutions to which supports you determine how to proceed.
- What goes on if something wrong happens using the interdependence? (Clients generate losses - then you should utilize a DBMS throughout you generate losses - most likely exactly the same someone will get reported as getting 3045 points once they genuinely have 3046 - maybe it does not matter.)
- How hard could it be to repair in the 'mess' when something goes completely wrong?
- What amount of the jobs are around the key-value store and just how expensive is around the DBMS?
- Can the interdependence be removed by moving some stuff from key-value store to DBMS?
- How slow may be the DBMS when used like a key-value store? (Are you certain there is no method to take it close enough to parity?)
- What goes on in disaster recovery situations? Synchronized backup copies?
For those who have sufficient solutions to those and related questions, then its OK to choose the mixed setup - you've thought it through, considered the potential risks, created a judgement, which is reasonable to proceed. Without having solutions, have them.
Whenever you say key-value store are you currently meaning as with a session or perhaps a cache kind of implementation? You will find always good reasons to do may be...reading through from and conntacting a database is usually your most resource intensive operation. More particulars?