Comment Aerospike atteint une faible latence et une forte cohérence sur plusieurs sites

Dans l'économie numérique mondiale d'aujourd'hui, les entreprises doivent disposer d'applications toujours actives et fonctionnant en temps réel. Des applications telles que les systèmes de paiement numérique, le suivi des stocks en temps réel et les jeux en ligne reposent sur des systèmes résilients avec un accès rapide aux centres de données répartis dans le monde entier. Pour des applications comme celles-ci, il est inacceptable de compromettre la cohérence des données pour toute transaction, que les données soient stockées dans un cloud privé, un cloud public ou toute combinaison des deux.

Mais l'exploitation d'un cluster dans des centres de données ou des régions cloud répartis géographiquement entraîne des coûts élevés, des incohérences de données et une résilience limitée. Pour surmonter ces obstacles, Aerospike a développé une fonctionnalité de clustering multisite dans Aerospike Database 5 qui permet aux entreprises d'exploiter un seul cluster de bases de données sur plusieurs sites sans risquer de perdre des données ou de restreindre la disponibilité des données.

Le clustering multi-site fournit une architecture de données active-active

Une architecture de données active-active couvre plusieurs régions et services les demandes d'application à tous les emplacements. Chaque emplacement est «actif». Les enregistrements de données sont répliqués à travers les régions afin que les lectures puissent être traitées à n'importe quel endroit. Dans certaines architectures, les écritures d'un enregistrement de données donné ne sont gérées qu'à un seul emplacement maître; d'autres architectures permettent à de telles écritures de se produire à plusieurs endroits. Chaque approche a ses défis en termes de disponibilité, de cohérence et de performance.

Par le passé, les organisations faisaient des compromis entre la cohérence des données et la haute performance. Aerospike Database 5 avec clustering multi-site élimine ces compromis. Le clustering multi-site combine une forte cohérence avec la prise en charge d'applications transactionnelles distribuées à l'échelle mondiale qui peuvent assouplir la latence d'écriture, qui varie en fonction de la distance entre les sites d'un cluster, tout en offrant une latence de lecture inférieure à la milliseconde à un débit élevé.

Fonctionnement des clusters multi-sites Aerospike

Dans la figure 1 ci-dessous, un seul cluster Aerospike est disposé sous la forme de trois racks répartis sur trois sites. Les sites peuvent être un centre de données, une région cloud ou même différentes régions cloud telles qu'Amazon Web Services, Google Cloud ou Microsoft Azure. Les applications identifient cet environnement distribué géographiquement comme un système unique et les demandes de lecture / écriture sont gérées de manière transparente. Pour des performances optimales, lit le processus localement tandis que les écritures routent vers des emplacements distants si nécessaire.

Aerospike

La détection des racks est une capacité importante qui permet aux clusters Aerospike de se déployer dans des centres de données distants ou des régions cloud. Dans un cluster multi-site, la fonction de détection des racks d'Aerospike permet de stocker des répliques d'enregistrements de données regroupés dans des partitions de données sur différents racks. Grâce aux paramètres de facteur de réplication des données, chaque rack peut être configuré pour stocker une copie complète de toutes les données afin de maximiser la disponibilité des données et les performances de lecture locales.

Dans la figure 1, un facteur de réplication de 3 indique à Aerospike de conserver des copies de toutes les données dans chaque rack. Un seul nœud dans un rack du cluster conserve une copie principale d'une partition de données donnée à tout moment; d'autres racks ont des nœuds qui stockent des répliques de cette partition. Aerospike synchronise la copie principale avec les répliques sur différents racks / nœuds.

Aerospike maintient une liste pour garder une trace de ces informations. Dans la figure 1, la copie principale de la liste se trouve sur le nœud 3 du rack 2 et les répliques sont sur le nœud 1 du rack 1 et le nœud 2 du rack 3. Ce cluster préservera une forte cohérence, évitera la perte de données et préservera la disponibilité sur un seul. échecs du site.

Comment les clusters multi-sites Aerospike récupèrent après une panne

Les catastrophes naturelles, les pannes de courant, les pannes matérielles et les pannes de réseau peuvent rendre inaccessibles un ou plusieurs composants d'un cluster multirégional. La résilience est une exigence critique de toute base de données opérationnelle multirégionale.

Dans la figure 2 ci-dessous, une panne de réseau a provoqué la déconnexion du rack 3 des racks 1 et 2 pour créer un scénario de partage du cerveau, c'est-à-dire lorsque certaines parties du système ne sont pas en mesure de communiquer avec d'autres. Le rack 3 est toujours en place, les trois nœuds formant un sous-cluster. Dans ce cas, les racks 1 et 2 découvrent facilement que le rack 3 est sorti et forment un cluster avec six nœuds. Cela devient le sous-cluster majoritaire et a une disponibilité totale car il a deux copies de données dans le sous-cluster. Une troisième copie est automatiquement créée à chaque écriture pendant que le système procède à des transactions.

Aerospike

Chaque transaction qui a été validée dans le rack 3 est également validée dans le rack 1 et le rack 2, et ce n'est qu'alors que les transactions vont avancer. Les applications locales sur le rack 1 et le rack 2 continuent de fonctionner correctement. Les applications locales sur Rack 3 deviendront indisponibles. En utilisant l'algorithme de cohérence forte d'Aerospike, Rack 3 peut déterminer à partir d'une combinaison de la liste et du fait qu'il peut parler aux Racks 1 et 2, qu'il s'agit d'un sous-cluster minoritaire et qu'il n'est pas disponible pour les lectures et les écritures d'application. Et lorsque le rack 3 revient ou est reconnecté aux deux autres racks, les copies supplémentaires des données qui ont été créées dans les racks 1 et 2 pour les écritures qui ont eu lieu seront fusionnées dans le rack 3 afin qu'il puisse commencer à reprendre sa partie de la charge. Tout cela se passe sans intervention de l'opérateur,en préservant une forte cohérence sans perte de données et une disponibilité complète pendant l'événement de split-brain.

Répondre aux exigences d'une économie mondiale toujours active

La nature permanente de l'économie numérique mondiale d'aujourd'hui exige des systèmes de base de données qui fonctionnent sans interruption ni risque de perte de données. La capacité de clustering multi-site d'Aerospike permet aux organisations de déployer un cluster unique sur plusieurs sites avec une disponibilité 24/7 et une forte cohérence. De nouveaux types d'applications impliquant des transactions distribuées globalement sont désormais possibles à implémenter.

Srini Srinivasan est fondateur et directeur des produits chez Aerospike, un leader des solutions de données NoSQL en temps réel de nouvelle génération. Il possède deux décennies d'expérience dans la conception, le développement et l'exploitation d'infrastructures à grande échelle. Il possède également plus de 30 brevets dans les technologies de bases de données, Web, mobiles et systèmes distribués. Il a cofondé Aerospike pour résoudre les problèmes de mise à l'échelle qu'il a rencontrés avec Internet et les systèmes mobiles alors qu'il était directeur principal de l'ingénierie chez Yahoo.

-

Le New Tech Forum offre un lieu pour explorer et discuter des technologies d'entreprise émergentes avec une profondeur et une ampleur sans précédent. La sélection est subjective, basée sur notre choix des technologies que nous pensons importantes et qui intéressent le plus les lecteurs. n'accepte pas les supports marketing pour la publication et se réserve le droit de modifier tout le contenu fourni. Envoyez toutes vos demandes à [email protected]