Replikation

Auf dieser Seite wird beschrieben, wie Daten in Spanner repliziert werden, welche verschiedenen Typen von Spanner-Replikaten es gibt, welche Rollen sie bei Lese-/Schreibvorgängen spielen und was die Vorteile der Replikation sind.

Übersicht

Spanner repliziert automatisch auf Byteebene. Wie im Artikel Lebensdauer von Lese- und Schreibvorgängen in Cloud Spanner beschrieben, nutzt Cloud Spanner diese Funktion des zugrunde liegenden Dateisystems. Spanner schreibt Datenbankmutationen in Dateien in diesem Dateisystem, Das Dateisystem übernimmt die Replizierung und Wiederherstellung der Dateien, Maschine oder Laufwerk ausfällt.

Obwohl das zugrunde liegende verteilte Dateisystem, auf dem Spanner basiert, bereits Replikation auf Byte-Ebene bietet, repliziert auch Spanner Daten, um Ihnen die zusätzlichen Vorteile von Datenverfügbarkeit und geografischer Präsenz zu bieten. Grundsätzlich sind alle Daten in Spanner in Zeilen gegliedert sind. Spanner erstellt mehrere Kopien oder Replikate dieser Zeilen und speichert sie dann an verschiedenen geografischen . Spanner verwendet eine synchrone, Paxos-basierte Replikation Schema, bei dem abstimmende Replikate bei jedem Schreibvorgang eine Abstimmung vornehmen , bevor der Schreibvorgang festgeschrieben wird. Mit dieser weltweit synchronen Replikation können Sie die aktuellsten Daten aus allen nicht schreibgeschützten und schreibgeschützten Spanner-Replikaten auslesen.

Spanner erstellt Replikate jedes Datenbank-Splits. Split enthält einen Bereich zusammenhängender Zeilen, wobei die Zeilen nach Primärschlüssel geordnet sind. Alle Daten in einem Split werden zusammen im Replikat gespeichert. Spanner stellt jedes Replikat aus einem unabhängigen Fehler bereit. . Weitere Informationen finden Sie in der Schemaübersicht.

Ein Satz von Splits wird mithilfe von Paxos gespeichert und repliziert. In jedem Paxos-Replikatset wird eines der Replikate dazu bestimmt, als Leader zu fungieren. Leader-Replikate sind für das Verarbeiten von Schreibvorgängen verantwortlich. Eine Leseanfrage kann dagegen von jedem nicht schreibgeschützten und jedem schreibgeschützten Replikat verarbeitet werden, ohne dass es mit dem Leader kommunizieren muss. Wird ein starker Lesevorgang angefordert, wird der Leader in der Regel konsultiert, um sicherzustellen, dass das schreibgeschützte Replikat hat alle aktuellen Mutationen erhalten. Um die Änderungsrate und die Datenmenge zu überwachen das von Ihrem Leader-Replikat in das regionenübergreifende Replikat repliziert wird Informationen zu Replikaten in der Instanzkonfiguration finden Sie unter Datenreplikation überwachen.

Vorteile der Spanner-Replikation

Zu den Vorteilen der Spanner-Replikation gehören:

  • Datenverfügbarkeit: Wenn Sie mehrere Kopien Ihrer Daten haben, sind diese für Clients, die die Daten auslesen möchten, besser verfügbar. Außerdem kann Spanner bereitstellen, auch wenn einige der Replikate nicht verfügbar sind, nur eine Mehrheit der votierenden Replikate erforderlich ist, um einen Schreibvorgang festschreiben zu können.

  • Geografischer Standort: Nutzer können Daten zwischen verschiedenen Regionen und Kontinenten mit Spanner bedeuten, dass Daten geografisch näher an den Nutzern und Diensten die sie benötigen.

  • Einheitliche Datenbankerfahrung: Spanner kann eine Datenbankerfahrung dank der synchronen Replikation und weltweit strikte Konsistenz.

  • Vereinfachte Anwendungsentwicklung: Da Spanner ACID-konform und weltweit strikte Konsistenz bieten, in Cloud Spanner keine zusätzliche Logik den Umgang mit Eventual Consistency ermöglichen. Entwicklung und nachfolgende Wartung.

Replikattypen

Spanner hat drei Replikattypen: nicht schreibgeschützte Replikate, schreibgeschützte Replikate und Zeugenreplikaten. Regionen und Replikation Topologien, die Basisinstanzkonfigurationen bilden wurden behoben:

