Publication de la base de données distribuée TiDB 3.0

Disponible lancement de la base de donnĂ©es distribuĂ©e TiDB 3.0, dĂ©veloppĂ©e sous l'influence des technologies de Google Spanner et F1. 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 est distribuĂ© 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, Gogs 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, par exemple, les moteurs de stockage locaux GoLevelDB et BoltDB ou son propre moteur de stockage distribuĂ© TiKV.
  • 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.

Principales nouveautés:

  • Des efforts ont Ă©tĂ© consacrĂ©s Ă  l'amĂ©lioration des performances. Dans le test Sysbench version 3.0, il dĂ©passe la branche 2.1 de 1,5 fois lors de l'exĂ©cution des opĂ©rations de sĂ©lection et de mise Ă  jour, et dans le test TPC-C, de 4,5 fois. Les optimisations ont concernĂ© diffĂ©rents types de requĂȘtes, y compris les sous-requĂȘtes « IN », « DO » et « NOT EXISTS », les opĂ©rations de jointure de tables (JOIN), l'utilisation des index et bien d'autres;
    Publication de la base de données distribuée TiDB 3.0 Publication de la base de données distribuée TiDB 3.0
  • Un nouveau moteur de stockage TiFlash a Ă©tĂ© ajoutĂ©, permettant d'atteindre de meilleures performances lors de l'exĂ©cution de tĂąches analytiques (OLAP), grĂące Ă  un stockage en colonne. TiFlash complĂšte le stockage TiKV prĂ©cĂ©demment proposĂ©, qui stockait les donnĂ©es sous forme de lignes dans un format clĂ©/valeur, plus optimal pour les tĂąches de traitement des transactions (OLTP). TiFlash fonctionne en complĂ©ment de TiKV, et les donnĂ©es continuent d'ĂȘtre rĂ©pliquĂ©es dans TiKV comme auparavant, en utilisant le protocole Raft pour Ă©tablir un consensus, mais pour chaque groupe de rĂ©pliques Raft, une rĂ©plique supplĂ©mentaire est créée, utilisĂ©e dans TiFlash. Cette approche permet une meilleure sĂ©paration des ressources entre les tĂąches OLTP et OLAP, et rend Ă©galement les donnĂ©es de transaction instantanĂ©ment accessibles pour les requĂȘtes analytiques.

    Publication de la base de données distribuée TiDB 3.0
  • Un collecteur de dĂ©chets distribuĂ© a Ă©tĂ© mis en Ɠuvre, permettant d'amĂ©liorer considĂ©rablement la vitesse de collecte des dĂ©chets dans de grands clusters et d'augmenter la stabilitĂ© du systĂšme.
  • Une implĂ©mentation expĂ©rimentale du systĂšme de contrĂŽle d'accĂšs basĂ© sur les rĂŽles (RBAC) a Ă©tĂ© ajoutĂ©e. Il est Ă©galement possible de dĂ©finir des droits d'accĂšs pour les opĂ©rations ANALYZE, USE, SET GLOBAL et SHOW PROCESSLIST.
  • La possibilitĂ© d'utiliser des expressions SQL pour sĂ©lectionner Ă  partir du journal des requĂȘtes lentes a Ă©tĂ© ajoutĂ©e.
  • Un mĂ©canisme de rĂ©cupĂ©ration rapide des tables supprimĂ©es a Ă©tĂ© mis en Ɠuvre, permettant de restaurer des donnĂ©es supprimĂ©es par inadvertance.
  • Le format des journaux enregistrĂ©s a Ă©tĂ© unifiĂ©.
  • Le mode de verrouillage pessimiste a Ă©tĂ© ajoutĂ©, ce qui rapproche le traitement des transactions de MySQL.
  • La prise en charge des fonctions de fenĂȘtre (window functions ou fonctions analytiques) compatibles avec MySQL 8.0 a Ă©tĂ© ajoutĂ©e. Les fonctions de fenĂȘtre permettent d'effectuer des calculs pour chaque ligne d'une requĂȘte en utilisant d'autres lignes. Contrairement aux fonctions d'agrĂ©gation qui rĂ©duisent un ensemble de lignes groupĂ©es en une seule ligne, les fonctions de fenĂȘtre effectuent une agrĂ©gation basĂ©e sur le contenu de la « fenĂȘtre », englobant une ou plusieurs lignes de l'ensemble de rĂ©sultats. Parmi les fonctions de fenĂȘtre implĂ©mentĂ©es :
    NTILE, LEAD, LAG, PERCENT_RANK, NTH_VALUE, CUME_DIST, FIRST_VALUE, LAST_VALUE, RANK, DENSE_RANK et ROW_NUMBER.
  • Un support expĂ©rimental pour les vues (VIEW) a Ă©tĂ© ajoutĂ©.
  • Le systĂšme de partitionnement a Ă©tĂ© amĂ©liorĂ©, permettant de distribuer les donnĂ©es entre des sections sur la base de plages de valeurs ou de hachages.
  • Un framework pour le dĂ©veloppement de plugins a Ă©tĂ© ajoutĂ©, avec par exemple des plugins dĂ©jĂ  prĂ©parĂ©s pour l'utilisation d'une liste blanche d'IP ou pour la tenue d'un journal d'audit ;
  • Un support expĂ©rimental pour la fonction « EXPLAIN ANALYZE » a Ă©tĂ© assurĂ© pour la crĂ©ation d'un plan d'exĂ©cution de requĂȘte SQL (SQL Plan Management) ;
  • La commande next_row_id a Ă©tĂ© ajoutĂ©e pour obtenir l'identifiant de la prochaine ligne ;
  • De nouvelles fonctions intĂ©grĂ©es JSON_QUOTE, JSON_ARRAY_APPEND, JSON_MERGE_PRESERVE, BENCHMARK, COALESCE et NAME_CONST ont Ă©tĂ© ajoutĂ©es.

Source : opennet.ru

Acheter un hĂ©bergement fiable pour les sites avec protection DDoS, serveurs VPS VDS đŸ”„ Acheter un hĂ©bergement fiable pour les sites avec protection DDoS, serveurs VPS VDS | ProHoster