Yes the title is correct. Currently in the technical arena you have two similar technologies referring to themselves by the name NewSQL. I was reading a post about how Facebook has backed itself into a corner with its complex deployment of MySQL and how NewSQL or noSQL could be their solution. This was the first time I heard about NewSQL so I decided to do some research and what I found was very interesting but confusing at first.
First let me lay some ground work here.
I’m not a fan of the idea that everything needs to be rewritten. Some things just work and that is the way it is. It may not be perfect but it works. Don’t get me wrong, several things in the technology field are broke and need to be rebuilt but I won’t start that rant.
One of the most heated debates you will have on this topic is the idea that Relational Databases Management Systems (RDBMSs) have outlived their time on this planet and need to go. The basic argument is that most RDBMSs don’t scale to the mammoth size required to run Google size volumes of transactions. The fact is they are not optimized to handle large transaction requests. These databases provide a very structured method of dealing with data and have become very reliable but at the same time increasingly slow. The way they accomplish the reliability is with a very intensive overhead process supporting what is called Atomicity, Consistency, Isolation and Durability (ACID) compliance .
What are the options?
The noSQL movement (started in 1998 by Carlo Strozzi) has focused on removing this ACID layer and focusing on performance over reliability of data at the database layer. This type of database concentrates on removing the schema structure in favor of document based and schema-less structure. Most developers will design the validation into the application layer to optimize performance and control while utilizing the noSQL DB. Some noSQL vendors have marketing material indicating they support ACID but this is very unlikely done in the same manner as a typical RDBMS as it would surely provide the same performance impact.
What I found during my research.
NewSQL (definition 1) — The first articles I found on NewSQL referred to RDBMS vendors that have focused on optimizing the ACID compliance layer and other aspects of the RDBMS. A few of these vendors have started with the MySQL source code and focused on optimizing the software to increase the performance. The definition used here for NewSQL is a classification of SQL databases that provide scalable/high performance services.
NewSQL (definition 2) – The next article I found on NewSQL focused on changing the SQL language that you manipulate the database data with. It requires a new data access layer to be added to the system. It claims to be more elegant, easier to learn and more consistent then the existing SQL language used across multiple database systems.
So who should get to claim ownership of the NewSQL name?
In my opinion (taking into account these are the only two definitions I have found and have not conducted a crazy though research on the term) definition 2 not only more accurately relates to the term used but can claim precedence on usage. The article I found for definition2 was found on Sourceforge and has documented date of usage as 2003-08-10 on the journal page. The first usage of definition1 was used, as far as I can tell, for the first time April 6 2011 on blogs.the451group.com.
With that being said!
Over my career I have learned to listen and engage people in conversation when talking about technology or any other matter, in a way that opens the possibility we could have different definitions on a certain topic. The head strong technologist who does not learn this finds a life of frustration when confronted with the fact that they have been talking about something different than their audience.