Français

Découvrez les bases de données NewSQL, conçues pour les transactions ACID distribuées et évolutives des applications mondiales. Apprenez-en sur leur architecture, leurs avantages et leurs cas d'usage.

NewSQL : Mise à l'échelle des transactions ACID distribuées pour les applications mondiales

Dans le monde actuel axé sur les données, les applications exigent à la fois scalabilité et cohérence des données. Les bases de données relationnelles traditionnelles, bien qu'offrant de solides garanties ACID (Atomicité, Cohérence, Isolation, Durabilité), peinent souvent à évoluer horizontalement. Les bases de données NoSQL, en revanche, offrent la scalabilité mais sacrifient généralement les propriétés ACID au profit de la performance. Les bases de données NewSQL apparaissent comme un juste milieu, visant à combiner le meilleur des deux mondes : la scalabilité et la performance du NoSQL avec les garanties ACID des SGBDR traditionnels.

Qu'est-ce que le NewSQL ?

Le NewSQL n'est pas une technologie de base de données unique, mais plutôt une catégorie de systèmes de gestion de bases de données relationnelles (SGBDR) modernes qui cherchent à fournir les mêmes garanties ACID que les systèmes de bases de données traditionnels tout en atteignant la scalabilité des systèmes NoSQL. Ils sont conçus pour gérer le traitement de transactions à haut volume et de grandes quantités de données, ce qui les rend adaptés aux applications modernes et distribuées.

Essentiellement, les systèmes NewSQL sont conçus pour surmonter les limitations des SGBDR traditionnels lorsqu'ils fonctionnent à grande échelle. Ils répartissent les données et le traitement sur plusieurs nœuds, permettant une scalabilité horizontale, tout en garantissant que les transactions sont traitées de manière fiable et cohérente.

Caractéristiques clés des bases de données NewSQL

Approches architecturales du NewSQL

Plusieurs approches architecturales sont utilisées dans les implémentations de bases de données NewSQL. Ces approches diffèrent dans la manière dont elles atteignent la scalabilité et les garanties ACID.

1. Architecture sans partage (Shared-Nothing)

Dans une architecture sans partage (shared-nothing), chaque nœud du cluster dispose de ses propres ressources indépendantes (CPU, mémoire, stockage). Les données sont partitionnées et réparties sur ces nœuds. Cette architecture offre une excellente scalabilité car l'ajout de nœuds supplémentaires augmente de manière linéaire la capacité du système. Google Spanner et CockroachDB sont des exemples de bases de données NewSQL utilisant une architecture sans partage.

Exemple : Imaginez une plateforme de commerce électronique mondiale avec des utilisateurs dans le monde entier. En utilisant une base de données NewSQL sans partage, la plateforme peut répartir ses données sur plusieurs centres de données géographiquement distribués. Cela garantit une faible latence pour les utilisateurs dans différentes régions et offre une haute disponibilité en cas de pannes régionales.

2. Architecture à mémoire partagée (Shared-Memory)

Dans une architecture à mémoire partagée, tous les nœuds du cluster partagent le même espace mémoire. Cela permet un accès rapide aux données et une communication rapide entre les nœuds. Cependant, cette architecture est généralement limitée en termes de scalabilité car la mémoire partagée devient un goulot d'étranglement à mesure que le nombre de nœuds augmente. Des exemples de bases de données (bien que n'étant pas strictement NewSQL au sens le plus pur, mais présentant des approches de mise à l'échelle transactionnelle similaires) tirant parti de cette architecture incluent certains clusters de bases de données en mémoire.

3. Architecture à disque partagé (Shared-Disk)

Dans une architecture à disque partagé, tous les nœuds du cluster partagent les mêmes périphériques de stockage. Cela simplifie la gestion des données et offre une haute disponibilité. Cependant, cette architecture peut également constituer un goulot d'étranglement car tous les nœuds doivent accéder au même stockage. Certains systèmes SGBDR traditionnels, lorsqu'ils sont en cluster, peuvent être considérés dans le contexte plus large du traitement transactionnel évolutif, même s'ils ne sont pas étiquetés comme NewSQL.

Transactions ACID dans un environnement distribué

Le maintien des propriétés ACID dans un environnement distribué est un défi complexe. Les bases de données NewSQL emploient diverses techniques pour garantir la cohérence et la fiabilité des données.

1. Validation en deux phases (2PC)

Le 2PC est un protocole largement utilisé pour garantir l'atomicité sur plusieurs nœuds. Dans le 2PC, un nœud coordinateur coordonne la transaction entre tous les nœuds participants. La transaction se déroule en deux phases : une phase de préparation et une phase de validation. Pendant la phase de préparation, chaque nœud se prépare à valider la transaction et en informe le coordinateur. Si tous les nœuds sont prêts, le coordinateur leur ordonne de valider. Si un nœud ne parvient pas à se préparer, le coordinateur ordonne à tous les nœuds d'annuler.

Défi : Le 2PC peut être lent et introduire un point de défaillance unique (le coordinateur). Par conséquent, les systèmes NewSQL modernes préfèrent souvent des protocoles alternatifs.

2. Algorithmes de consensus Paxos et Raft

Paxos et Raft sont des algorithmes de consensus qui permettent à un système distribué de s'accorder sur une seule valeur, même en présence de pannes. Ces algorithmes sont souvent utilisés dans les bases de données NewSQL pour garantir la cohérence des données et la tolérance aux pannes. Ils offrent une alternative plus robuste et efficace au 2PC.

Exemple : CockroachDB utilise Raft pour répliquer les données sur plusieurs nœuds et s'assurer que toutes les répliques sont cohérentes. Cela signifie que même si un nœud tombe en panne, le système peut continuer à fonctionner sans perte de données ni incohérence.