Sie können benutzerdefinierte Instanzkonfigurationen erstellen und zusätzliche schreibgeschützte Replikate für regionale und multiregionale Instanz Konfigurationen.

In der folgenden Tabelle sind die Typen von Spanner-Replikaten und ihre Eigenschaften zusammengefasst:

Replikattyp Kann abstimmen Kann Leader werden Kann Lesevorgänge verarbeiten Kann das Replikat manuell konfigurieren
Nicht schreibgeschützt Ja Ja Ja no
Schreibgeschützt Nein Nein Ja Ja*
Zeugen Ja Nein Nein no

* Weitere Informationen finden Sie unter Instanz mit benutzerdefinierter Instanzkonfiguration erstellen.

Nicht schreibgeschützte Replikate

Nicht schreibgeschützte Replikate unterstützen sowohl Lese-, als auch Schreibvorgänge. Diese Replikate besitzen folgende Eigenschaften:

  • Sie bewahren eine vollständige Kopie Ihrer Daten auf.
  • Sie verarbeiten Lesevorgänge.
  • Sie können abstimmen, ob ein Schreibvorgang festgeschrieben werden soll.
  • Sie wirken beim Bestimmen des Leaders mit.
  • Sie können als Leader fungieren.
  • sind der einzige Replikattyp, der in regionalen Instanzen verwendet wird.

Schreibgeschützte Replikate

Schreibgeschützte Replikate unterstützen nur Lesevorgänge, aber keine Schreibvorgänge. Diese Replikate für Führungskräfte stimmen oder Schreibarbeit leisten, sodass Sie Ihren Lesefluss ohne die für Schreibvorgänge erforderliche Quorumgröße zu erhöhen. Schreibgeschützte Replikate zeichnen sich durch Folgendes aus:

  • Sie bewahren eine vollständige Kopie Ihrer Daten auf, die vom Leader repliziert wird nicht schreibgeschütztes Replikat.
  • Sie stimmen nicht darüber ab, ob Schreibvorgänge festgeschrieben werden sollen. Daher besitzt der Speicherort der schreibgeschützten Replikate keinen Einfluss auf die Schreiblatenz.
  • sind nicht berechtigt, eine führende Variante zu werden.
  • Sie verarbeiten Lesevorgänge.
  • Wenn es sich um das Replikat handelt, das Ihrer Anwendung am nächsten liegt, kann es in der Regel veraltete Lesevorgänge verarbeiten, ohne dass eine Umlaufkommunikation mit der führenden Region erforderlich ist, vorausgesetzt, dass die Veralterung mindestens 15 Sekunden beträgt. Sie können auch Verwenden Sie gerichtete Lesevorgänge, um schreibgeschützte Transaktionen und einzelne Lesevorgänge an eine einen bestimmten Replikattyp oder eine Region in einer multiregionalen Instanzkonfiguration. Weitere Informationen finden Sie unter Direkte Lesevorgänge.

    Starke Lesevorgänge erfordern möglicherweise eine Umlaufkommunikation mit dem Leader-Replikat. Der Rückweg dient nur zum Verhandeln des Zeitstempels, nicht zum Senden der tatsächlichen Daten vom Leiter. Die Zeitstempelaushandlung ist ein CPU-effizienter Vorgang und in der Regel sind die Daten bereits unterwegs. Diese Kommunikation wird bearbeitet automatisch vom System.

    Weitere Informationen zu veralteten und starken Lesevorgängen finden Sie im Abschnitt In-Lesevorgänge.

Optionale Replikate mit Lesezugriff

Sie können eine benutzerdefinierte regionale oder mehrregionale Instanzkonfiguration erstellen und optionale Replikate mit Lesezugriff hinzufügen, um Lesevorgänge zu skalieren und veraltete Lesevorgänge mit niedriger Latenz zu unterstützen. Sie können Standorte, die unter Optionale Region aufgeführt sind, als optionales schreibgeschütztes Replikat hinzufügen. Wenn der von Ihnen ausgewählte Speicherort für das schreibgeschützte Replikat nicht angezeigt wird, können Sie eine neue optionale Region für schreibgeschützte Replikate anfordern.

