Importante proyecto de lenguaje Go de China, TiDB 3.0 GA, mejoras de estabilidad y rendimiento
TiDB es una base de datos relacional distribuida de código abierto desarrollada por PingCAP. Tiene la confiabilidad, disponibilidad y seguridad de los datos de bases de datos de nivel comercial, admite elasticidad en línea y expansión horizontal, es compatible con el protocolo y ecosistema MySQL. y realizó de manera innovadora la integración de OLTP y OLAP.
La versión TiDB3.0 ha mejorado significativamente la estabilidad de clústeres a gran escala y puede admitir más de 150 nodos de almacenamiento y más de 300 TB de capacidad de almacenamiento, logrando un funcionamiento estable a largo plazo. En términos de facilidad de uso, se han introducido una gran cantidad de medidas de optimización para reducir los costos de operación y mantenimiento del usuario, incluida la introducción de múltiples vistas prácticas en Information_Schema, EXPLAIN ANALYZE, SQL Trace, etc. En términos de rendimiento, especialmente el rendimiento de OLTP, 3.0 también se ha mejorado significativamente con respecto a 2.1. El rendimiento de TPC-C se ha mejorado aproximadamente 4,5 veces, el rendimiento de Sysbench se ha mejorado aproximadamente 1,5 veces y, en términos de OLAP, TPC-H 50G Q15 Las 22 consultas en TPC-H ahora se ejecutan normalmente siempre que la Vista esté implementada. Las nuevas características incluyen funciones de ventana, vistas (experimentales), tablas de particiones, sistema de complementos y bloqueo pesimista (experimental).
Al momento de escribir este artículo, TiDB ha estado funcionando de manera estable en el entorno de producción de más de 500 usuarios durante mucho tiempo, cubriendo finanzas, seguros, manufactura, Internet, juegos y otros campos, que involucran transacciones, middleware de datos, base de datos histórica, etc. Múltiples escenarios comerciales. La demanda de bases de datos relacionales en diferentes escenarios comerciales puede describirse como "cien flores florecen", pero las necesidades más básicas de las bases de datos relacionales no han cambiado, como la confiabilidad de los datos, la estabilidad del sistema, la escalabilidad, la seguridad, la facilidad de uso, etc. Síganos para conocer los últimos avances de TiDB 3.0.
En comparación con la versión 2.1, la versión 3.0 ha mejorado significativamente la estabilidad de los clústeres a gran escala y admite el funcionamiento estable a largo plazo de un solo clúster. La cantidad de nodos de almacenamiento supera los 150 y la capacidad de almacenamiento supera los 300 TB. Las principales optimizaciones son las siguientes:
p>
1. Optimice el mecanismo de latidos entre la replicación de Raft, ajuste la frecuencia de los latidos de acuerdo con la actividad de la Región y reduzca la carga de datos fríos en el grupo.
1.
2. La estrategia de programación de puntos de acceso admite más configuraciones de parámetros y adopta prioridades más altas para mejorar la precisión de la programación de puntos de acceso.
3. Optimice el proceso de programación de PD, proporcione un mecanismo de limitación de corriente de programación y mejore la estabilidad del sistema.
4. Agregue la función de GC distribuida, mejore el rendimiento de GC, reduzca el tiempo de GC de clústeres grandes y mejore la estabilidad del sistema.
Como todos sabemos, la estabilidad de los planes de consulta de bases de datos es fundamental para los negocios. La versión TiDB 3.0 adopta una variedad de medidas de optimización para mejorar la estabilidad del plan de consulta, de la siguiente manera:
1. Se agregó una nueva función de análisis rápido para aumentar la velocidad de recopilación de información estadística y reducir el consumo de clúster. recursos y el impacto en el plan de consultas.
2. Se agregó una función de análisis incremental para mejorar la velocidad de recopilación de información estadística de índice que aumenta monótonamente, lo que reduce el consumo de recursos del clúster y el impacto en el negocio.
3. Agregue estadísticas TopN en CM-Sketch para mitigar las grandes estimaciones causadas por las colisiones de hash de CM-Sketch, mejorar la precisión de las estimaciones de costos y mejorar la estabilidad de los planes de consulta.
4. Introducir el marco Skyline Pruning, utilizar reglas para evitar que los planes de consulta dependan demasiado de información estadística, aliviar la situación en la que el plan de consulta seleccionado no es el plan óptimo debido a un retraso en la información estadística y mejorar la Estabilidad del plan de consulta.
5. Se agregó la función de administración del plan SQL para admitir el enlace manual de los planes de consulta cuando el plan de consulta es inexacto para mejorar la estabilidad del plan de consulta.
1.OLTP
En comparación con la versión 2.1, el rendimiento de selección de puntos, actualización de índice y actualización sin índice de Sysbench en la versión 3.0 se ha mejorado aproximadamente 1,5 veces, y el rendimiento de TPC-C Se ha mejorado aproximadamente 4,5 veces. Los principales puntos de optimización son los siguientes:
1. TiDB continúa optimizando el ejecutor SQL, que incluye: optimizar la conversión de subconsultas NO EXISTENTES en Anti Semi Join, optimizar la selección del orden de unión de la unión de múltiples tablas, etc.
2.
2. Optimice la lógica de conexión de índice para ampliar la aplicabilidad del algoritmo de conexión de índice y mejorar la precisión de la estimación de costos.
3. Las funciones de envío y recepción de mensajes por lotes de TiKV pueden aumentar el TPS de escenarios de aplicaciones de escritura intensiva en aproximadamente un 7 % y el TPS de escenarios de aplicaciones de lectura intensiva en aproximadamente un 30 %.
4.TiKV optimiza la gestión de la memoria, reduce la asignación de memoria y la copia de las opciones de restricción de claves del iterador y mejora la tasa de aciertos de la caché al disfrutar del almacenamiento en caché de bloques a través de la familia de varias columnas ***.
5. Introduzca el complemento del motor de almacenamiento Titan para mejorar el rendimiento cuando el valor del Valor supere 1 KB, aliviar el problema de amplificación de escritura de RocksDB y reducir el uso de E/S del disco.
6.TiKV agrega funciones Raftstore y Apply de subprocesos múltiples para mejorar la escalabilidad de un solo nodo, mejorando así el procesamiento concurrente y la utilización de recursos en un solo nodo, reduciendo la latencia y mejorando significativamente la capacidad de escritura del clúster.
En comparación con principios de 2019, el rendimiento de TiDB Lightning se ha triplicado, de 100 GB/h a 300 GB/h, o de 28 MB/s a 85 MB/s. Los puntos de optimización son los siguientes:
1. Mejorar el rendimiento de la conversión de SQL a pares KV para reducir gastos generales innecesarios.
2. Mejore el rendimiento de la importación de una sola tabla y admita la importación por lotes de una sola tabla.
3. Mejore el rendimiento de la importación de datos en TiKV-Importer y admita la importación de datos e índices por separado.
4.TiKV-Importer admite límites de velocidad para cargar archivos SST.
El control de acceso basado en roles (RBAC) es una de las tecnologías de gestión de derechos más utilizadas en los sistemas empresariales. El modelo de control de acceso "usuario-rol-permiso" más simple se puede construir a través de la idea RBAC. "En RBAC, los usuarios están asociados con roles y los permisos están asociados con roles. Generalmente existe una relación de muchos a muchos entre roles y permisos. Los usuarios pueden obtener los permisos de sus roles a través de sus roles, simplificando así la gestión de permisos. El desarrollo de la función RBAC se ha completado a través de esta versión de iteración.
Lista blanca de IP (función de versión empresarial): TiDB proporciona control de acceso de seguridad a la red basado en la lista blanca de IP, lo que permite a los usuarios configurar políticas de acceso relevantes. p>
Función de registro de auditoría (función de versión empresarial): el registro de auditoría registra las operaciones realizadas por el usuario en la base de datos. Al registrar el registro de auditoría, el usuario puede realizar análisis de fallas, análisis de comportamiento y auditoría de seguridad en la base de datos. ayuda a los usuarios a obtener la situación de ejecución de datos
Almacenamiento cifrado (función de versión empresarial): TiDB utiliza la función de cifrado propia de RocksDB para implementar el almacenamiento cifrado, lo que garantiza que todos los datos escritos en el disco estén cifrados, lo que reduce el riesgo de fuga de datos.
Mejore la verificación de permisos de las declaraciones de permiso y agregue comprobaciones de permisos para las declaraciones ANALYZE, USE, SET GLOBAL y SHOW PROCESSLIST
1. Nuevo método SQL para realizar consultas lentas, enriqueciendo. el contenido de los registros de consultas lentas de TiDB, por ejemplo: número de tarea del coprocesador, tiempo de ejecución/espera promedio/más largo/90%, dirección TiKV con el tiempo de ejecución/espera más largo, etc., simplificando el trabajo de ubicación de consultas lentas, mejorando el problema de consultas lentas. solucionar problemas de eficiencia y mejorar la usabilidad del producto.
2. Se agregó verificación de legalidad para los elementos de configuración del sistema, elementos de monitoreo del sistema optimizados, etc. para mejorar la usabilidad del producto.
3. Se agregaron estadísticas de uso de memoria para las operaciones TableReader, IndexReader e IndexLookupReader, se mejoró la precisión de las estadísticas de uso de memoria de consulta y se mejoró la eficiencia del procesamiento de declaraciones de alto consumo de memoria.
4. Desarrollar especificaciones de registro, reconfigurar el sistema de registro y estandarizar el formato de registro de registros para facilitar a los usuarios la comprensión de los registros y facilitar el uso de herramientas para el análisis cuantitativo de registros.
5. Agregue la función EXPLICAR ANALIZAR para mejorar la facilidad de uso del ajuste SQL.
6. Se agregó la función de seguimiento de declaraciones SQL para facilitar la resolución de problemas.
7. Se agregó unix_socket para conectarse a la base de datos.
8. La nueva función de recuperación rápida de tablas eliminadas le permite recuperar datos rápidamente cuando los elimina accidentalmente.
TiDB3.0 ahora incluye el sistema de almacenamiento en columnas TiFlash, que puede sincronizarse con el sistema de almacenamiento en filas en tiempo real, proporcionando baja latencia, alto rendimiento y coherencia en la lectura de transacciones.
TiFlash se puede utilizar como una imagen en tiempo real (TiKV) del sistema de almacenamiento en filas. Se puede utilizar independientemente del sistema de almacenamiento en filas para aislar físicamente el almacenamiento en filas y en columnas, proporcionando un aislamiento completo de recursos. solución para escenarios de aplicación HTAP. TiFlash se puede utilizar como una imagen en tiempo real del sistema de almacenamiento en filas (TiKV) y se puede utilizar independientemente del sistema de almacenamiento en filas. Aísla físicamente el almacenamiento en filas y en columnas, proporciona una solución completa de aislamiento de recursos y es la mejor. Solución recomendada para escenarios de aplicaciones HTAP.
TiFlash se encuentra actualmente en la etapa Beta y está programado para estar disponible antes del 31 de diciembre de 2019. Solicite la prueba.
En el futuro, continuaremos invirtiendo en la estabilidad del sistema, la facilidad de uso, el rendimiento y la expansión elástica para brindar a los usuarios la máxima elasticidad y escalabilidad, la mejor experiencia de rendimiento y la mejor experiencia de usuario.
Stability V4.0 continuará mejorando las funciones principales que no tienen GA en V3.0, como: modelo de transacción pesimista, vistas, particiones de tablas, motor de almacenamiento de filas Titan, motor de almacenamiento de columnas TiFlash; la introducción de la recuperación de copia de seguridad casi física, que resuelve el problema de la copia de seguridad y recuperación de bases de datos distribuidas, optimizando la función de programación de PD, etc.
Rendimiento
Performance V4.0 continuará optimizando los procesos de transacción, reduciendo el consumo de recursos de transacción y mejorando el rendimiento, como: 1PC, que elimina la operación de obtener ts enviados.
En términos de expansión elástica, PD proporcionará la metainformación necesaria para la expansión elástica para llamadas al sistema externo. El sistema externo puede expandir dinámicamente el clúster en función de la metainformación y las condiciones de carga para lograr ahorros de costos.
Creemos que la mejor arma para superar lo "desconocido" es el poder de la comunidad, y el software básico debe ser de código abierto. Al momento de escribir este artículo, hemos completado 41 artículos de lectura de código fuente. Hay 265 contribuyentes y 6 remitentes en la comunidad de código abierto de TiDB. Nos gustaría expresar nuestro más sincero agradecimiento a los contribuyentes de la comunidad y esperamos que más amigos con ideas afines se unan a nosotros. También esperamos que todos puedan obtener algo del TiDB abierto. comunidad de origen.
Notas de la versión de TiDB 3.0 GA: /v3.0/releases/3.0-ga/