The term was first used by 451 Group analyst Matthew Aslett in a 2011 research paper discussing the rise of a new generation of database management systems.7 One of the first NewSQL systems was the H-Store parallel database system.89
Typical applications are characterized by heavy OLTP transaction volumes. OLTP transactions;
However, some support hybrid transactional/analytical processing (HTAP) applications. Such systems improve performance and scalability by omitting heavyweight recovery or concurrency control.11
The two common distinguishing features of NewSQL database solutions are that they support online scalability of NoSQL databases and the relational data model (including ACID consistency) using SQL as their primary interface.12
NewSQL systems can be loosely grouped into three categories:1314
NewSQL systems adopt various internal architectures. Some systems employ a cluster of shared-nothing nodes, in which each node manages a subset of the data. They include components such as distributed concurrency control, flow control, and distributed query processing.
The second category are optimized storage engines for SQL. These systems provide the same programming interface as SQL, but scale better than built-in engines.
These systems automatically split databases across multiple nodes using Raft or Paxos consensus algorithm.
Aslett, Matthew (2011). "How Will The Database Incumbents Respond To NoSQL And NewSQL?" (PDF). 451 Group (published April 4, 2011). Retrieved February 22, 2020. http://cs.brown.edu/courses/cs227/archives/2012/papers/newsql/aslett-newsql.pdf ↩
Pavlo, Andrew; Aslett, Matthew (2016). "What's Really New with NewSQL?" (PDF). SIGMOD Record. Retrieved February 22, 2020. https://db.cs.cmu.edu/papers/2016/pavlo-newsql-sigmodrec2016.pdf ↩
Stonebraker, Michael (June 16, 2011). "NewSQL: An Alternative to NoSQL and Old SQL for New OLTP Apps". Communications of the ACM Blog. Retrieved February 22, 2020. https://cacm.acm.org/blogs/blog-cacm/109710-new-sql-an-alternative-to-nosql-and-old-sql-for-new-oltp-apps/fulltext ↩
Hoff, Todd (September 24, 2012). "Google Spanner's Most Surprising Revelation: NoSQL is Out and NewSQL is In". Retrieved February 22, 2020. http://highscalability.com/blog/2012/9/24/google-spanners-most-surprising-revelation-nosql-is-out-and.html ↩
Aslett, Matthew (April 6, 2011). "What we talk about when we talk about NewSQL". 451 Group. Retrieved February 22, 2020. https://blogs.451research.com/information_management/2011/04/06/what-we-talk-about-when-we-talk-about-newsql/ ↩
Lloyd, Alex (2012). "Building Spanner" (PDF). Berlin Buzzwords (published June 5, 2012). Retrieved February 22, 2020. https://2012.berlinbuzzwords.de/sites/2012.berlinbuzzwords.de/files/slides/alex_lloyd_keynote_bbuzz_2012.pdf ↩
Aslett, Matthew (March 4, 2008). "Is H-Store the future of database management systems?". Retrieved February 22, 2020. https://blogs.the451group.com/information_management/2008/03/04/is-h-store-the-future-of-database-management-systems/ ↩
Monash, Curt (February 20, 2008). "H-Store: Complete destruction of the old DBMS order?". ZDNet. Retrieved February 22, 2020. https://www.zdnet.com/article/h-store-complete-destruction-of-the-old-dbms-order/ ↩
Stonebraker, Michael; et al. (2007). "The End of an Architectural Era (It's Time for a Complete Rewrite)" (PDF). VLDB '07: Proceedings of the 33rd international conference on Very large data bases. Vienna, Austria. Retrieved February 22, 2020. /wiki/Michael_Stonebraker ↩
Stonebraker, Michael; Cattell, R. (2011). "10 rules for scalable performance in 'simple operation' datastores". Communications of the ACM. 54 (6): 72. doi:10.1145/1953122.1953144. /wiki/Doi_(identifier) ↩
Cattell, R. (2011). "Scalable SQL and NoSQL data stores" (PDF). ACM SIGMOD Record. 39 (4): 12–27. CiteSeerX 10.1.1.692.2621. doi:10.1145/1978915.1978919. S2CID 3357124. Retrieved February 22, 2020. http://cattell.net/datastores/Datastores.pdf ↩
Venkatesh, Prasanna (January 30, 2012). "NewSQL - The New Way to Handle Big Data". Retrieved February 22, 2020. https://opensourceforu.com/2012/01/newsql-handle-big-data/ ↩