Está disponible una nueva versión de la base de datos Tarantool 2.8, que proporciona almacenamiento de datos persistente con acceso a la información desde la memoria (base de datos en memoria). La base de datos combina una alta velocidad de procesamiento de consultas, característica de los sistemas NoSQL (como Memcached y Redis), con la fiabilidad de las bases de datos tradicionales (Oracle, MySQL y PostgreSQL). Tarantool está escrito en C y permite crear procedimientos almacenados en Lua. El código se distribuye bajo la licencia BSD.
La base de datos permite trabajar de manera eficiente con grandes volúmenes de datos bajo altas cargas. Entre las características de Tarantool se destaca la posibilidad de crear controladores en Lua (incluye LuaJIT), el uso del formato MessagePack para intercambiar datos con el cliente, la inclusión de dos motores integrados (almacenamiento en RAM con volcado en un dispositivo de almacenamiento persistente y almacenamiento en disco de dos niveles basado en LSM-tree), soporte para claves secundarias, cuatro tipos de índices (HASH, TREE, RTREE, BITSET), herramientas para replicación sincrónica y asincrónica en modo maestro-maestro, soporte para autenticación de conexiones y control de acceso, además de la capacidad de manejar consultas SQL.
Principales cambios:
- Estabilización de MVCC (Control de concurrencia por múltiples versiones) en el motor en memoria memtx.
- Soporte para transacciones en el protocolo binario IPROTO. Anteriormente, para una transacción era necesario escribir un procedimiento almacenado en Lua.
- Soporte para replicación sincrónica, que funciona en relación a tablas específicas.
- Mecanismo de conmutación automática a un nodo de respaldo (failover) basado en el protocolo RAFT. En Tarantool se implementó la replicación WAL-asíncrona hace tiempo, ahora no es necesario supervisar manualmente el nodo maestro.
- La conmutación automática del nodo maestro también está disponible en caso de topologías con segmentación (sharding) de datos (se utiliza la biblioteca vshard, que distribuye datos entre servidores mediante cestas virtuales (bucket)).
- Mejora del marco para construir aplicaciones en clúster Tarantool Cartridge en entornos virtuales. Tarantool Cartridge ahora maneja mejor la carga.
- La ejecución de la función de Ansible para desplegar clústeres se ha acelerado de 15 a 20 veces. Así, trabajar con grandes clústeres se ha vuelto más sencillo.
- Se ha introducido una herramienta para facilitar la migración desde versiones anteriores >1.6 y <1.10, que está disponible a través de una opción adicional al iniciar. Antes, la migración debía realizarse mediante la implementación de la versión intermedia 1.10.
- Se ha optimizado el almacenamiento de tuplas pequeñas.
- Se ha implementado soporte para UUID en SQL y se ha mejorado la conversión de tipos.
Es importante señalar que a partir de la versión 2.10 se llevará a cabo un cambio en la política de formación de lanzamientos. En las versiones significativas que rompan la compatibilidad hacia atrás, se cambiará el primer número de la versión, en las intermedias el segundo y en las de corrección el tercero (después de 2.10 se lanzará la versión 3.0.0).
Fuente: opennet.ru
