当前位置:网站首页>Aller de l'avant - tdsql poursuit l'expérience ultime

Aller de l'avant - tdsql poursuit l'expérience ultime

2021-09-15 08:19:40 Tencent Cloud Database

2007Année,Un groupe de jeunes sur la plate - forme de facturation pour une disponibilité élevée au niveau bancaire、Système de négociation avec zéro erreur de compte,Programme de discussion sur les heures supplémentaires,.Des mois de remue - méninges et de démonstrations répétées,Enfin.“TBOSS 7*24”Programme de reprise après sinistre,Et après plus d'un an de promotion,Chop - chop09Prix de la percée technologique au niveau de l'entreprise,J'aiTonyOui.,Depuis lors, la plate - forme de facturation a ouvert la voie à l'exploration de la création d'une base de données de niveau financier.

Tout le chemin,La poursuite de la technologie est sans fin,Créer une grande cohérence pour une meilleure utilisation、Haute disponibilité、Le concept de base de données distribuée haute performance n'a jamais changé,L'architecture du système a été optimisée en trois générations,2012Produits de quatrième génération lancés enTDSQL,Passe.5Le meulage annuel et l'optimisation de l'exploitation réelle des grandes entreprises,Et coopérer avec Tencent Financial Cloud pour produire,Sortie officielle de la base de données financière Tencent Cloud,Pour l'instant500+Les clients financiers couvrent les banques、Assurance、Titres du Fonds、Financement des consommateurs、Paiements par des tiers、Facturation、Internet des objets、Le Gouvernement, les entreprises et bien d'autres domaines,En particulier dans les systèmes de négociation de base de plusieurs banques,MarqueTDSQLUne véritable percée pour devenir un produit de base de données de qualité financière,C'est la percée ici,Cette année encore, l'équipe de projet a remporté le prix de percée technologique au niveau de l'entreprise,C'est également la reconnaissance de l'entreprise que l'équipe s'est concentrée sur la recherche et le développement de base de données de niveau financier.

Bien sûr.,Obstruction du canal et longue,Au fur et à mesure que le matériel se met à jour,Les entreprises sont de plus en plus diversifiées et complexes,Il reste encore beaucoup de nouveaux défis à relever dans le domaine des bases de données.Cet article tente de documenter les progrès réalisés au cours de la dernière décennie,Quelques réflexions et conclusions de l'équipe, J'espère que la route s'élargit. !

Essentiellement,,Les requêtes et les demandes de mise à jour ne sont pas réparties uniformément entre les groupes de Threads dans des cas extrêmes! En termes de raffinement, , Il existe deux types principaux d'utilisateurs directs des produits de base de données , Développeurs et opérateurs , Le cœur, c'est qu'ils vont s'amuser. .

Par exemple, pour les développeurs , Les questions qui les préoccupent souvent sont les suivantes: :

1、 L'interface de développement est - elle standard? ? Fournir des lignes directrices de développement parfaites ?

2、 En cas de catastrophe ,Les développeurs n'ont pas besoin de se soucier de la perte de données? Il n'est pas nécessaire d'écrire une logique complexe de commutation tolérante aux catastrophes ?

3、 Très bonne performance du système , Pouvez - vous supporter la pression de surtension de l'entreprise ?

4、 Si le système est suffisamment ouvert, etc. ?

Pour le personnel d'exploitation et d'entretien DBADis, Ils se préoccupent souvent de questions telles que: :

1、Existe - t - il des outils standardisés ou des pages directement utilisées pour le fonctionnement normal du système?Il n'est pas non plus nécessaire d'intégrer des systèmes de fractionnement dans le Code d'entreprise ou de racheter des intergiciels?

2、 Le système est - il suffisamment transparent? , De sorte qu'en cas d'exception , Problème de positionnement rapide ?

3、 Existe - t - il un manuel d'exploitation du système complet? ?

4、 Si les installations de soutien sont complètes , Par exemple, système de surveillance 、Système de publication、 Système de secours à froid 、 Système d'audit, etc. ?

Et bien sûr, il y a aussi une catégorie d'utilisateurs indirects ,Ce sont les utilisateurs réels de ces systèmes d'affaires qui utilisent la base de données, Leurs préoccupations sont les suivantes: :

