By: Philip Howard, Research Director - Data Management, Bloor Research
Published: 19th October 2013
Copyright Bloor Research © 2013
NuoDB has just released the second version of its eponymous NewSQL database with extended geographical support and the introduction of a server-side programming model.
NewSQL databases fall into two categories. What they all have in common is that they are SQL-based, ACID compliant, transaction-oriented databases that have a much smaller footprint than traditional relational databases used for transaction processing, run on lower cost (commodity) hardware and they tend to outperform their erstwhile relational peers. The reason for this is that they don't have (and don't need to have) all the bits and pieces that have been acquired over twenty or thirty years of development and which, while seen as essential at the time they were incorporated into their respective products, are now out-of-date and pretty much useless, but which are still required in order to support backwards compatibility with older version of those products.
What differentiates the two classes of NewSQL products is whether they actually have relational engines underneath the covers. In the case of NuoDB it does not. Under the covers - where you don't see it because you access it through SQL - NuoDB actually uses either a flat file or a key value store (such as HDFS) with append-only storage and versioning (with multi-version concurrency control). However, that's only a bit of the story when it comes to NuoDB.
The really important part of the NuoDB story is that it is a distributed database in a way that is unlike any other database I have looked at. The key to this is that storage is separated from processing. Nothing new in that. But in NuoDB, as opposed to a shared disk system or a shared nothing system or even a system with replication, you have a complete copy of the database in every location (in the storage layer) and processing done entirely in-memory in the transactional layer, where transaction servers are distributed in much the same way as storage servers. This distribution is peer-to-peer, so there are no bottlenecks associated with master nodes, and you can have as many transaction servers and as many storage servers as you like and there does not have to be any particular relationship between the two.
Furthermore, NuoDB supports continuous availability. This means that you can add or remove both transaction and storage servers at will. This is very important in a distributed environment: the whole idea is that in a web-facing environment, say, you can have servers supporting the Far East active when the Far East is busy and you can have servers supporting Europe active when Europe is awake, but you don't need all of them to be running all of the time. You can add transaction servers whenever you want to but with storage servers they have to update themselves with the current status of the database - which they do automatically - before they are ready to support processing.
I like NuoDB: it seems to have cracked a problem - geographical distribution - that has not been really successfully addressed hitherto. However, that doesn't mean the product is perfect. For example, in this sort of environment I'd like to see the use of (reverse) deltas rather than writing a new copy of the data every time. On the other hand, the product, despite a lengthy beta cycle, is still pretty new (first release was in January this year) so you can't expect everything.
I expect NuoDB to continue to gain traction in geographically dispersed web-facing transaction-oriented environments - because that's where it has particular differentiators. What I will be interested to see is how successful the company is at spreading its message and product into other use cases. There is a potential danger that the product gets labelled as a one-trick pony and a niche product, whereas it has the potential to be used in a much broader range of transaction processing environments.
Posted: 22nd October 2013 | By Kai Tischler :
Hello Philip !
Sounds like NuoDB could eventually be a database with all the comfort of the legacy (SQL RDBMS?) ones; but truly leveraging the computing and storage power of the 21st century hardware !
On my yearlong journey through the land of DBMSes I have encountered several approaches to the problem of providing (ACID compliant) transactions on (distributed) persistent data:
- "Traditional" SQL RDBMSes as the like: MySQL, MS SQL Server, etc.
- XML DBs queried via XQuery instead of SQL
- OODBs (Object-Oriented DBs) queried for instance via JPA/JDO: ObjectDB, etc.
- So-called NoSQL DBs: MongoDB, etc.
I have learned that the motivation for OODBs is the following: To eventually rid us of the Impedance Mismatch between relational DBs and OO APPs; which enforces the requirement to have yet another layer; the so-called ORM (Object-Relational Mapping) Layer ... Think the 900-pound gorilla "Hibernate", etc.
So please let me ask You the following "Gretchen Question" in the Fall/Autumn 2013: "Mirror, Mirror, on the Wall: Is NuoDB now the best of them All ???"
TIA for enlightening us even more !
Cheers and TschÃ¼ss
Kai (Tischler) from Northrhine-Westfalia in Germany
Posted: 23rd October 2013 | By Philip Howard :
Probably too early to say with regard to NuoDB and, yes, I know I'm hedging my bets here.
One comment I would make about the impedance mismatch you mention. If you use Cache from InterSystems you get the same result but you can still use SQL (if you want to).
Posted: 23rd October 2013 | By Kai Tischler :
Hello Philip !
Thanks for Your reply !
- I am aware of the Caché DB for years now ! And I am also aware of Rob Tweed's Web Server gateway for Caché and GT.M: EWD, M/Gateway Developments Ltd, http://www.mgateway.com
- But I guess that legacy DBs like Caché and GT.M still carry many old-fashioned bits and pieces with them ...
@Another DB which immediately comes to my mind:
- Matisse: Post-Relational Database, http://www.matisse.com/
- Supports native Objects, XML and SQL
- Eliminates Object-Relational Mapping
- BUT: Years ago unfortunately the price tag for production use of Matisse was too high for me to take a closer look at it ...
The big question for me is: Are Matisse and Caché/GT.M still DBs de Web-Scale jour ? Or does NuoDB bring something to the table which clearls leaves DBs like those in the dust ?
TIA for Your reply !
Cheers and Tschüss
Posted: 24th October 2013 | By Philip Howard :
I can't really comment on Matisse - they are a company that seems to stick determinedly under the radar. Calling yourself "post-relational" is about 15 years out of date.
InterSystems, however, is definitely going strong.
The messages above were all contributed by IT-Director.com readers. Whilst we take care to remove any posts deemed inappropriate, we can take no responsibility for these comments. If you would like a comment removed please contact our editorial team.
All fields must be completed to submit a comment. Email addresses are passed through to the author so they can contact you directly if needed.
Published by: IT Analysis Communications Ltd.
T: +44 (0)190 888 0760 | F: +44 (0)190 888 0761