MongoDB

MongoDB ist die führende Open-Source, Document Datenbank die für einfache Entwicklung und Skalierung aber auch für Big Data Szenarien entwickelt wurde.

MongoDB Atlas Global Clusters

Marc-David Militz
Experte
Die Welt ist groß und das ist ein Problem für TCP Pakete, die unsere Abfragen und Ergebnis, über das Internet um die Welt transportieren. Da man an Konstanten, wie die Lichtgeschwindigkeit, gebunden ist kann eine Abfrage auf einer Datenbank, die am anderen Ende der Welt steht, ganz schön lahm sein. Aus diesem Grund gibt es "MongoDB Atlas Global Clusters". Dank der verteilten Architektur werden die Daten näher zum Benutzer gebracht, was in schnelleren weltweit laufenden Anwendungen resultiert.

  • Wie funktioniert das?

    • Beginnen wir mit einer kleinen Auffrischung. Sharding ermöglicht es Daten, zwischen Replica Sets aufzuteilen, die einen Sharding Cluster bilden, der auf einem Sharding Key basiert. Dieser basiert auf einem (oder mehreren) Feldern, die ausgewählt wurden um die Verteilung der Dokumente, über die einzelnen Replica Sets, zu bestimmen. Auf dieser Grundlage basiert die Fähigkeit von MongoDB, horizontal zu skalieren.

      Um die Arbeitsweise eines "Global Cluster" vereinfacht zu erklären kann man sagen, daß der Sharding Key einen Prefix mit einer Ortsinformation bekommt ohne sich dabei auf ein bestimmtes Replica Set festzulegen. Man kann sich ganz einfach die ISO-Codes der Länder vorstellen und diese mit einer Regionen-basierten Karte der Welt verknüpfen. Wenn man nun in einer dieser Regionen ein Replica Set, innerhalb eines Globalen Clusters, erstellt so wird dieses mit einem dieser ISO-Codes assoziiert. Fügt man nun ein neues Dokument ein, so muß dieses ein Feld mit einer passenden Ortsangabe enthalten. Beim Schreiben wird der Request nun zum nächstgelegenen Replica Set innerhalb der entsprechenden Region geroutet. Genauso werden Abfragen zum nächstgelegenen Replica Set in der Region geroutet. Von diesem grundlegenden Prinzip gibt es viele verschiedene Nuancen. Die Details dazu gibt es, in der offiziellen Global Clusters Dokumentation.
      https://docs.atlas.mongodb.com/global-clusters/index.html

      • Wie wird die ganze Welt abgedeckt?

        • Woher weiß man, wo man seine Replica Sets erstellen soll? An dieser Stelle hilft einem eine Funktion des MongoDB Verwaltungsoberfläche. Hier gibt es eine interaktive Latenz-Karte, auf der angezeigt wird, welche Regionen man mit welchen Replica Sets derzeit abdeckt und wie die Latenzen zwischen diesen Replica Sets sind. Man kann nun ausprobieren wie ein zusätzliches Replica Set in einer Region die Latenzzeiten verändern würde. Führt das zur gewünschten Verbesserung, kann man das Replica Set erstellen und MongoDB migriert die entsprechenden Daten dort hin. Hat eine Region sehr viele Daten oder muß mit sehr vielen Abfragen zurecht kommen, so kann mit weiteren Replica Sets innerhalb einer Region für Entlastung gesorgt werden.

          • Was passiert bei Abfragen auf Daten in mehreren Regionen?

            • Das MongoDB Sharding hat einen etablierten Mechanismus um Abfragen über mehrere Replica Sets zu verteilen und die Ergebnisse zurück zu liefern. Wenn dabei die Latenz oder auch die Last zu einem Faktor werden sollte, dann hat man die Möglichkeit Read-Nodes mit den Daten einer Region in eine ausgewählte Region zu setzen.

              • Findet man so ein Feature auch bei anderen Datenbanken?

                • Zumindest mal nach meinem aktuellen Erkenntnisstand ist so ein Feature, derzeit, nur bei MongoB Atlas zu finden. Es gibt andere Datenbanken, die Bausteine bieten, mit denen man ein weltumspannendes Netzwerk von Datenbanken erstellen kann und darin Read- und Write-Operationen routen kann. Aber der MongoDB Atlas Global Cluster ist bereits deployed, läuft und erstaunlich einfach in Betrieb zu nehmen. Und es ist auch nur ein Feature MongoDB Atlas.

                  Wer mehr über MongoDB und auch MongoDB Atlas erfahren möchte, dem sei der Qualiero "MongoDB Entscheider-Workshop" empfohlen.
                  https://www.qualiero.com/lerninhalte/classroom-trainings/mongodb-entscheider-workshop.html

Neueste Mitgliederaktivitäten

Tags

Diesen Community Beitrag weiterempfehlen