The NoSQL movement is getting a lot of buzz lately. Recently I read an interesting article, an interview with Gigaspace CTO Nati Shalom. Several key points are made here. The one-size-fits-all approach has never worked in our industry – one operating system, one DBMS, one middleware, etc. So the exuberant folks behind the NoSQL movement must be careful when they declare that the traditional SQL RDMS business is going to die soon.
For example, we do understand the emerging needs of extreme scale from Twitter – the number of users grows continuously; each user maintains a list of followers that tends to grow continuously as well; and all communication is done on a many to many approach. “The combination of all that makes the traffic pattern in a twitter environment fairly viral and unpredictable and therefore stretches almost any boundaries of scaling we can think of.” Hence innovative approaches are being tried such as a combination of in-memory and file-based access. It’s all based on cost/GB and read/write performance.
It’s worth looking at an analysis by Stanford researchers called “The Case for RamCloud” that gives a cost comparison between disk and memory-based approaches in terms of cost/performance.
We also see Amazon’s SimpleDB is introducing “forced consistency” to the world of “eventually consistent” model. As features of a full-function RDBMS get added to the NoSQL solutions, they start looking more like the current RDBMS, even though Nat Shalom does not think SimpleDB is a database
We will see the co-existence of these two worlds – new-gen applications like Facebook, Twitter exploiting the KV (key-value) pair and schema-less simple approach with map/reduce algorithms for very low latency; and the existing world of RDBMS providing high transactional consistency, flexibility, reliability, security, and query-ability for enterprise applications, as proven over last 3 decades.
The key question is who will provide the “database as a service” in the cloud? What we need is an “elastic database as a service” similar to what Amazon does in processing with EC2. One such start-up called ScaleDB (I am an advisor) is attempting to take the RDBMS (open source) features into the cloud with high scalability.