Articulo de referencia

VoltDB

Volt Active Data (anteriormente VoltDB) es una base de datos en memoria diseñada por Michael Stonebraker , Sam Madden y Daniel Abadi . Este equipo había comenzado a desarrollar ...

Volt Active Data (anteriormente VoltDB) es una base de datos en memoria diseñada por Michael Stonebraker , Sam Madden y Daniel Abadi . Este equipo había comenzado a desarrollar una versión experimental llamada H-Store mientras trabajaban en varias universidades estadounidenses.

Es un RDBMS compatible con ACID que utiliza una arquitectura sin recursos compartidos y se deriva del trabajo realizado por Stonebraker sobre el rendimiento y la optimización de sistemas OLTP [ 1 ] . [ 2 ]

Está disponible en ediciones empresariales y comunitarias. La edición comunitaria está licenciada bajo la Licencia Pública General Affero de GNU .

Arquitectura

VoltDB es una base de datos relacional NewSQL OLTP [ 3 ] que admite el acceso SQL desde dentro de procedimientos almacenados Java precompilados .

Aunque se admite el acceso directo a SQL, [ 4 ] la forma más eficiente de interacción es mediante llamadas a procedimientos almacenados, [ 5 ] ya que implica menos viajes de red. Los procedimientos almacenados se escriben en Java extendiendo una clase llamada VoltProcedure e implementando un método 'run()' que incluye tanto sentencias SQL como lógica Java de soporte. Internamente, los datos son gestionados por un núcleo de C++ para evitar problemas de recolección de basura. [ 6 ]

VoltDB se basa en el particionamiento horizontal hasta el nivel de cada hilo de hardware para escalar, la k-safety ( replicación síncrona ) para proporcionar alta disponibilidad y una combinación de instantáneas continuas y registro de comandos para garantizar la durabilidad (recuperación ante fallos).

VoltDB se basa en H-Store . Utiliza una arquitectura sin recursos compartidos para escalar. Los datos y su procesamiento se distribuyen entre los núcleos de CPU de los servidores que componen un clúster VoltDB. Al extender su arquitectura sin recursos compartidos al nivel de cada núcleo, VoltDB escala con el aumento del número de núcleos por CPU en servidores multinúcleo.

Al convertir los procedimientos almacenados en la unidad de transacción y ejecutarlos en la partición que contiene los datos necesarios, es posible eliminar la comunicación bidireccional entre sentencias SQL. Los procedimientos almacenados se ejecutan de forma secuencial y completa en un único hilo sin bloqueos ni retención, de forma similar a la arquitectura LMAX . [ 7 ] Dado que los datos se encuentran en memoria y son locales a la partición, un procedimiento almacenado puede ejecutarse en microsegundos. El esquema de inicio de procedimientos almacenados de VoltDB permite que todos los nodos inicien procedimientos almacenados, evitando así un único orden global serializable. [ 8 ]

VoltDB cumple con las propiedades ACID. Los datos se escriben en almacenamiento persistente. La persistencia se garantiza mediante instantáneas continuas; el registro asíncrono de comandos, que crea tanto instantáneas como un registro de transacciones entre instantáneas; y el registro síncrono de comandos, que registra las transacciones una vez completadas y antes de su confirmación en la base de datos. Esto garantiza que no se confirmen transacciones sin registrar y que no se pierda ninguna transacción.

Historia

Tienda H

H-Store fue un sistema experimental de gestión de bases de datos (DBMS). Fue diseñado para aplicaciones de procesamiento de transacciones en línea . H-Store fue desarrollado por un equipo de la Universidad de Brown , la Universidad Carnegie Mellon , el Instituto Tecnológico de Massachusetts y la Universidad de Yale [ 9 ] [ 10 ] en 2007 por los investigadores Michael Stonebraker , Sam Madden , Andy Pavlo y Daniel Abadi . [ 11 ] [ 12 ] [ 13 ]

H-Store se promocionó como una nueva clase de sistemas de gestión de bases de datos paralelas , denominados NewSQL , [ 14 ] que ofrecen el alto rendimiento y la alta disponibilidad de los sistemas NoSQL , pero sin renunciar a la consistencia transaccional de un DBMS tradicional conocida como ACID (atomicidad, consistencia, aislamiento y durabilidad). [ 15 ] Estos sistemas operan en múltiples máquinas, en lugar de una sola máquina, más potente y costosa. [ 16 ]

H-Store pudo ejecutar el procesamiento de transacciones con un alto rendimiento al prescindir de muchas características de los sistemas de gestión de bases de datos relacionales tradicionales . H-Store fue diseñado como un sistema paralelo para ejecutarse en un clúster de nodos ejecutores de memoria principal sin recursos compartidos (procesador + memoria + almacenamiento). [ 17 ] La base de datos se particiona en subconjuntos disjuntos, cada uno asignado a un motor de ejecución de un solo hilo, asignado a un núcleo en un nodo. Cada motor tiene acceso exclusivo a todos los datos de su partición. Debido a que es de un solo hilo, solo una transacción a la vez puede acceder a los datos almacenados en esa partición. El sistema no incluye bloqueos ni pestillos físicos, y una vez que se inicia una transacción, no puede quedarse bloqueada esperando a que otra transacción finalice. El rendimiento aumenta al incrementar el número de nodos en el sistema y reducir el tamaño de las particiones. [ 18 ]