1、 Leurs paiements 、 Les opérations telles que le transfert sont - elles normales? , Ne sera - t - il pas facturé? , Plus d'argent. ?

2、Est - ce qu'ils peuvent faire des affaires n'importe quand, n'importe où, etc?

En général,, Lorsque les ressources et le temps sont limités ,Les besoins de ces catégories d'utilisateurs visent à distinguer les différentes priorités, Même parfois conflictuel , C'est pour ça qu'on est venus jusqu'ici. , Gardez toujours ce principe : Protéger les besoins fondamentaux des utilisateurs (Les données ne sont pas perdues., Joli compte. )Dans le cas de,Ensuite, optimiser continuellement l'expérience des développeurs et du personnel d'exploitation et de maintenance. Par exemple, nos produits de première génération “TBOSS 7*24” La priorité est d'assurer une disponibilité élevée. 、Haute cohérence, Assurez - vous que les données de l'utilisateur sont bonnes et ne sont pas perdues ,Dans la mesure du possible au niveau de la base de données pour répondre aux demandes des trois catégories d'utilisateurs,Les développeurs d'entreprise doivent développer un grand nombre de codes de reprise après sinistre,Le personnel d'exploitation et d'entretien doit maintenir un grand nombre de modes de catastrophe, etc.,Mais cela nuit grandement à l'expérience des développeurs et du personnel d'exploitation et de maintenance. Dans les générations suivantes de changements de système , Nous sommes en train de couler. , Rendre le développement des affaires et l'o & M plus simples , La base de données elle - même sera un peu plus complexe .L'indicateur de performance est aussi l'un des indicateurs les plus directement ressentis par les utilisateurs,Et c'est devenuTDSQL Principaux défis .

TDSQL Principaux défis

TDSQL D'innombrables versions, grandes et petites, , Les principaux défis auxquels nous sommes toujours confrontés sont les suivants: :

1、 Fiabilité des données . En cas de catastrophe , Par exemple, défaillance de l'hôte 、 Défaillance du réseau, etc. , Aucune perte de données n'est autorisée .

2、 Disponibilité du système . Dans le cas de plusieurs copies de données , Comment le système assure - t - il certaines exceptions , Récupération rapide disponible , Réduire au minimum la durée d'indisponibilité .

3、Haute performance.Tout d'abord,, Amélioration des performances d'une seule machine , Pour les grandes entreprises , Réduit considérablement les coûts du serveur, etc. ;Deuxièmement,, Les indicateurs de performance sont également l'un des indicateurs les plus directement ressentis par les utilisateurs. ,Le service peut être basé sur toutes les données recueillies par le module d'acquisition de données.

4、Extensibilité. C'est ce qu'on appelle généralement la distribution. . En fait, dans le secteur financier, , Il n'y avait pas beaucoup de demande pour la distribution , Mais avec le développement rapide des paiements par des tiers ,Cela a eu un impact considérable sur certains systèmes bancaires, Par exemple double 11、 Activités telles que les enveloppes rouges du Festival de printemps , Ces systèmes utilisent des systèmes traditionnels IOE L'architecture est difficile. ,Afin de maintenir la disponibilité du système et la fiabilité des données suffisamment. Au - delà du niveau de la pensée , Architecture distribuée à la finance traditionnelle IT En dehors de l'impact du personnel de l'industrie , En fait, techniquement, , Il y a beaucoup de défis ici. ,TDSQL Est également en cours d'optimisation et de résolution étape par étape ,Par exemple, les transactions distribuées les plus complexes en deux points et les transactions distribuéesJoinFonctionnement.Nous avons maintenant terminé la publication de la fonction de transaction distribuée,Et distribuéJoin En cours de test interne .

5、Outils de soutien. Un logiciel de base de données doit être expérimenté , Alors vous ne pouvez pas simplement fournir quelques paquets de base , Des outils de gestion opérationnelle appropriés doivent être disponibles. 、 Outil de diagnostic des problèmes 、 Outils d'analyse du rendement, etc. , Et c'est ouvert 、 Interface Standard ,Ce n'est qu'ainsi que tout le monde pourra l'utiliser de façon plus transparente.

