Première révélation: la technologie de système de base de données de cohérence à plusieurs niveaux distribuée Tencent TDSQL

Auteur: Li Haixiang Tencent Ingénieur expert TDSQL

«Dans un contexte distribué, comment atteindre une double cohérence (cohérence des transactions, cohérence distribuée) et améliorer l'efficacité de traitement des clusters de transactions distribués?» La base de données Tencent TDSQL est engagée depuis longtemps dans la recherche fondamentale et l'innovation, et continue d'obtenir des technologies clés percée.

Le 21 décembre 2020, lors de la 11e conférence DTCC (China Database Technology Conference), Li Haixiang, un ingénieur expert de la base de données Tencent TDSQL, a partagé la technologie de base du domaine de la base de données - le cœur de la technologie de traitement des transactions distribuées - la technologie de cohérence à plusieurs niveaux . Tout en suivant les caractéristiques ACID, cette technologie rend la technologie de traitement des transactions conforme au principe CAP, et se développe sur le plan théorique par rapport à la technologie de "sérialisation stricte", et propose en outre une variété de technologies complètes avec une forte cohérence . Dans le même temps, la technologie a atteint des performances élevées au niveau de la pratique de l'ingénierie, soit 4 fois la performance de produits similaires Spaneer, 2 fois celle de CorchroachDB et 3 fois celle de Greenplum dans les scénarios à forte concurrence.

Cela signifie que TDSQL a réalisé le premier système d'ingénierie à haute performance et forte cohérence dans l'industrie des bases de données, ce qui est d'une grande importance pour promouvoir la technologie de base des bases de données distribuées et des applications industrielles.

 

 

0. Contexte du problème

La recherche scientifique commence par des problèmes. Dans le domaine du traitement des transactions distribuées, il existe de nombreux problèmes importants, bien plus que la technologie 2PC peut couvrir. Par exemple, Tencent TDSQL résout actuellement un problème complexe et complexe comme suit:

Le problème que les bases de données transactionnelles doivent résoudre est celui de la cohérence des données. Ce problème est un problème de C des caractéristiques ACID des transactions. Si C n'est pas satisfait, il y aura une variété d' anomalies de données , telles que des lectures sales, des lectures non répétables, des lectures fantômes, des lectures d'ordre partiel, des écritures d'ordre partiel et d'autres anomalies de données.

Le système distribué suit la théorie CAP, où C est également «cohérence», qui est la cohérence des données lues entre les opérations. Si le C de CAP n'est pas satisfait, il y aura des problèmes de cohérence anormaux tels que Steal read, Immortal write et Causal reverse (comme illustré dans la figure 2).

La base de données transactionnelle distribuée fait face aux deux types de problèmes ci-dessus en même temps, comme le montre la figure 1. Dans les bases de données transactionnelles distribuées, il est difficile de résoudre ces deux types de problèmes séparément (par exemple, de nombreuses bases de données comme Oracle ne fournissent pas de sérialisation et ne peuvent pas garantir que des exceptions de données ne se produisent pas, et les systèmes NoSQL sont perdus pour garantir A et P dans CAP. C) Sans oublier que la synergie est résolue.

Figure 1 Contexte et problèmes de la recherche de cohérence à plusieurs niveaux

 

Figure 2 Problèmes dans les systèmes distribués

 

En tant que base de données transactionnelle distribuée, TDSQL est confronté à un problème technique complexe et complexe des deux problèmes ci-dessus (cohérence distribuée + cohérence des transactions) .La difficulté réside dans la manière d'atteindre une haute précision dans le cadre de la vérification de l'exactitude. Efficacité, qui affecte directement le débit transactionnel de la base de données transactionnelle distribuée (débit transactionnel).

 

1. La complexité de la recherche universitaire et des problèmes

