Reputation: 2564
Subject: Migrating very complex, legacy client-server application to SAS enabled web-version using NOSQL
We are planning to migrate our couple of systems from RDBMS to NOSQL product. We are in the phase of deciding whether to go for Complete NOSQL or hybrid implementation?
Being large system current system's table count is in thousands with complex relationships between tables, lot of triggers, stored procedures and constraints. We know that it's not going to be easy to migrate as lot of DB specific or SQL specific functions, group by, aggregate functions, complex joins, sub/inner queries, limits, sorting (order by) and what not are also being used..! So it's die hard situation.
Data can grow in few hundreds of TB and will keep growing, we need following things:
I have come across a RDBMS which competes with NOSQL which is VOLTDB, did you anyone tried that?
I think Neo4j, Cassandra or HBase can do the job, I have read that it will increase lines of code in multitude at application level to replace an SQL but we are okay with it but in achieving SQL/RDBMS like result it should not degrade performance as it's our KSF (key success factor) while NO Single Point of failure is Hygine factor. :)
Easily able to add nodes to manage scalability will be helpful too.
Think about migrating systems like ERP, CRM or EMR with few hundred thousands of users on WEB.
Your inputs will be valuable, thanks in advance.
Upvotes: 0
Views: 2375
Reputation: 22549
Go with NoSQL that is written in Erlang (e.g. Riak, CouchDB), as Erlang OTP does reliability for many years
There is no such thing as zero downtime with SQL or without.
No single point of failure is easily achieved with a quorum read/writes over distributed nodes ( that live in different power grids )
No NoSQL feature set will replace ACID transactions. VoltDB is not a NoSQL, it is a SQL in memory DB, so get your TBs of RAM ready.
Most of modern NoSQL solutions will allow you to do most of the warehousing tasks that you can do with RDBMS. But you'll pay with no ACID and painful aggregations. Again, look at Riak and CouchDB, as they are also fault tolerant by nature, so at least you would not have to worry about that.
Fast er than what? If you do complex aggregations, SQL DB will 99.99% be faster than any NoSQL. Writes can be quite fast with NoSQL given the right cache amount, and depending on your quorum ( how many nodes should return a success on a single write ). For example Riak does a Google's LevelDB pluggable backend which is crazy fast for writes.
Having said all that. Do not migrate to NoSQL unless you really have to. And if you really have to, start with least important ( preferably small ) components first, as it is a mind shift, and will require re development.
Upvotes: 6