NewSQL es una clase de sistemas de gestión de bases de datos relacionales que buscan proporcionar la escalabilidad de los sistemas NoSQL para cargas de trabajo de procesamiento de transacciones en línea (OLTP) manteniendo al mismo tiempo las garantías ACID de un sistema de base de datos tradicional. [1] [2] [3] [4]
Muchos sistemas empresariales que manejan datos de alto perfil (por ejemplo, sistemas financieros y de procesamiento de pedidos) son demasiado grandes para las bases de datos relacionales convencionales, pero tienen requisitos transaccionales y de consistencia que no son prácticos para los sistemas NoSQL. [5] [6] Las únicas opciones disponibles anteriormente para estas organizaciones eran comprar computadoras más potentes o desarrollar middleware personalizado que distribuye las solicitudes a través de DBMS convencionales . Ambos enfoques implican altos costos de infraestructura y/o costos de desarrollo. Los sistemas NewSQL intentan reconciliar los conflictos.
El término fue utilizado por primera vez por el analista de 451 Group, Matthew Aslett, en un artículo de investigación de 2011 que analizaba el surgimiento de una nueva generación de sistemas de gestión de bases de datos. [5] Uno de los primeros sistemas NewSQL fue el sistema de base de datos paralela H-Store . [7] [8]
Las aplicaciones típicas se caracterizan por grandes volúmenes de transacciones OLTP . Transacciones OLTP;
Sin embargo, algunos admiten aplicaciones híbridas de procesamiento analítico/transaccional (HTAP). Dichos sistemas mejoran el rendimiento y la escalabilidad al omitir el control de concurrencia o recuperación de gran peso . [10]
Las dos características distintivas comunes de las soluciones de base de datos NewSQL son que admiten la escalabilidad en línea de las bases de datos NoSQL y el modelo de datos relacionales (incluida la consistencia ACID) utilizando SQL como su interfaz principal. [11]
Los sistemas NewSQL se pueden agrupar libremente en tres categorías: [2] [12]
Los sistemas NewSQL adoptan diversas arquitecturas internas. Algunos sistemas emplean un grupo de nodos que no comparten nada , en el que cada nodo administra un subconjunto de los datos. Incluyen componentes como control de concurrencia distribuida , control de flujo y procesamiento de consultas distribuidas.
La segunda categoría son los motores de almacenamiento optimizados para SQL . Estos sistemas proporcionan la misma interfaz de programación que SQL, pero se escalan mejor que los motores integrados.
Estos sistemas dividen automáticamente las bases de datos en múltiples nodos utilizando el algoritmo de consenso Raft o Paxos .