Dans le monde universitaire, une solution aux problèmes susmentionnés est appelée « sérialisation stricte ». Cette technologie peut résoudre les problèmes causés par la cohérence des transactions et la cohérence du CAP. Comme le montre la figure 3 (document «Transactions hautement disponibles: vertus et limites»), la racine de l'arbre est la jonction de la cohérence des transactions et de la cohérence distribuée, qui est strictement sérialisable. Le sous-arbre gauche (cohérence des transactions) et le sous-arbre droit (cohérence distribuée) de l'arbre sont deux systèmes indépendants et il n'y a pas de relation entre eux.

Figure 3 Recherche académique sur le "point de jonction de la cohérence des transactions et de la cohérence distribuée" (1)

La figure 3 montre également qu'il existe de nombreux types de niveaux d'isolement de cohérence des transactions dans le sous-arbre de gauche et de nombreux types de cohérence distribuée dans le sous-arbre de droite. Par conséquent, il est nécessaire d'étudier systématiquement la cohérence et la distribution des transactions à différents niveaux. La cohérence du système permet de mieux analyser et résoudre les problèmes (au lieu de ne considérer que la seule combinaison de racines d'arbres). La figure 4 nous indique qu'il existe de nombreuses consistance distribuée, et la figure 4 résume environ 60 types, ce qui complique l'étude de ce problème.

 

Figure 4 Diagramme de cohérence distribuée

 

Bien que le problème de la fusion de la cohérence distribuée soit d'une grande complexité, de tels obstacles ne peuvent arrêter notre enthousiasme et notre rythme de recherche approfondie sur le problème. Au cours de l'exploration avancée de TDSQL, comme le montre la figure 5, nous avons vu la direction et l'aube (dans la boîte rouge). La boîte bleue de la figure 5 représente le niveau de cohérence lié à l'isolement et à la cohérence distribuée dans la transaction. La colonne "Isolation (transactionnelle)" sur l'axe horizontal correspond au niveau d'isolement de la transaction, et ils se croisent L'endroit est entouré d'une boîte rouge, mais il est «vide». Cet espace vide n'est pas atteint par l'institut de recherche, et c'est ce no man's land qui donne à TDSQL l'espace et la scène de la recherche.

Figure 5 Recherche académique sur «la jonction de la cohérence des transactions et de la cohérence distribuée» (2)

De plus, l'industrie mentionne souvent «une forte cohérence», mais le concept est confus et peu clair. Le document «Cohérence dans les systèmes de stockage distribués non transactionnels» souligne ce qui suit et clarifie la signification de forte cohérence:

Dans un système cohérent hybride, les opérations fortes sont garanties d'être vues dans un ordre séquentiel par tous les processus (comme dans la cohérence séquentielle), tandis que les opérations faibles sont conçues pour être rapides, et elles deviennent finalement visibles par tous les processus (un peu comme dans la cohérence finale). Les opérations faibles ne sont assurées d'être ordonnées qu'en fonction de leur entrelacement avec des opérations fortes: si deux opérations appartiennent à la même session et que l'une d'elles est forte, alors leur ordre relatif d'invocation est respecté et visible par tous les processus.

Par conséquent, si elle peut être vue par "tous les processus" est le critère pour juger de la cohérence forte. Dans la cohérence distribuée, seules la cohérence linéaire et la cohérence séquentielle satisfont au sens de cohérence forte. La combinaison de cohérence transactionnelle, qui doit être sérialisée pour répondre à une forte cohérence, peut être appelée une transaction distribuée .

Pour résumer, le problème que TDSQL étudie est la relation interne entre ACID C, CAP C et une forte cohérence . Ils ont deux dimensions: l’une est de savoir comment garantir l’exactitude de ces facteurs, et l’autre est C'est comment garantir que le système mis en œuvre a de bonnes performances sous l'influence de ces facteurs. S'il n'y a pas de bonnes performances, il est difficile de fournir une cohérence même forte, donc atteindre des performances élevées dans un contexte de forte cohérence devient un défi.

 

2. Réalisation et problèmes dans l'industrie

