lancement de la base de donnĂ©es distribuĂ©e , dĂ©veloppĂ©e sous l'influence des technologies de Google et . TiDB fait partie des systĂšmes hybrides HTAP (Hybrid Transactional/Analytical Processing), capables Ă la fois d'assurer l'exĂ©cution de transactions en temps rĂ©el (OLTP) et de traiter des requĂȘtes analytiques. Le projet est Ă©crit en Go et sous licence Apache 2.0.
Caractéristiques de TiDB :
- Prise en charge de SQL et fourniture d'une interface client compatible avec le protocole MySQL, facilitant l'adaptation des applications existantes pour TiDB déjà écrites pour MySQL, tout en permettant d'utiliser des bibliothÚques clientes largement répandues. En plus du protocole MySQL pour accéder à la base de données, il est possible d'utiliser une API basée sur JSON et un connecteur pour Spark.
- Les fonctionnalitĂ©s SQL incluent les index, les fonctions d'agrĂ©gation, les expressions GROUP BY, ORDER BY, DISTINCT, les jointures (LEFT JOIN / RIGHT JOIN / CROSS JOIN), les vues, les fonctions analytiques et les sous-requĂȘtes. Les fonctionnalitĂ©s fournies sont suffisantes pour le fonctionnement avec TiDB d'applications web telles que PhpMyAdmin, et WordPress ;
- PossibilitĂ© d'Ă©voluer horizontalement et d'assurer la rĂ©silience : la taille du stockage et la puissance de calcul peuvent ĂȘtre augmentĂ©es simplement en ajoutant de nouveaux nĆuds. Les donnĂ©es sont rĂ©parties sur les nĆuds avec redondance, permettant la continuitĂ© de l'opĂ©ration en cas de dĂ©faillance de nĆuds individuels. Les pannes sont gĂ©rĂ©es automatiquement.
- Le systĂšme garantit la cohĂ©rence et pour le logiciel client il apparaĂźt comme une grande base de donnĂ©es, mĂȘme si, en rĂ©alitĂ©, les donnĂ©es proviennent de nombreux nĆuds pour exĂ©cuter une transaction.
- Pour le stockage physique des donnĂ©es sur les nĆuds, diffĂ©rents backends peuvent ĂȘtre utilisĂ©s, tels que les moteurs de stockage locaux GoLevelDB et BoltDB ou des moteurs de stockage distribuĂ©s propriĂ©taires. et TiFlash. TiKV stocke les donnĂ©es sous forme de lignes au format clĂ©/valeur et est plus optimal pour les tĂąches de traitement des transactions (OLTP). TiFlash stocke les donnĂ©es en colonnes et permet d'atteindre de meilleures performances pour les tĂąches analytiques (OLAP).
- PossibilitĂ© de modifier la structure de stockage de maniĂšre asynchrone, permettant d'ajouter des colonnes et des index Ă la volĂ©e sans arrĂȘter le traitement des opĂ©rations en cours.
Dans cette nouvelle version :
- Par défaut, le collecteur de déchets distribué Green GC est activé, ce qui permet d'augmenter considérablement la vitesse de collecte des déchets dans les grands clusters et d'améliorer la stabilité du fonctionnement.
- Ajout du support pour les grandes transactions, dont la taille est pratiquement limitée à la taille de la mémoire physique. La taille maximale d'une transaction a été augmentée de 100 Mo à 10 Go.
- Ajout du support des commandes BACKUP et RESTORE pour la sauvegarde.
- Ajout de la possibilité d'installer un verrou sur les tables.
- Ajout d'un mécanisme d'isolation des transactions compatible avec MySQL au niveau de lecture (READ COMMITTED).
- La commande «ADMIN SHOW DDL JOBS» a été mise à jour pour prendre en charge les expressions LIKE et WHERE.
- Ajout du paramÚtre oom-use-tmp-storage, permettant d'utiliser des fichiers temporaires pour mettre en cache les résultats intermédiaires en cas de manque de mémoire vive.
- Ajout du mot-clé Random pour attribuer des valeurs aléatoires aux attributs.
- Dans la commande LOAD DATA, il est désormais possible d'utiliser des expressions hexadécimales et binaires.
- Ajout de 15 paramÚtres pour gérer le comportement de l'optimiseur.
- Ajout d'outils pour le diagnostic de la performance des requĂȘtes SQL. Enregistrement des requĂȘtes lentes accessible via les tables systĂšme SLOW_QUERY / CLUSTER_SLOW_QUERY.
- Ajout de la prise en charge des fonctions pour travailler avec des séquences.
- Ajout de la possibilitĂ© de modifier dynamiquement les paramĂštres de configuration, lus depuis PD (Placement Driver, serveur de gestion de cluster). PossibilitĂ© d'utiliser l'expression «SET CONFIG» pour modifier les paramĂštres des nĆuds PD/TiKV.
- Ajout de la configuration max-server-connections pour limiter le nombre maximum de connexions simultanées au serveur (par défaut 4096).
- AmĂ©lioration des performances dans les situations oĂč les colonnes demandĂ©es sont entiĂšrement couvertes par les index.
- Ajout d'une optimisation des requĂȘtes basĂ©e sur la fusion des index.
- Amélioration des performances des opérations sur des plages de valeurs.
- Réduction de la charge sur le CPU grùce à la mise en cache des résultats d'accÚs aux index et à l'élimination des doublons.
- Ajout de la prise en charge d'un nouveau format de stockage des chaßnes, permettant d'améliorer les performances des tables avec un grand nombre de colonnes.
- La fonction GROUP_CONCAT prend désormais en charge l'expression « ORDER BY ».
- Ajout de la possibilité d'extraire des données à partir du journal TiFlash via SQL.
- La commande « RECOVER TABLE » prend en charge la récupération de tables tronquées.
- Ajout de la table systémique DDLJobs pour interroger les détails de l'exécution des travaux DDL.
- Ajout de la possibilité d'utiliser la commande SHOW CONFIG pour afficher les paramÚtres de PD et TiKV.
- cache de coprocesseur par défaut.
- Le nombre de goroutines dans la phase de nouvelle tentative de commit peut dĂ©sormais ĂȘtre contrĂŽlĂ© Ă l'aide du paramĂštre committer-concurrency.
- Ajout de la possibilité d'afficher les régions des partitions de tables.
- Ajout de la possibilité de limiter la taille du stockage temporaire dans le tidb-server.
- Ajout de la prise en charge des opérations « insert into tbl_name partition(partition_name_list) » et « replace into tbl_name partition(partition_name_list) ».
- La fonction de hachage utilisée pour le partitionnement prend désormais en charge le filtrage par le critÚre « is null ».
- Prise en charge des opérations de vérification, nettoyage et récupération des index pour les tables partitionnées.
Source : opennet.ru
