I plan to write about several NewSQL vendors soon, but first here’s an overview post. Like “NoSQL”, the term “NewSQL” has an identifiable, recent coiner — Matt Aslett in 2011 — yet a somewhat fluid meaning. Wikipedia suggests that NewSQL comprises three things:
- OLTP- (OnLine Transaction Processing)/short-request-oriented SQL DBMS that are newer than MySQL.
- Innovative MySQL engines.
- Transparent sharding systems that can be used with, for example, MySQL.
I think that’s a pretty good working definition, and will likely remain one unless or until:
- SQL-oriented and NoSQL-oriented systems blur indistinguishably.
- MySQL (or PostgreSQL) laps the field with innovative features.
To date, NewSQL adoption has been limited.
- NewSQL vendors I’ve written about in the past include Akiban, Tokutek, CodeFutures (dbShards), Clustrix, Schooner (Membrain), VoltDB, ScaleBase, and ScaleDB, with GenieDB and NuoDB coming soon.
- But I’m dubious whether, even taken together, all those vendors have as many customers or production references as any of 10gen, Couchbase, DataStax, or Cloudant.*
That said, the problem may lie more on the supply side than in demand. Developing a competitive SQL DBMS turns out to be harder than developing something in the NoSQL state of the art.
*Revenue might be a different matter.
The main reasons for NewSQL adoption tend to fall in the areas of performance, scaling, manageability and cost. But while they all support SQL, some NewSQL DBMS have differentiated programming models even so.
- Akiban wants you to consider mixing access — to the same data in the same data structures — among SQL, JSON and, say, Hibernate.
- Tokutek turns a performance argument into a functionality one. In particular, Tokutek claims that TokuDB does a much better job than alternatives of making it practical for you to update indexes at OLTP speeds. Hence, it claims to do a much better job than alternatives of making it practical for you to write and execute queries that only make sense when indexes (or other analytic performance boosts) are in place.
- As a trade-off for blazing in-memory performance, VoltDB is hampered by an innovative and restrictive programming model.
Also, the MySQL add-ons and lookalikes vary in the (in)completeness of their MySQL emulation or support.
The most common performance/scaling NewSQL claims are simply “We scale, giving you the power of multiple servers, with sufficiently little downside in the way of tradeoffs.” That story is central to Clustrix, VoltDB, ScaleDB, NuoDB, and to anybody active in transparent sharding. Other performance/scaling claims include but are not limited to:
- Optimized for RAM (VoltDB).
- Optimized for flash (Schooner/Membrain).
- Writes indexes quickly (TokuDB).
- Fast joins (Akiban).
Management claims include (from multiple NewSQL vendors in each case):
- Little added management pain, but you get scale-out!
- Little added management pain, but you get active-active/multi-master wide-area replication!
- Online schema change and other uninterrupted operation features.
- Not as cumbersome as Oracle.
And that’s about as much as I’m ready to generalize about the NewSQL sector. Posts about particular product and companies are on the way.