Dans l'industrie, actuellement, seul le système Spanner de Google a réalisé une "sérialisation stricte", que Spanner appelle "cohérence externe" ("Spanner: base de données distribuée globalement par Google"). La technologie a été publiée en 2012, faisant de la recherche et de la pratique de l'industrie des bases de données de l'ère NoSQL jusqu'à l'ère NewSQL, ce qui a une signification historique. L'essence technique de sa réalisation est de combiner la cohérence linéaire dans le système distribué et la sérialisabilité de la cohérence des transactions, réalisant ainsi une "sérialisation stricte".

Figure 6 La pratique de l'industrie de "la jonction de la cohérence des transactions et de la cohérence distribuée"

 

Cependant, il y a un problème dans l'implémentation de Spanner: l'exactitude peut être garantie, mais les performances sont faibles (comme le montre la formule de calcul du débit de transaction dans la figure 6). Par conséquent, le système est symbolique. En pratique, la performance ne répond pas aux exigences des scénarios de traitement des transactions qui doivent être au niveau financier.

 

3. Technologie de cohérence à plusieurs niveaux de Tencent TDSQL

TDSQL a étudié en profondeur le problème de cohérence distribuée et a résolu certains problèmes techniques. Par exemple, comme le montre la figure 7, la cohérence linéaire a plusieurs sous-catégories, donc lorsque la cohérence linéaire et la cohérence des transactions sont combinées, devrait-il y avoir plusieurs niveaux de «sérialisation stricte»? Pour un autre exemple, pourquoi la cohérence séquentielle et la sérialisation peuvent-elles être combinées pour assurer une forte cohérence? Ces problèmes doivent être prouvés au niveau théorique avant de pouvoir être transférés au système d'ingénierie pour guider la mise en œuvre du projet.

Figure 7 Définition de la cohérence linéaire

 

Après une étude approfondie du C d'ACID et du C de CAP et une forte cohérence, l' équipe TDSQL a adopté la technologie de modélisation de cohérence à partir de multiples perspectives telles que les concepts, les modèles, les opérations basées sur des modèles, les cadres de modèles de transaction, les structures de données et la conception d'algorithmes efficaces. , Basée sur TDSQL et Greenplum pour atteindre la technologie de «cohérence multi-niveaux» (basée sur Greenplum est de faciliter la comparaison avec l'implémentation du produit de l'industrie pour trouver des problèmes), cette technologie fournit un linéaire et sérialisable qui répond à une forte cohérence en termes d'exactitude La définition et la preuve du niveau sérialisable de la séquence et de la séquence ont éliminé les anomalies de données susmentionnées dans la cohérence des transactions, telles que l'ordre d'écriture partiel, et les anomalies distribuées dans la cohérence distribuée telles que Steal read. En termes de performances, il a d'excellentes performances.