3. L'API TrueTime de Spanner

Google Spanner utilise un système d'horodatage globalement distribué et cohérent de manière externe appelé TrueTime. TrueTime fournit une limite supérieure garantie sur l'incertitude de l'horloge, permettant à Spanner d'atteindre une forte cohérence entre des centres de données géographiquement distribués. Cela permet à Spanner d'effectuer des transactions distribuées à l'échelle mondiale avec une faible latence et un débit élevé.

Importance : TrueTime est un composant crucial de l'architecture de Spanner, car il permet à la base de données de maintenir la sérialisabilité, le niveau d'isolation le plus fort, même dans un environnement distribué.

Avantages de l'utilisation des bases de données NewSQL

Cas d'utilisation des bases de données NewSQL

Les bases de données NewSQL conviennent à un large éventail d'applications qui nécessitent à la fois scalabilité et cohérence des données. Voici quelques cas d'utilisation courants :

1. Applications financières

Les applications financières, telles que les systèmes bancaires et les processeurs de paiement, exigent des garanties ACID strictes pour assurer l'exactitude et la fiabilité des transactions financières. Les bases de données NewSQL peuvent fournir la scalabilité et la performance nécessaires pour gérer le traitement de transactions à haut volume tout en maintenant l'intégrité des données.

Exemple : Une passerelle de paiement mondiale qui traite des millions de transactions par jour a besoin d'une base de données capable de gérer le volume de trafic élevé et de garantir que toutes les transactions sont traitées correctement. Une base de données NewSQL peut fournir la scalabilité et les garanties ACID nécessaires pour répondre à ces exigences.

2. Plateformes de commerce électronique

Les plateformes de commerce électronique doivent gérer un grand nombre d'utilisateurs et de transactions simultanés. Les bases de données NewSQL peuvent fournir la scalabilité et la performance nécessaires pour gérer cette charge de travail tout en garantissant que les commandes sont traitées correctement et que les stocks sont mis à jour avec précision.

Exemple : Un grand détaillant en ligne a besoin d'une base de données capable de gérer les pics de charge pendant les saisons de magasinage des fêtes. Une base de données NewSQL peut s'adapter pour répondre à la demande accrue et garantir que toutes les commandes sont traitées sans erreur.

3. Applications de jeux

Les jeux en ligne massivement multijoueurs (MMO) doivent gérer un grand nombre de joueurs simultanés et une logique de jeu complexe. Les bases de données NewSQL peuvent fournir la scalabilité et la performance nécessaires pour gérer cette charge de travail tout en garantissant que l'état du jeu est cohérent et que les joueurs ne peuvent pas tricher.

Exemple : Un jeu MMO populaire a besoin d'une base de données capable de gérer des millions de joueurs simultanés et de garantir que toutes les données des joueurs sont cohérentes. Une base de données NewSQL peut fournir la scalabilité et les garanties ACID nécessaires pour répondre à ces exigences.

4. Gestion de la chaîne d'approvisionnement

Les chaînes d'approvisionnement modernes sont distribuées à l'échelle mondiale et nécessitent une visibilité en temps réel sur les niveaux de stock, l'état des commandes et le suivi des expéditions. Les bases de données NewSQL peuvent fournir la scalabilité et la performance nécessaires pour gérer le grand volume de données généré par les systèmes de la chaîne d'approvisionnement tout en garantissant que les données sont exactes et cohérentes.

5. Plateformes IoT (Internet des Objets)

Les plateformes IoT génèrent des quantités massives de données à partir d'appareils connectés. Les bases de données NewSQL peuvent être utilisées pour stocker et analyser ces données, fournissant des informations sur les performances des appareils, les modèles d'utilisation et les problèmes potentiels. Elles garantissent également que les données IoT critiques, telles que les lectures de capteurs et les commandes de contrôle, sont stockées et traitées de manière fiable.

Exemples de bases de données NewSQL

Voici quelques exemples notables de bases de données NewSQL :

Choisir la bonne base de données NewSQL

Le choix de la bonne base de données NewSQL pour votre application dépend de plusieurs facteurs, notamment :

Il est important d'évaluer soigneusement vos besoins et de comparer les fonctionnalités et les performances des différentes bases de données NewSQL avant de prendre une décision. Envisagez d'exécuter des benchmarks pour tester les performances des différentes bases de données avec votre charge de travail spécifique.

L'avenir du NewSQL

Les bases de données NewSQL sont une technologie en évolution rapide. À mesure que les volumes de données et la complexité des applications continuent de croître, la demande de bases de données évolutives et cohérentes ne fera qu'augmenter. Nous pouvons nous attendre à voir de nouvelles innovations dans les architectures, les algorithmes et les outils NewSQL dans les années à venir.

Parmi les futures tendances potentielles du NewSQL, on peut citer :

Conclusion

Les bases de données NewSQL offrent une solution convaincante pour les applications qui exigent à la fois scalabilité et cohérence des données. En combinant le meilleur des bases de données SGBDR traditionnelles et NoSQL, les bases de données NewSQL fournissent une plateforme puissante pour construire des applications modernes et distribuées. Alors que la demande de bases de données évolutives et cohérentes continue de croître, le NewSQL est destiné à jouer un rôle de plus en plus important dans l'avenir de la gestion des données.

Que vous construisiez un système financier, une plateforme de commerce électronique, une application de jeu ou une plateforme IoT, les bases de données NewSQL peuvent vous aider à relever les défis de l'échelle et de la complexité tout en garantissant l'intégrité et la fiabilité de vos données. Envisagez d'explorer le monde du NewSQL pour voir comment il peut profiter à votre organisation.