H-Store se distribuyó bajo las licencias BSD y GPL . En 2009, la empresa VoltDB desarrolló una versión comercial. [ 19 ] La versión final de H-Store se lanzó en 2016. [ 20 ]

VoltDB

VoltDB v5.0 introdujo una herramienta de monitorización y gestión de bases de datos: el Centro de Gestión de VoltDB (VMC). VMC ofrece una solución integral, basada en navegador, para la monitorización y la gestión de la configuración de la base de datos VoltDB, incluyendo gráficos sobre el rendimiento y la latencia del clúster, así como el uso de CPU y memoria del servidor actual.

VoltDB versión 5.1, lanzada en marzo de 2015, introdujo la funcionalidad de replicación de bases de datos (DR), eliminando cualquier punto único de fallo . La replicación de bases de datos permite la replicación simultánea y paralela de múltiples particiones y registros binarios de los resultados de las transacciones, evitando que la réplica tenga que repetir la transacción.

V6.0 [ 21 ] introdujo tipos de datos geoespaciales

V6.1 [ 22 ] agregó flujos, en los que se pueden insertar, con soporte para agregación en vistas materializadas sobre los datos de transmisión.

V6.6 [ 23 ] agregó soporte para clústeres de ejecución de XDCR entre versiones mixtas de Volt y de tamaños y configuraciones mixtas.

La versión V7.1 [ 24 ] , publicada en marzo de 2017, introdujo soporte para el cifrado TLS para redes de clientes.

La versión V7.5 [ 25 ] publicada el 28 de julio de 2017 introdujo el kafkaloader, para consumir eventos de transmisión desde Kafka directamente en una tabla de base de datos o en un procedimiento almacenado para su procesamiento.

V7.6 [ 26 ] (28 de agosto de 2017) introdujo las funciones SQL definidas por el usuario, lo que permite a los clientes escribir funciones personalizadas en Java y hacerlas invocables desde una instrucción SQL. V8.0 [ 27 ] (6 de febrero de 2018) introdujo el cifrado TLS para la comunicación en red entre clústeres mediante DR y XDCR y para la comunicación dentro del clúster.

La versión V8.2 [ 28 ] (12 de julio de 2018) introdujo la función TTL, que permite a las aplicaciones definir un "tiempo de vida" para una columna de marca de tiempo en una tabla. Una vez transcurrido el tiempo de expiración, un proceso interno elimina los registros de la base de datos.

La versión V8.4 [ 29 ] (29 de diciembre de 2018) introdujo las versiones con soporte a largo plazo para los clientes de Volt. Esta versión amplía el soporte de un año a tres años, lo que permite a los clientes permanecer en una versión y recibir actualizaciones críticas para la estabilidad, la seguridad y la corrección. La versión V9.0 [ 30 ] (11 de abril de 2019) introdujo nuevas funcionalidades de transmisión, incluida la migración de datos a una transmisión al expirar y la captura de cambios de datos.

La versión V9.3 [ 31 ] (1 de mayo de 2020), una versión con soporte a largo plazo (LTS), introdujo Tareas programadas, una forma de automatizar tareas repetitivas y llamadas a procedimientos desde Volt. Tareas programadas tiene una interfaz fácil de usar para llamar a procedimientos predefinidos y también se puede personalizar completamente en Java para crear programaciones más complejas.

La versión 10.0 [ 32 ] (agosto de 2020) introdujo un operador Volt para Kubernetes y gráficos Helm, ofreciendo una solución completa para ejecutar bases de datos VoltDB en un entorno de nube Kubernetes. Además, la versión 10.0 proporcionó un agente Prometheus para la recopilación y representación gráfica de métricas.

La versión 10.2 [ 33 ] (enero de 2021) introdujo VoltDB Topics para ofrecer la transmisión inteligente de las capacidades de importación y exportación existentes de VoltDB, pero con la flexibilidad de los flujos tipo Kafka. Los Topics permiten la transmisión tanto entrante como saliente a múltiples productores y consumidores. Permiten el procesamiento y la manipulación inteligentes de los datos a medida que pasan por la canalización. La versión 10.2 es una versión LTS (soporte a largo plazo).

V11.0 [ 34 ] (21 de abril de 2022) introduce conectividad a DataDog , soporte para Java 17, compatibilidad con Kubernetes 22.0 y transacciones de prioridad.

En febrero de 2022, el producto pasó a llamarse "Volt Active Data". [ 35 ]

Véase también