Quelques questions ci - dessus ,Devant.2 Une question de fonctionnalité de base , Dans la première version, il y avait déjà une garantie de base , Mais est - ce suffisant? ?C'est loin d'être suffisant., Pas assez. , Trop peu de obstacles rencontrés , Quand vous rencontrez une nouvelle fosse , Peut encore lutter . Nous n'avons que des scènes assez riches , Grâce à une vaste expérience pratique des opérations , Faire en sorte que votre système soit suffisamment perfectionné ,Le produit de base de données est toujours une question d'expérience utilisateur9. Les dernières questions , Il devrait également s'agir d'un processus d'optimisation continue. ,TDSQL Toujours à la recherche de la solution la plus élégante , Donc voici quelques questions ,Regarde ça.TDSQL Comment faire exactement .

Architecture de base

file

SetMécanismes:TDSQL Tous les mécanismes de haute disponibilité sont disponibles à l'adresse suivante: Set Réalisation interne ,ChaqueSet Plusieurs noeuds de données à l'intérieur (1Seigneur.NEn attente.), Entre le primaire et le secondaire peut être basé sur Raft Forte réplication synchrone du Protocole , Ou un mécanisme de réplication asynchrone . En cas de défaillance de l'hôte , Avec l'aide du module de programmation ,Promouvoir la machine de secours sélectionnée à l'hôte selon le processus spécifié, Reprise rapide des activités ,Aucune intervention manuelle n'est nécessaire tout au long du processus. Dans notre utilisation normale , C'est souvent une suggestion. 1Seigneur.2En attente., Forte synchronisation entre l'hôte et l'esclave , En cas de défaillance du noeud primaire , Assure la commutation automatique ,RTOPour40s,RPOPour0.

Expansion horizontale.La version distribuée est présentée comme une instance logique complète, Les données d'arrière - plan sont en fait réparties entre plusieurs SetAllez.( Noeud physique indépendant )Composition. L'instance logique masque les règles de stockage réelles de la couche physique , L'entreprise n'a pas besoin de se soucier de la façon dont les niveaux de données sont stockés ,Essentiellement, toutes les opérations courantes peuvent être effectuées par l'intermédiaire de cette console, Il suffit d'utiliser la centralisation (Machine autonome) La base de données peut être utilisée de la même manière . Prise en charge de l'expansion en ligne en temps réel , Le processus d'expansion est entièrement transparent pour l'entreprise ,Pas de temps d'arrêt d'affaires requis, Lecture seule en secondes pour les tranches partielles lors de l'expansion de la capacité ( La lecture seule est la vérification réelle des données ),L'ensemble du cluster n'est pas affecté.

Transactions distribuées.TDSQLBasé surMySQLDeXA Mise en œuvre du mécanisme de transaction distribuée ,Des tests de robustesse adéquats ont été effectués pour diverses manipulations d'exceptions, Et par rapport aux transactions autonomes , Perte de performance seulement 30%.

file

Caractéristiques avancées

Sous - zone secondaire. Le premier niveau est ce que nous appelons la division horizontale , Le principe est d'utiliser HASHAlgorithmes,Pour que les données soient réparties uniformément sur tous les noeuds de l'arrière - plan; Utilisation de la partition de deuxième niveau RANGEAlgorithmes,Pour que les données pertinentes tombent dans une partition logique, Par exemple, vous pouvez partitionner dans le temps ( Comme une division par mois tous les jours, etc. ), Peut également être divisé en fonction des caractéristiques de l'entreprise ( Comme une division par province, etc. )Attendez un peu!. Le fractionnement secondaire peut équilibrer la distribution et l'accès aux données , Fournir un soutien de base pour une expansion rapide de la capacité à un bouton , Peut également répondre à des scénarios tels que la suppression rapide des données .

Séparation lecture - écriture.Système de séparation lecture - écriture basé sur le compte d'accès à la base de données,DBAPeut définir les paramètres pertinents du compte en fonction des besoins opérationnels, Pour s'assurer qu'aucune donnée ancienne n'est lue , Ça n'affectera pas l'écriture. ,Et l'entreprise peut réaliser la séparation lecture - écriture sans changer de code. Cela réduit considérablement les coûts d'exploitation des entreprises .

En outre,TDSQL Et une séquence numérique unique au niveau mondial 、 Gestion unifiée des paramètres 、Compatible avecMySQLFonctions, Mise à jour des hotspots et autres fonctionnalités avancées , Répondre à toutes sortes de besoins opérationnels .

