Wie Aerospike eine geringe Latenz und eine hohe Konsistenz über mehrere Standorte hinweg erreicht

In der heutigen globalen digitalen Wirtschaft benötigen Unternehmen Anwendungen, die immer aktiv sind und in Echtzeit ausgeführt werden. Anwendungen wie digitale Zahlungssysteme, Bestandsverfolgung in Echtzeit und Online-Spiele basieren auf ausfallsicheren Systemen mit schnellem Zugriff auf weltweit verteilte Rechenzentren. Für Anwendungen wie diese ist es nicht akzeptabel, die Datenkonsistenz für jede Transaktion zu beeinträchtigen, unabhängig davon, ob die Daten in einer privaten Cloud, einer öffentlichen Cloud oder einer Kombination aus beiden gespeichert sind.

Der Betrieb eines Clusters über geografisch verteilte Rechenzentren oder Cloud-Regionen führt jedoch zu hohen Kosten, Dateninkonsistenzen und eingeschränkter Ausfallsicherheit. Um diese Hindernisse zu überwinden, hat Aerospike in Aerospike Database 5 eine Clustering-Funktion für mehrere Standorte entwickelt, mit der Unternehmen einen einzelnen Datenbankcluster an mehreren Standorten betreiben können, ohne Datenverlust zu riskieren oder die Datenverfügbarkeit einzuschränken.

Multi-Site-Clustering bietet eine Aktiv-Aktiv-Datenarchitektur

Eine Aktiv-Aktiv-Datenarchitektur umfasst mehrere Regionen und Dienstanwendungsanforderungen an allen Standorten. Jeder Standort ist "aktiv". Datensätze werden über Regionen hinweg repliziert, sodass Lesevorgänge an jedem Ort verarbeitet werden können. In einigen Architekturen werden Schreibvorgänge eines bestimmten Datensatzes nur an einem einzelnen Master-Speicherort ausgeführt. Andere Architekturen ermöglichen solche Schreibvorgänge an mehreren Stellen. Jeder Ansatz hat seine Herausforderungen in Bezug auf Verfügbarkeit, Konsistenz und Leistung.

In der Vergangenheit haben Unternehmen Kompromisse zwischen Datenkonsistenz und hoher Leistung geschlossen. Aerospike Database 5 mit Multi-Site-Clustering eliminiert diese Kompromisse. Multi-Site-Clustering kombiniert starke Konsistenz mit Unterstützung für global verteilte Transaktionsanwendungen, die die Schreiblatenz verringern können, die je nach Abstand zwischen Standorten eines Clusters variiert, und gleichzeitig eine Leselatenz von weniger als einer Millisekunde bei hohem Durchsatz bieten.

Funktionsweise von Aerospike-Clustern mit mehreren Standorten

In Abbildung 1 unten ist ein einzelner Aerospike-Cluster in Form von drei Racks angeordnet, die auf drei Standorte verteilt sind. Die Websites können ein Rechenzentrum, eine Cloud-Region oder sogar verschiedene Cloud-Regionen wie Amazon Web Services, Google Cloud oder Microsoft Azure sein. Anwendungen identifizieren diese geografisch verteilte Umgebung als ein einziges System, und Lese- / Schreibanforderungen werden nahtlos verarbeitet. Um eine optimale Leistung zu erzielen, werden die Lesevorgänge lokal ausgeführt, während bei Bedarf die Route an entfernte Standorte geschrieben wird.

Aerospike

Die Rack-Erkennung ist eine wichtige Funktion, mit der Aerospike-Cluster in entfernten Rechenzentren oder Cloud-Regionen bereitgestellt werden können. In einem Cluster mit mehreren Standorten können mit der Rack-Erkennungsfunktion von Aerospike Repliken von Datensätzen, die in Datenpartitionen gruppiert sind, auf verschiedenen Racks gespeichert werden. Durch die Einstellungen für den Datenreplikationsfaktor kann jedes Rack so konfiguriert werden, dass eine vollständige Kopie aller Daten gespeichert wird, um die Datenverfügbarkeit und die lokale Leseleistung zu maximieren.

In Abbildung 1 weist ein Replikationsfaktor von 3 Aerospike an, Kopien aller Daten in jedem Rack zu verwalten. Nur ein Knoten in einem Rack des Clusters verwaltet zu einem bestimmten Zeitpunkt eine Masterkopie einer bestimmten Datenpartition. Andere Racks verfügen über Knoten, auf denen Replikate dieser Partition gespeichert sind. Aerospike synchronisiert die Masterkopie mit den Replikaten auf verschiedenen Racks / Knoten.