Alle optionalen schreibgeschützten Replikate unterliegen Rechenkapazität, Speicher und Replikationskosten. Das Hinzufügen schreibgeschützter Replikate zu einer benutzerdefinierten Die Instanzkonfiguration ändert die Spanner-SLAs nicht der Instanzkonfiguration. Wenn Sie einem Kontinent, der sich auf einem anderen Kontinent als die führende Region befindet, ein schreibgeschütztes Replikat hinzufügen möchten, empfehlen wir mindestens zwei schreibgeschützte Replikate. So wird eine geringe Leselatenz bei einem Ausfall eines der schreibgeschützten Replikate aufrechterhalten.

Testen Sie als Best Practice Leistungsarbeitslasten in Nicht-Produktionsinstanzen in die benutzerdefinierte Instanzkonfiguration. Weitere Informationen finden Sie in den Dashboard für Benchmarks für interregionale Latenz und Durchsatz für den Medianwert der interregionalen Latenzdaten. Wenn Sie beispielsweise eine benutzerdefinierte Instanzkonfiguration mit der multiregionalen Basiskonfiguration eur6 und einem optionalen schreibgeschützten Replikat in us-east1 erstellen, beträgt die erwartete Latenz für starke Lesevorgänge für einen Client in us-east1 aufgrund der RTT zur Führungsregion in europe-west4 etwa 100 Millisekunden. Veraltete Lesevorgänge mit ausreichender Veralterung und sind daher viel schneller. Sie können auch die Informationen und Transaktionsstatistiken Transaktionen identifizieren, die zu hohen Latenzen führen

Eine Anleitung zum Hinzufügen optionaler schreibgeschützter Replikate finden Sie unter Benutzerdefinierte Instanzkonfiguration erstellen

Zeugenreplikate

Zeugenreplikate unterstützen keine Lesevorgänge, nehmen aber an der Abstimmung über den Commit teil. schreibt. Sie erleichtern das Erreichen von Schreibquoren, ohne dass die Speicher- und Rechenressourcen benötigt werden, die nicht schreibgeschützte Replikate erfordern, um eine vollständige Kopie der Daten zu speichern und Lesevorgänge auszuführen. Zeugenreplikate zeichnen sich durch Folgendes aus:

  • Sie werden in Dual- und Multi-Regionen-Instanzen verwendet.
  • Sie bewahren keine vollständige Kopie der Daten auf.
  • Sie verarbeiten keine Lesevorgänge.
  • Sie stimmen darüber ab, ob Schreibvorgänge festgeschrieben werden sollen.
  • Sie wirken beim Bestimmen des Leaders mit, können aber selbst nicht als Leader fungieren.

Die Rolle von Replikaten bei Schreib- und Lesevorgängen

In diesem Abschnitt wird die Rolle von Replikaten bei Spanner-Schreib- und -Schreibvorgängen beschrieben. lesen, was hilfreich ist, um zu verstehen, warum Spanner Zeugenreplikate in Dual-Region- und Multi-Regionen-Konfigurationen.

Bei Schreibvorgängen

Client-Schreibanfragen werden immer zuerst am Leader-Replikat verarbeitet, selbst wenn gibt es ein Replikat, das nicht als Leader fungiert, das näher am Client liegt das Replikat geografisch vom Client entfernt ist. Wenn Sie eine Instanzkonfiguration mit zwei oder mehreren Regionen verwenden und sich Ihre Clientanwendung in einer anderen Region als der führenden Region befindet, verwendet Spanner das Leader-fähige Routing, um Lese-Schreib-Transaktionen dynamisch zu leiten und so die Latenz in Ihrer Datenbank zu reduzieren. Weitere Informationen finden Sie unter Leiter-orientiertes Routing.

Das Leader-Replikat protokolliert den eingehenden Schreibvorgang und leitet ihn parallel an die Replikate weiter, die über diesen Schreibvorgang abstimmen dürfen. Jedes stimmberechtigte Replikat schließt seinen Schreibvorgang ab und teilt dem Leader dann mit, ob der Schreibvorgang festgeschrieben werden soll. Der Schreibvorgang wird festgeschrieben, wenn eine Mehrheit der abstimmenden Replikate (bzw. das Schreibquorum) dafür stimmt, den Schreibvorgang festzuschreiben. Im Hintergrund protokollieren alle verbleibenden Replikate außer den Zeugenreplikaten den Schreibvorgang. Wenn ein nicht schreibgeschütztes oder ein schreibgeschütztes Replikat beim Protokollieren von Schreibvorgängen in Rückstand gerät, kann es die fehlenden Daten von einem anderen Replikat anfordern, damit es eine vollständige, aktuelle Kopie der Daten besitzt.

Bei Lesevorgängen