Optimisation du noyau

TDSQL Optimisation du noyau de base de données , Se concentre principalement sur la réplication des données 、Performance、Sécurité, etc.

Mécanisme de synchronisation fort .TDSQL Forte synchronisation des scénarios financiers ,Ça marche.MySQL Problème du mécanisme semi - synchrone natif : Dégradation des performances et dégradation des temps d'arrêt en asynchrone .Pour l'instantTDSQL En mode fortement synchrone , Concurrence du système (TPS/QPS) Pas de différence par rapport au mode asynchrone , Essentiellement capable de fonctionner sans perte .

Optimisation des performances.

1)Nous sommes d'accord avecMariaDB/Percona Optimisation de l'algorithme de programmation du pool de Threads basé sur , Amélioration lorsque le système est lourdement chargé ,La distribution actuelle ne permet pas vraiment une utilisation autonome de la base de données. Et une meilleure utilisation des ressources informatiques , Réduire les changements de fil inutiles , Réduire le temps d'attente des demandes dans la file d'attente ,Traitement rapide des demandes.

2) Présentation par groupe (Group Commit) Asynchronisation de .Une fois que le thread Worker est entré dans la file d'attente de soumission de groupe dans son état de session, Ne bloquez plus les groupes en attente de soumission Leader Thread complete commit , Au lieu de cela, retournez directement à la prochaine demande .

3) InnoDB Buffer Pool Utiliser l'optimisation . Par exemple, lors d'un balayage de table complet , Évitez de remplir InnoDBBuffer Pool, Au lieu de prendre un morceau pour l'utiliser .

4) InnoDB InMySQL Évitez de soumettre avec le Groupe mutex Activités conflictuelles ,Par exempleInnoDB Purge, Réduire les conflits ,Pour améliorer les performances.

Points similaires d'optimisation des performances ,Il y en a beaucoup d'autres, Peut - être dans certains scénarios , L'effet d'un seul point n'est pas évident , Mais rassemblez - vous et regardez , Les indicateurs de performance actuels sont généralement bons .Basé surSysbenchOLTPRésultats des tests, Dans le même environnement matériel et d'essai ,TDSQL Amélioration des performances par rapport à la version native 85%.

Amélioration de la sécurité . Beaucoup d'optimisation et d'amélioration de la sécurité , Inclure le chiffrement des fichiers de données 、SQLPare - feu、SSLAccès、 Audit de sécurité, etc. .

En outre, Nos préoccupations à long terme MySQL Trois versions ramifiées de :MariaDB、Percona、MySQL community, Nouvelles caractéristiques pour la communauté , Et se fermera régulièrement .

Programme de déploiement

TDSQL Forte synchronisation , Peut être déployé à l'échelle mondiale ,Mais en fait, la plupart de nos clients, peu importe le coût, Ou du point de vue du scénario d'affaires , Pas besoin d'un déploiement mondial ,Deux centres communs peuvent essentiellement répondre à la demande. Les clients peuvent se baser sur les coûts 、 Exigences en matière de reprise après sinistre pour ses propres données commerciales , Et la répartition des centres de données , Choisir un scénario de déploiement différent .TDSQLFaire des compromis ciblés entre la fiabilité et la disponibilité des données, Déploiement flexible . Les deux scénarios de déploiement courants sont les suivants: :

Trois centres à deux endroits

file

ZK Dans les trois centres des deux villes .

1、Seigneur.IDC Les défauts ne perdent pas de données , Passage automatique à la veille IDC, Se transforme en un seul IDC Forte synchronisation ,Risque présent.

2、 Défaillance de l'hôte seulement , En comparant deux noeuds de secours de la même ville et un WatcherDerrière le noeud, Passer au noeud avec les données les plus récentes , La préférence est la même IDCDeWatcherNoeud, Réduire au minimum la portée IDCBasculer.

3、En attente.IDCFaute, Par une autre ville ZK Possibilité de faire automatiquement des élections :

a) En attente.IDC C'est vrai. , Soulever automatiquement le maître IDCDeWatcherLe noeud estSlave, Services fournis par le maître

b) Le réseau primaire et de secours n'est pas disponible ,Aveca) Même traitement

Quatre centres à deux endroits