Cette technologie a été comparée et testée les performances de Spanner sur Google Cloud, et comparé et testé le système NewSQL bien connu CorchroachDB dans l'industrie, et comparé et testé le Greenplum natif, et obtenu de bons résultats, comme le montre la figure 8 (cohérence à plusieurs niveaux de TDSQL : SER-L, linéaire sérialisable; SER-S, séquentiel sérialisable), a vérifié et comparé les performances de la cohérence multi-niveaux TDSQL sous plusieurs angles, et une partie des données expérimentales est donnée à la figure 8. L'expérience de la figure 8 est divisée en 4 niveaux de comparaison:

  1. Comparaison des performances de Spanner: dans le sous-graphique situé dans le coin supérieur gauche de la figure 8, la cohérence à plusieurs niveaux de TDSQL est 4 fois supérieure à celle de Spanner avec les mêmes ressources rentables.

  2. En comparant les performances de CorchroachDB dans le coin inférieur gauche de la figure 8, la cohérence à plusieurs niveaux de TDSQL est plus de 2 fois supérieure à celle de CorchroachDB dans le même environnement de test matériel.

  3. Comparaison des performances de Greenplum natif: dans le sous-graphique de droite de la figure 8, sous l'environnement de test matériel, la cohérence à plusieurs niveaux de TDSQL est 3 fois plus élevée que celle de Greenplum native.

  4. En présence d'un certain degré de retard du réseau, les performances de la cohérence multi-niveaux de TDSQL: le sous-graphe droit de la figure 8, également testé dans un environnement distribué, lorsque le réseau a un retard de 1,5 ms et 5 ms, scénarios de forte concurrence Dans le cadre de la technologie de cohérence multiniveau TDSQL, les performances du niveau d'isolation RC de Greenplum sont toujours meilleures que celles du niveau d'isolation Greenplum RC sans délai, ce qui montre que le niveau d'isolement avec une cohérence plus élevée peut obtenir de meilleures performances (la première version de CorchroachDB a réalisé l'isolation de snapshot Et la sérialisabilité, mais dans la nouvelle version, seul le niveau de sérialisabilité plus strict est conservé. Pouvez-vous réfléchir à pourquoi?).

Figure 8 Vérification des performances de la technologie de cohérence à plusieurs niveaux TDSQL

 

4. L'importance du travail de cohérence à plusieurs niveaux TDSQL

La recherche et les travaux pratiques de la cohérence multi-niveaux TDSQL ont plusieurs valeurs:

  1. Le premier système d'ingénierie à atteindre une cohérence forte multiple: dans les systèmes actuellement connus, seuls Spanner et TDSQL atteignent une cohérence forte; seul TDSQL implémente plusieurs niveaux de systèmes de cohérence forte. Ceci sert d'exemple pour la pratique approfondie d'un système de cohérence forte, nous pouvons savoir à partir de là que la théorie dans ce sens est réalisable dans la pratique de l'ingénierie .

  2. Le premier système d'ingénierie à haute performance et à forte cohérence: un système qui garantit l'exactitude peut ne pas être en mesure d'être utilisé efficacement dans l'environnement réel, car la haute performance est l'indicateur principal d'un système. Et TDSQL sous une variété de cohérence forte a des performances qui peuvent répondre à des applications pratiques. En l'absence d'anomalies de données et d'anomalies de cohérence, les utilisateurs n'ont plus à se soucier des problèmes inattendus avec les données ou les opérations, mais ils peuvent profiter d'une excellente expérience de performance, ce qui montre que la technologie est faisable dans la pratique de l'ingénierie. .


Nous attendons avec impatience le début du rideau, et le véritable système de cohérence fort va germer ...

5. Travaux futurs

La bonne nouvelle est que cette technologie sera très probablement open source à l'avenir.

Une partie de la technologie de traitement des transactions de TDSQL est déjà open source. Vous pouvez trouver le projet open source 3TS sur github. Ce projet se concentre sur la technologie de traitement des transactions et impliquera profondément tous les aspects liés à la technologie de traitement des transactions. Il sera précieux et en profondeur Recherche et pratique. Actuellement, 13 algorithmes de contrôle d'accès simultanés ont été ouverts dans le cadre du projet et une documentation détaillée a été fournie.

Figure 9 Orientation future du développement technique de TDSQL

 

Tencent TDSQL et le laboratoire clé du ministère de l'Éducation de l'ingénierie des données et de l'ingénierie des connaissances de l'Université Renmin de Chine prévoient d'utiliser leurs propres actions pratiques pour nous permettre de mener à bien le projet ensemble afin d'apporter des contributions significatives aux cercles académiques et d'ingénierie et de promouvoir la technologie des bases de données. développement de. La route est longue et longue, nous travaillons dur, bienvenue pour rejoindre TDSQL et nager dans l'océan de la technologie de pointe.

23 décembre, 19h30

Xiao Meng de l' équipe TAPD  

Partageons les scénarios spécifiques dans le processus de R&D 

Comment réaliser une mesure de R&D agile en équipe basée sur TAPD

Je suppose que tu aimes

Origine blog.csdn.net/Tencent_TEG/article/details/111503034
conseillé
Classement