Für Client-Leseanforderungen wird möglicherweise das Leader-Replikat verwendet bzw. erfordert eine Kommunikation mit diesem. Dies hängt vom Gleichzeitigkeitsmodus der Leseanforderung ab.

  • Lesevorgänge, die Teil einer Lese-Schreib-Transaktion sind, werden vom Leader-Replikat verarbeitet, da das Leader-Replikat die zum Erzwingen der Serialisierbarkeit erforderlichen Sperren beibehält.

  • Einzelne Leseaufrufe (ein Lesevorgang außerhalb des Kontexts einer Transaktion) und Lesevorgänge in schreibgeschützten Transaktionen erfordern möglicherweise eine Kommunikation mit dem Leader. Dies hängt vom Gleichzeitigkeitsmodus des Lesevorgangs ab. Weitere Informationen zu den Gleichzeitigkeitsmodi finden Sie unter Lesetypen.

    • Starke Leseanforderungen können an jedes nicht schreibgeschützte oder schreibgeschützte Replikat gesendet werden. Wenn die Anforderung an ein Replikat gesendet wird, das nicht als Leader fungiert, muss dieses mit dem Leader kommunizieren, um den Lesevorgang ausführen zu können.

    • Veraltete Leseanfragen werden an das am nächsten liegende, verfügbare Replikat mit oder ohne Schreibschutz weitergeleitet, welches so aktuell ist, wie der Zeitstempel der Anforderung es erfordert. Dies kann der Leader-Replikat, wenn das Leader-Replikat dem Client am nächsten ist, hat die Leseanfrage gesendet.

Datenreplikation überwachen

Sie können die Änderungsrate und die Datenmenge überwachen, vom Leader-Replikat zu den regionenübergreifenden Replikaten in Ihrer Instanz Konfiguration. Die Änderungsrate wird in Byte pro Sekunde und die Datenmenge in Byte angegeben. Verwenden Sie dazu den Monitoring-Messwert Zwischen Regionen replizierte Bytes (instance/cross_region_replicated_bytes_count).

So rufen Sie diesen Messwert in der Google Cloud Console auf:

  1. Wechseln Sie in der Google Cloud Console zu Monitoring:

    Zu Monitoring

  2. Wählen Sie im Navigationsmenü Metrics Explorer aus.

  3. Klicken Sie im Feld Messwert auf das Drop-down-Menü Messwert auswählen.

  4. Wählen Sie im Feld Nach Ressourcen- oder Messwertnamen filtern die Option Cloud Spanner-Instanz > Instanz > Zwischen Regionen replizierte Bytes aus und klicken Sie dann auf Übernehmen.

    Dieser Messwert ist nur unter Aktive Messwerte verfügbar, wenn in Ihrer Instanz eine zwischen Regionen laufende Replikation stattfindet. Andernfalls erscheint sie unter Inaktive Messwerte: Standardmäßig werden in der Benutzeroberfläche nur aktive Messwerte gefiltert und angezeigt. Entfernen Sie das Häkchen bei Aktiv, um sowohl aktive als auch inaktive Messwerte zu sehen.

    Das Diagramm zeigt die Änderungsrate (in Byte pro Sekunde) der replizierten Daten in allen Spanner-Instanzen im angegebenen Zeitraum.

  5. Optional: Wenn anstelle der Änderungsrate die replizierte Datenmenge (in Byte) angezeigt werden soll, gehen Sie so vor:

    1. Klicken Sie im Feld Zusammenfassung auf das Drop-down-Menü Summe und wählen Sie Aligner konfigurieren
    2. Klicken Sie im Feld Ausrichtungsfunktion auf das Drop-down-Menü Rate und wählen Sie Delta aus.
    3. Wählen Sie statt „Diagramm“ als Tabellentyp Tabelle oder Beide aus.

      Die Tabelle zeigt die Datenmenge (in Byte), die innerhalb im angegebenen Zeitraum.

  6. Optional: So rufen Sie die Nutzung für eine bestimmte Instanz oder ein bestimmtes Attribut auf:

    1. Verwenden Sie das Feld Filter, um Filter hinzuzufügen, z. B. eine Instanz-ID, eine Datenbank ID, Quellregion, Zielregion oder ein Tag.
    2. Klicken Sie auf Filter hinzufügen, um mehrere Filter hinzuzufügen.

Eine vollständige Liste der Google Cloud-Messwerte finden Sie unter Google Cloud-Messwerte.

Nächste Schritte