- Run transactions to completion –single threaded –in timestamp order [will use multiple cores, with each having a single thread]
- Only data changed within a single invocation of a stored procedure is in a transaction, transactions can't span multiple rounds of communication with a client.
- You are also discouraged from doing SUM operations because it would take a long time and block other transactions.
I don't see how this is different than a NoSQL database. You cut a number of features (some critical to certain applications) from a relational database and get a bastardized version of a major database. It's a NoSQL database that uses a subset of the SQL standard and an enforced schema!
I find these discussions extremely annoying. I'm currently using MongoDB for my application because:
1. I don't need join support
2. I prefer my current schema to be denormalized.
3. Documents store better than rows for my data.
I could have used a relational database just fine. My data will fit with a little nudging.
The point is, you use the technology that best fits your problem. My current problem fits well into MongoDB but it could be solved less nicely with a different database.
All VoltDB is is another option if you have corners you can cut from the normal relational database model.