NewSQL
NewSQL es una clase de sistemas modernos de gestión de bases de datos relacionales que tratan de conseguir el mismo rendimiento escalable de sistemas NoSQL[1] para el procesamiento de transacciones en línea (lectura-escritura), manteniendo durante las cargas de trabajo las garantías ACID de un sistema de base de datos tradicional. [2][3][4]
Historia
editarEl término fue utilizado por primera vez por el analista Matthew Aslett de 451 Group en un trabajo de investigación en 2011, discutiendo la aparición de nuevos sistemas de base de datos como aspirantes a los vendors establecidos.[5] Muchos sistemas empresariales que manejan datos de alto perfil (por ejemplo, financieras) también debían ser capaces de escalar, pero no son capaces de utilizar las soluciones NoSQL porque no pueden renunciar a los altos requerimientos transaccionales y de consistencia. [5][6]
Las únicas opciones disponibles anteriormente para estas organizaciones eran adquirir una máquina de un solo nodo más potente o desarrollar middleware personalizado para distribuir las consultas por más nodos DBMS tradicionales. Ambos enfoques resultan excesivamente caros para la mayoría, y por ello, en este trabajo, Aslett analiza las posibilidades de NewSQL para competir con otros proveedores comerciales, y en particular con Oracle.
Sistemas
editarAunque los sistemas de NewSQL varían mucho en sus arquitecturas internas, sus dos señas de identidad comunes son el apoyo al modelo de datos relacionales y el uso de SQL como su interfaz principal. Uno de los sistemas NewSQL más conocidos es el H-Store. [7][8]
Los sistemas NewSQL pueden ser agrupados en tres categorías: [9] [10]
Nuevas arquitecturas
editarEl primer tipo de sistemas NewSQL son plataformas de bases de datos completamente nuevas. Están diseñadas para funcionar en un clúster distribuido shared-nothing, en el que cada nodo posee un subconjunto de los datos. Aunque en muchas de las nuevas bases de datos se han usado diferentes enfoques de diseño, hay dos categorías principales en evolución.
El primer tipo envía la ejecución de transacciones y consultas a los nodos que contienen los datos necesarios. Las consultas SQL se dividen en fragmentos y se envían a los nodos, que son los que procesan y contienen los datos. Estas bases de datos son capaces de escalar linealmente a medida que se agregan nodos adicionales.
- Bases de datos de uso general: Estas mantienen la funcionalidad completa de bases de datos tradicionales y el manejo de todo tipo de consultas. Estas bases de datos se escriben a menudo a partir de cero con una arquitectura distribuida en mente, e incluyen componentes como el control distribuido de concurrencia, el control de flujo, y el procesamiento de consultas distribuidas. Entre ellas están LeanXcale[11] Google Spanner, Clustrix, NuoDB,[12][13] y TransLattice.
- Base de datos en memoria: Las solicitudes dirigidas por estos sistemas NewSQL se caracterizan por tener un gran número de transacciones de corta duración (es decir, sin puestos de usuario), que tocan un pequeño subconjunto de datos utilizando las búsquedas de índice (es decir, no hay recorridos de tablas completos o grandes joins distribuidos) y repetitivas (es decir, ejecutan las mismas consultas con diferentes entradas).[14] Estos sistemas NewSQL logran un alto rendimiento y escalabilidad al evitar que gran parte de la arquitectura sea heredada del diseño original del Sistema R,[15] tales como los algoritmos de recuperación o de control de concurrencia. Dos sistemas de ejemplo de esta categoría son VoltDB y SQLFire de GoPivotal.
Motores MySQL
editarLa segunda categoría está optimizada como motor de almacenamiento de SQL. Estos sistemas proporcionan la misma interfaz de programación que MySQL, pero con mejor escala incorporada en los motores, como InnoDB. Varios ejemplos de estos nuevos motores son: TokuDB, MemSQL y Akiban.[16]
Protección transparente
editarEstos sistemas proporcionan una capa protectora intermedia para dividir automáticamente las bases de datos a través de múltiples nodos. Algunos ejemplos de este tipo de sistema son dbShards, Scalearc, Scalebase y MySQL Cluster.
Referencias
editar- ↑ Gracia, Luis Miguel (10 de abril de 2013). «¿Qué es NewSQL?». Un poco de java. Consultado el 4 de febrero de 2014.
- ↑ Aslett, Matthew (4 de abril de 2011). «How Will The Database Incumbents Respond To NoSQL And NewSQL?» (en inglés). 451 Group. Consultado el 6 de julio de 2011.
- ↑ Stonebraker, Michael (16 de junio de 2011). «NewSQL: An Alternative to NoSQL and Old SQL for New OLTP Apps» (en inglés). Communications of the ACM Blog. Consultado el 6 de julio de 2012.
- ↑ Hoff, Todd (24 de septiembre de 2012). «Google Spanner's Most Surprising Revelation: NoSQL is Out and NewSQL is In» (en inglés). Consultado el 7 de octubre de 2012.
- ↑ a b Aslett, Matthew (6 de abril de 2011). «What we talk about when we talk about NewSQL» (en inglés). 451 Group. Archivado desde el original el 5 de septiembre de 2012. Consultado el 7 de octubre de 2012.
- ↑ Lloyd, Alex (5 de junio de 2012). «Building Spanner» (en inglés). Berlin Buzzwords. Archivado desde el original el 6 de octubre de 2012. Consultado el 7 de octubre de 2012.
- ↑ Aslett, Matthew (2008). «Is H-Store the future of database management systems?» (en inglés) (publicado el 4 de marzo de 2008). Archivado desde el original el 6 de mayo de 2012. Consultado el 5 de julio de 2012.
- ↑ Dignan, Larry (2008). «H-Store: Complete destruction of the old DBMS order?» (en inglés). Consultado el 5 de julio de 2012.
- ↑ Venkatesh, Prasanna (30 de enero de 2012). «Website Designing Company in USA» (en inglés). Consultado el 7 de octubre de 2012.
- ↑ Levari, Doron (2011). «The NewSQL Market Breakdown» (en inglés). Archivado desde el original el 15 de diciembre de 2011. Consultado el 8 de abril de 2012.
- ↑ «Linear scalability, the bottleneck of SQL databases» (en inglés). 2019. Consultado el 4 de noviembre de 2019.
- ↑ Proctor, Seth (2013). «Exploring the Architecture of the NuoDB Database, Part 1» (en inglés). Consultado el 12 de julio de 2013.
- ↑ Proctor, Seth (2013). «Exploring the Architecture of the NuoDB Database, Part 2» (en inglés). Consultado el 17 de julio de 2013. Rent a Car Karachi, Rent a Car Karachi (16 de junio de 2011). «Rent a Car Karachi» (en inglés). Rent a Car Karachi. Consultado el 6 de julio de 2012. Rent a Car Karachi, Rent a Car Karachi (16 de junio de 2011). «Rent a Car Karachi Pakistan» (en inglés). Rent a Car Karachi. Consultado el 6 de julio de 2012.
- ↑ Stonebraker, Mike; et al. (2007). «The end of an architectural era: (it's time for a complete rewrite». VLDB '07: Proceedings of the 33rd international conference on Very large data bases. Viena, Austria.
- ↑ IBM. «A History and Evaluation of System R» (en inglés). Consultado el 5 de febrero de 2014. «"Phase Zero" of the project, which occurred during 1974 and-most of 1975, involved the development of the SQL user interface».
- ↑ Darrow, Barb (2012). «Akiban goes wider with its cool NewSQL database» (en inglés). Archivado desde el original el 3 de enero de 2013. Consultado el 4 de febrero de 2014.