Aerospike unterhält eine Liste, um diese Informationen zu verfolgen. In Abbildung 1 befindet sich die Dienstplan-Masterkopie auf Knoten 3 von Rack 2 und die Replikate auf Knoten 1 von Rack 1 und Knoten 2 von Rack 3. Dieser Cluster bewahrt eine starke Konsistenz, vermeidet Datenverlust und behält die Verfügbarkeit auf Einzel- Standortfehler.

Wie sich Aerospike-Cluster mit mehreren Standorten nach einem Ausfall erholen

Naturkatastrophen, Stromausfälle, Hardwarefehler und Netzwerkfehler können dazu führen, dass auf eine oder mehrere Komponenten eines Clusters mit mehreren Regionen nicht mehr zugegriffen werden kann. Ausfallsicherheit ist eine wichtige Voraussetzung für jede betriebliche Datenbank mit mehreren Regionen.

In Abbildung 2 unten hat ein Netzwerkfehler dazu geführt, dass Rack 3 von Rack 1 und 2 getrennt wurde, um ein Split-Brain-Szenario zu erstellen, bei dem einige Teile des Systems nicht mit anderen kommunizieren können. Rack 3 ist noch aktiv, und alle drei Knoten bilden einen Subcluster. In diesem Fall stellen die Racks 1 und 2 leicht fest, dass Rack 3 ausgefallen ist, und bilden einen Cluster mit sechs Knoten. Dies wird zum Haupt-Subcluster und ist vollständig verfügbar, da es zwei Kopien von Daten innerhalb des Subclusters enthält. Bei jedem Schreibvorgang wird automatisch eine dritte Kopie erstellt, während das System Transaktionen durchführt.

Aerospike

Jede Transaktion, die in Rack 3 festgeschrieben wurde, wird auch in Rack 1 und Rack 2 festgeschrieben. Erst dann werden die Transaktionen weitergeleitet. Lokale Apps auf Rack 1 und Rack 2 funktionieren weiterhin einwandfrei. Die lokalen Apps auf Rack 3 sind nicht mehr verfügbar. Mithilfe des Algorithmus für starke Konsistenz von Aerospike kann Rack 3 aus einer Kombination des Dienstplans und der Tatsache, dass es mit den Racks 1 und 2 kommunizieren kann, feststellen, dass es sich um einen Minderheits-Subcluster handelt und für Lese- und Schreibvorgänge von Anwendungen nicht verfügbar ist. Und wenn Rack 3 zurückkommt oder wieder mit den beiden anderen Racks verbunden wird, werden die zusätzlichen Kopien der Daten, die in Racks 1 und 2 für Schreibvorgänge erstellt wurden, wieder in Rack 3 zusammengeführt, damit es seinen Teil übernehmen kann die Ladung. All dies geschieht ohne Eingreifen des Bedieners.Beibehaltung einer starken Konsistenz ohne Datenverlust und vollständige Verfügbarkeit während des Split-Brain-Ereignisses.

Den Anforderungen der ständig laufenden Weltwirtschaft gerecht werden

Die ständige Aktualität der heutigen globalen digitalen Wirtschaft erfordert Datenbanksysteme, die ohne Unterbrechung oder Risiko von Datenverlust funktionieren. Die Clustering-Funktion von Aerospike für mehrere Standorte ermöglicht es Unternehmen, einen einzelnen Cluster an mehreren Standorten mit Verfügbarkeit rund um die Uhr und hoher Konsistenz bereitzustellen. Neue Arten von Anwendungen mit global verteilten Transaktionen können jetzt implementiert werden.

Srini Srinivasan ist Gründer und Chief Product Officer bei Aerospike, einem führenden Anbieter von NoSQL-Datenlösungen der nächsten Generation in Echtzeit. Er verfügt über zwei Jahrzehnte Erfahrung im Entwerfen, Entwickeln und Betreiben hochwertiger Infrastrukturen. Er verfügt außerdem über mehr als 30 Patente für Datenbank-, Web-, Mobil- und verteilte Systemtechnologien. Er war Mitbegründer von Aerospike, um die Skalierungsprobleme zu lösen, die er als Senior Director of Engineering bei Yahoo mit Internet und mobilen Systemen hatte.

- -

Das New Tech Forum bietet einen Ort, an dem Sie neue Unternehmenstechnologien in beispielloser Tiefe und Breite erkunden und diskutieren können. Die Auswahl ist subjektiv, basierend auf unserer Auswahl der Technologien, die wir für wichtig und für die Leser von größtem Interesse halten. akzeptiert keine Marketingmaterialien zur Veröffentlichung und behält sich das Recht vor, alle eingebrachten Inhalte zu bearbeiten. Senden Sie alle Anfragen an [email protected]