file

Le programme est le plus adaptable , Mais le nombre de salles d'ordinateurs est également plus élevé .

1、 Déploiement groupé de trois centres dans la même ville , Simplifier la stratégie de synchronisation , Fonctionnement simple ,Disponibilité des données、 Haute cohérence

2、 La défaillance d'un seul centre n'affecte pas le Service de données

3、 Shenzhen production Cluster three Center duozhuo

4、 Toute la ville peut être commutée manuellement

Soutien périphérique

PourTDSQL Développeur et o & M de DBADis, Ses installations de soutien 、Maintenabilité、 La transparence est essentielle ,.Parce que c'est ce qui détermine s'ils peuvent trouver le problème à temps, Apporter rapidement des changements et des réponses aux problèmes .Alors...TDSQL Après deux ans de production , Fournir un système complet de soutien périphérique ,Par exemple:

file

1) Système de secours à froid .Basé surHDFS Ou un autre système de fichiers distribués , Sauvegarde automatique possible , Récupération en un clic .

2)File d'attente des messages.Basé surKafkaSur mesureBinlogServices d'abonnement. Basé sur cette file d'attente de messages ,TDSQLSont également disponiblesSQLAudit、 Synchronisation Multisource ( Les données de la même structure de tableau sont fusionnées en un seul tableau )Autres services.

3)Gestion des ressources.Basé surcgroupOui.TDSQL Exemple d'Orchestration , Améliorer l'utilisation des ressources des machines .

4)OSS.C'est exact.TDSQLToutes les opérations de, Par exemple, expansion de la capacité 、Sauvegarde、Reprise、Commutation manuelle、Application(Modifier/Supprimer) Exemple, etc. , Sont fournis uniformément HTTPInterface, Peut être automatisé efficacement , Réduire le risque d'exploitation et d'entretien de la viande humaine .

5)Acquisition de données.TDSQL Tous les états ou données opérationnels internes , Peut être collecté en temps réel ,Les entreprises peuvent effectuer des analyses personnalisées basées sur ces données ou construire des plateformes de surveillance des opérations.

6)Plate - forme de surveillance.C'est - à - dire qu'une grande partie du travail est confiée au personnel de développement des affaires et d'exploitation et d'entretien, Amarrage du système de surveillance auto - construit , Peut également être utilisé directement TDSQL Système de surveillance autonome ( Doit être déployé séparément ).

7)Plate - forme de gestion. Basé sur les modules ci - dessus ,TDSQL Plate - forme de gestion des opérations ( Code de la plate - forme intérieure Red Rabbit ),DBAIls veulent donc aussi adopter une architecture distribuée pour résoudre ce problème, Plus besoin de se connecter en arrière - plan .

8) Module audit .Le module d'audit recueille et analyse les journaux sur le comportement des utilisateurs en matière d'accès à la base de données, Utilisé pour aider les clients à produire des rapports de conformité après coup 、 Origine de l'accident ,En même temps, renforcer l'enregistrement du comportement du réseau de bases de données internes et externes, Améliorer la sécurité des actifs de données .

Ces modules peuvent être librement combinés , Pas de forte dépendance , Le personnel d'exploitation et d'entretien peut également passer par TDSQLL'interface fournie par l'entreprise se connecte à sa plate - forme existante(Comme la surveillance、Alarmes、 Audit, etc. ).

À la fin

TDSQLTout le chemin,Dans la fiabilité、Disponibilité、Performance、Extensibilité、Des réalisations marquantes ont été réalisées dans des domaines tels que les installations de soutien, Mais c'est loin d'être l'expérience utilisateur ultime . Par exemple, nous avons positionné OLTPBase de données, Convient aux scénarios de transactions courtes à haute concurrence ,Mais les clients ont parfois besoin de courir un peu dans la base de donnéesOLAPFonctionnement, On peut faire ça? ?Comment faire?L'optimisation des performances a donc toujours été l'une de nos tâches les plus prioritaires, Dans le futur développement du matériel, , On peut y arriver? ? Ces défis sont nombreux. , Le développement de la base de données est un long chemin ,Avec tout le monde.

版权声明
本文为[Tencent Cloud Database]所创,转载请带上原文链接,感谢
https://chowdera.com/2021/09/20210914162435306i.html

随机推荐