There are scads of NoSQL databases such as MongoDB and Apache Cassandra. According to Wikipedia there are 44 of them—though that isn’t a very accurate listing because InterSystems Caché, for example, does support SQL. Non-relational would be a more accurate distinction but I think it’s a bit silly to include object-oriented, multi-valued and key-valued databases, amongst others, in a single bucket.
Anyway, what they all aim to do is to provide better performance than comparable relational databases. In most instances however (InterSystems is an exception), the key word is ‘comparable’: MongoDB, for example, is document oriented and, therefore, not really comparable.
VoltDB, whose availability has just been formally announced, is not a NoSQL database. However, it is aimed at out-performing traditional relational databases. Moreover, there is no ‘comparable’ qualification: VoltDB aims to, and does, out-perform relational databases in their heartland of OLTP. For example, VoltDB has performed benchmarks comparing VoltDB with the latest release of a well-known database.
Using what it describes as a “TPC-like” test VoltDB recorded 53,000 transactions per second on a single node system while the market database product could only manage 1,155 tps. With a 12 node system it has been able to demonstrate 0.9x scalability. One of its existing customers (there were more than 150 beta sites), which is an online gaming site, again with 12 nodes, has recorded 1.3m tps. By anyone’s standard that’s fast.
The key things that you get with VoltDB, apart from high performance, is that it is a relational database supporting SQL, and it supports full ACID capabilities for transactional consistency. You don’t get those things with NoSQL databases.
How does VoltDB do it? Simply put, it removes all of the baggage that has accreted in relational databases over the last 30 years. In particular, it does not have latching, locking or logging, and it doesn’t need buffer management because it uses modern in-memory processing techniques. According to VoltDB these four things alone take up 93% of processing time in traditional OLTP databases before you even start to do anything else.
VoltDB hasn’t been a well-kept secret and I and others have written about it in the past so I won’t belabour the technical issues. What I don’t think the market knew, however, is that VoltDB is available via an open source GPL license with community support, or there is a commercial license available for those that do want formal support, professional services and so on.
The question, of course, is how much impact VoltDB will make on the general purpose market. I suspect it will be considerable. Mike Stonebraker has a history of bringing successful products to market (for example, Ingres and, more recently, both Streambase and Vertica). On the other hand I am not sure that I see many companies porting mission critical applications to VoltDB from Oracle or DB2, at least in the short term.
However, I do seeing them moving away from MySQL (even with Memcached). It is also bad news for the (true) NoSQL databases: there aren’t that many environments that don’t need transactional consistency (Cassandra’s implementation at Facebook is one example that doesn’t) and, aside from anti-SQL bigots almost everybody wants SQL support. I think the future for VoltDB looks bright.