Referencias

  1. "OLTP a través del espejo y lo que encontramos allí" (PDF) . nms.csail.mit.edu .
  2. "El fin de una era arquitectónica (es hora de una reescritura completa)" (PDF) . nms.csail.mit.edu .
  3. "Sistema de gestión de bases de datos relacionales de alto rendimiento para aplicaciones de datos rápidas que requieren transmisión inteligente con transacciones" (PDF) . voltdb.com .
  4. "Interfaz JDBC" . voltdb.com .
  5. "Diseño de procedimientos almacenados para acceder a la base de datos" . voltdb.com .
  6. "Desmintiendo mitos sobre la base de datos en memoria VoltDB - DZone Java" . dzone.com . Consultado el 13 de noviembre de 2020 .
  7. "La arquitectura LMAX" . martinfowler.com . Consultado el 7 de abril de 2019 .
  8. "DB Developer Central" . VoltDB . Consultado el 7 de abril de 2019 .
  9. "H-Store - Investigación sobre DBMS OLTP de próxima generación" . Consultado el 7 de agosto de 2011 .
  10. Van Couvering, David (18 de febrero de 2008). "Stonebraker's H-Store: Algo está pasando aquí" (publicado el 11 de marzo de 2011) . Recuperado el 18 de julio de 2012 .
  11. Stonebraker, Mike ; et al. (2007). "El fin de una era arquitectónica: (es hora de una reescritura completa)" (PDF) . VLDB '07: Actas de la 33.ª conferencia internacional sobre bases de datos muy grandes . Viena, Austria. 
  12. Kallman, Robert; Kimura, Hideaki; Natkins, Jonathan; Pavlo, Andrew; Rasin, Alexander; Zdonik, Stanley ; Jones, Evan PC; Madden, Samuel ; Stonebraker, Michael ; Zhang, Yang; Hugg, John; Abadi, Daniel J. (2008). "H-Store: un sistema de procesamiento de transacciones de memoria principal distribuido de alto rendimiento" (PDF) . Proc. VLDB Endow . 2. 1 : 1496–1499 . doi : 10.14778/1454159.1454211 . ISSN 2150-8097 . 
  13. Monash, Curt (2008). "Mike Stonebraker pide la destrucción completa del antiguo orden de los sistemas de gestión de bases de datos" (publicado el 18 de febrero de 2008) . Recuperado el 18 de julio de 2012 .
  14. Aslett, Matthew (2010). "¿Cómo responderán los proveedores de bases de datos a NoSQL y NewSQL?" (PDF) . 451 Group (publicado el 4 de abril de 2011). Archivado del original (PDF) el 27 de enero de 2012. Consultado el 6 de julio de 2012 .
  15. Thomas, Nigel (1 de marzo de 2008). "H-Store: ¿una nueva era arquitectónica o solo un juguete?" . Consultado el 5 de julio de 2012 .
  16. Aslett, Matthew (4 de marzo de 2008). "¿Es H-Store el futuro de los sistemas de gestión de bases de datos?" . Archivado del original el 6 de mayo de 2012. Consultado el 5 de julio de 2012 .
  17. "H-Store - Descripción general de la arquitectura" . Consultado el 7 de agosto de 2011 .
  18. Dignan, Larry (2008). "H-Store: ¿Destrucción completa del antiguo orden del DBMS?" . ZDNet . Recuperado el 5 de julio de 2012 .
  19. Monash, Curt (2009). "H-Store ahora es VoltDB" . Recuperado el 14 de julio de 2011 .
  20. "H-Store: Investigación sobre bases de datos OLTP de próxima generación" . Consultado el 8 de abril de 2026 .
  21. "Notas de la versión de VoltDB 6" . voltactivedata.com .
  22. "Notas de la versión de VoltDB 6" . voltactivedata.com .
  23. "Notas de la versión de VoltDB 6" . voltactivedata.com .
  24. "Notas de la versión de VoltDB 7" . voltactivedata.com .
  25. "Notas de la versión de VoltDB 7" . voltactivedata.com .
  26. "Notas de la versión de VoltDB 7" . voltactivedata.com .
  27. "Notas de la versión de VoltDB 8" . voltactivedata.com .
  28. "Notas de la versión de VoltDB 8" . voltactivedata.com .
  29. "Notas de la versión de VoltDB 8" . voltactivedata.com .
  30. "Notas de la versión de VoltDB 9" . voltactivedata.com .
  31. "Notas de la versión de VoltDB 9" . voltactivedata.com .
  32. "Notas de la versión de VoltDB 10" . voltactivedata.com .
  33. "Notas de la versión de VoltDB 10" . voltactivedata.com .
  34. "Notas de la versión de VoltDB 10" . voltactivedata.com .
  35. "A partir de hoy, somos Volt Active Data" . voltactivedata.com . 21 de febrero de 2022.
  • Sitio web oficialEdita esto en Wikidata
  • VoltDB en Open Hub
  • Curt Monash (25 de mayo de 2010). "VoltDB finalmente se lanza" . DBMS 2. Consultado el 9 de julio de 2011 .
  • "VoltDB anuncia la versión 5.0" . VoltDB, Inc. 28 de enero de 2015. Consultado el 29 de marzo de 2015 .
  • "Michael Stonebraker, cofundador de VoltDB y pionero de los datos en tiempo real, gana el premio ACM AM Turing 2014" . VoltDB, Inc. 26 de marzo de 2015. Consultado el 29 de marzo de 2015 .
  • "VoltDB busca un rápido desarrollo de Big Data" . ADTmag. 29 de enero de 2015. Consultado el 29 de marzo de 2015 .