TiDB una base de datos NewSQL de código abierto llega a su versión 3.0
TiDB es una base de datos NewSQL de código abierto que admite cargas de trabajo de Procesamiento analítico y transaccional híbrido (HTAP) que puede realizar transacciones en tiempo real (OLTP) y procesar solicitudes analíticas.
Es compatible con MySQL y puede proporcionar escalabilidad horizontal, consistencia fuerte y alta disponibilidad. Desarrollado bajo la impresión de las tecnologías Google Spanner y F1. El proyecto está escrito en Go y distribuido bajo la licencia Apache 2.0.
Sobre TiDB
TiDB cuenta con el soporte de SQL y la provisión de una interfaz de cliente compatible con el protocolo MySQL, que simplifica la adaptación de las aplicaciones existentes escritas para MySQL a TiDB y también le permite usar bibliotecas de clientes comunes. Además del protocolo MySQL, puede utilizar la API basada en JSON y el conector Spark para acceder al DBMS.
Las características de SQL admiten índices, funciones agregadas, expresiones GROUP GROUP, ORDER BY, DISTINCT, combinaciones, vistas, funciones de ventana y subconsultas. Las oportunidades proporcionadas son suficientes para organizar el trabajo con TiDB de aplicaciones web tales como PhpMyAdmin , Gogs y Wordpress.
La posibilidad de escalado horizontal y tolerancia a fallos: el tamaño del almacenamiento y la potencia de cálculo se pueden aumentar simplemente conectando nuevos nodos. Los datos se distribuyen a los nodos con redundancia, lo que permite continuar trabajando en caso de fallo de nodos individuales. Los choques se manejan automáticamente.
El sistema garantiza la consistencia y para el software cliente parece un gran DBMS, a pesar del hecho de que los datos de varios nodos se utilizan para ejecutar una transacción.
Se pueden utilizar diferentes backends para el almacenamiento físico de datos en nodos, por ejemplo, los motores de almacenamiento local GoLevelDB y BoltDB o su propio motor de almacenamiento distribuido TiKV.
La capacidad de cambiar de forma asíncrona el esquema de almacenamiento, lo que le permite agregar columnas e índices sobre la marcha sin detener el procesamiento de las operaciones actuales.
Principales novedades de TiDB 3.0
Como mencionamos, TiDB 3.0 se encuentra disponible y con ello llegan nuevas mejoras para trabajar y aumentar la productividad.
En la prueba de Sysbench, la versión 3.0 está por delante de la rama 2.1 1.5 veces cuando realiza operaciones de selección y actualización y en la prueba TPC-C 4.5 veces. Las optimizaciones afectaron varios tipos de consultas, incluidas las subconsultas “IN”, “DO” y “NOT EXISTS”, las operaciones de combinación de tablas (JOIN), el uso de índices y mucho más.
En esta nueva versión los desarrolladores destacan la adicion de un nuevo motor de almacenamiento TiFlash, que permite un mejor rendimiento en la resolución de tareas analíticas (OLAP), gracias al almacenamiento basado en columnas.
TiFlash complementa el almacenamiento TiKV propuesto anteriormente, almacenando datos en el contexto de cadenas en un formato de clave / valor y más óptimo para las tareas de procesamiento de transacciones (OLTP).
TiFlash trabaja codo con codo con TiKV y los datos siguen replicándose como antes con TiKV utilizando el protocolo Raft para determinar el consenso, pero para cada grupo de réplicas Raft se crea una réplica adicional, que se usa en TiFlash.
Este enfoque le permite lograr una mejor división de recursos entre las tareas de OLTP y OLAP, y también hace que los datos de transacción estén disponibles instantáneamente para consultas analíticas;
Además se implementó un recolector de basura distribuido, que permite aumentar significativamente la velocidad de recolección de basura en grandes grupos y aumentar la estabilidad.
Se añadió soporte para funciones de ventana (funciones de ventana o funciones analíticas) compatibles con MySQL 8.0. Las funciones de la ventana permiten que cada línea de la consulta realice cálculos utilizando otras líneas.
A diferencia de las funciones agregadas que colapsan un conjunto agrupado de líneas en una línea, las funciones de ventana se agregan en función del contenido de una “ventana” que incluye una o más líneas del conjunto de resultados. Entre las funciones de ventana implementadas: NTILE, LEAD, LAG, PERCENT_RANK, NTH_VALUE, CUME_DIST, FIRST_VALUE, LAST_VALUE, RANK, DENSE_RANK y ROW_NUMBER.
Si quieres conocer mas al respecto sobre este lanzamiento puedes consultar la nota de los cambios así mismo para su descarga puedes obtener los enlaces en este mismo enlace.
El artículo TiDB una base de datos NewSQL de código abierto llega a su versión 3.0 ha sido originalmente publicado en Linux Adictos.