Replikation

Auf dieser Seite wird beschrieben, wie Daten in Spanner repliziert werden. Die verschiedenen Cloud Spanner-Replikattypen und ihre Rollen bei Lese- und Schreibvorgängen. und die Vorteile der Replikation.

Übersicht

Spanner repliziert automatisch auf Byteebene. Wie beschrieben in Life of Spanner Reads and Writes, nutzt es diese Erkenntnisse. im zugrunde liegenden Dateisystem, auf dem sie basiert. 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 Byte-Ebene aufbaut, bietet Spanner auch repliziert Daten, um die zusätzlichen Vorteile der Datenverfügbarkeit und geografischer Standort. Grundsätzlich sind alle Daten in Spanner in Zeilen gegliedert sind. Spanner erstellt mehrere Kopien oder „Replikate“, der Zeilen und speichert diese Replikate dann an verschiedenen . Spanner verwendet ein synchrones, Paxos-basiertes Replikationsschema, In diesem Modus stimmen abstimmende Replikate über jede Schreibanfrage ab. bevor der Schreibvorgang festgeschrieben wird. Diese Eigenschaft der global synchronen Replikation können Sie die aktuellsten Daten von beliebigen Spanner-Replikat mit Lese-/Schreibzugriff oder schreibgeschütztes Replikat.

Spanner erstellt Replikate jedes Datenbank-Splits. Ein 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 unter Informationen zu Schemas.

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 Leseanforderung kann dagegen von jedem nicht schreibgeschützten oder schreibgeschützten Replikat verarbeitet werden, ohne dass dieses mit dem Leader kommunizieren muss. Falls jedoch ein starker Lesevorgang angefordert wird, wird der Leader üblicherweise herangezogen, um sicherzustellen, dass das schreibgeschützte Replikat alle aktuellen Mutationen empfangen hat.

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. 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 Basiskonfigurationen bilden behoben wurden. Grundlegende regionale Instanzkonfigurationen verwenden nur nicht schreibgeschützte Replikate. Base Dual-Region-Instanzkonfigurationen verwenden Lese-/Schreib-Replikate und Zeugenreplikaten, während Basiskonfigurationen für multiregionale Instanzen eine Kombination aller drei Replikattypen verwenden. Sie können benutzerdefinierte und fügen Sie weitere schreibgeschützte Replikate für regionale und multiregionale Instanzkonfigurationen.

In der folgenden Tabelle sind die Typen der Spanner-Replikate und ihre Eigenschaften:

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 einer benutzerdefinierten Instanzkonfiguration.

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.
  • Sie sind der einzige Typ, der in Einzelregion-Instanzen verwendet wird.

Schreibgeschützte Replikate

Schreibgeschützte Replikate unterstützen nur Lesevorgänge, aber keine Schreibvorgänge. Diese Replikate benötigen für Führungskräfte stimmen oder Schreibarbeit leisten, sodass Sie Ihre Lesekompetenz 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 aus Lese-/Schreibvorgängen repliziert wird. Replikaten.
  • Sie verarbeiten Lesevorgänge.
  • Nehmen Sie nicht an der Abstimmung teil, um Schreibvorgänge zu festigen. Daher besitzt der Speicherort der schreibgeschützten Replikate keinen Einfluss auf die Schreiblatenz.
  • Wenn es sich um das nächste Replikat Ihrer Anwendung handelt, kann das schreibgeschützte Replikat stellen in der Regel veraltete Lesevorgänge bereit, ohne dass ein Umlauf zur Standardeinstellung erforderlich ist. führende Region bei einer Veralterung von mindestens 15 Sekunden. Sie können auch Verwenden Sie gerichtete Lesevorgänge, um schreibgeschützte Transaktionen und einzelne Lesevorgänge an eine bestimmten Replikattyp oder einer bestimmten Region in einer multiregionalen Instanzkonfiguration. Weitere Informationen finden Sie unter Richte Lesevorgänge.

    Starke Lesevorgänge erfordern möglicherweise einen Umlauf zum Leader-Replikat. Der Hin- und Rückflug Verhandeln des Zeitstempels und nicht des Versands der tatsächlichen Daten Leader. 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 in der Im Abschnitt „Lesevorgänge“:

  • Sie können nicht als Leader fungieren.

Sie können eine benutzerdefinierte regionale oder multiregionale Instanzkonfiguration erstellen. und optionale schreibgeschützte Replikate hinzufügen, um Lesevorgänge zu skalieren und veraltete Daten mit niedriger Latenz zu unterstützen gelesen wird. Sie können Standorte hinzufügen, die unter Optionale Region aufgeführt sind. als optionales schreibgeschütztes Replikat. Wenn Sie den ausgewählten schreibgeschützten Modus nicht sehen, Replikatstandort haben, können Sie eine neue optionale, schreibgeschützte Replikatregion anfordern. Hinweis dass Sie die Replikationstopologie der Basisinstanz nicht ändern können Konfigurationen, die festgelegt sind.

Für alle optionalen schreibgeschützten Replikate gelten die Rechenkapazität und der Speicher Kosten. Das Hinzufügen schreibgeschützter Replikate zu einer benutzerdefinierten Die Instanzkonfiguration ändert die Spanner-SLAs nicht der Instanzkonfiguration. Wenn Sie ein schreibgeschütztes Replikat zu einem der sich auf einem anderen Kontinent als die führende Region befindet, empfehlen wir, mindestens zwei schreibgeschützte Replikate hinzufügen. Dadurch wird eine niedrige Leselatenz aufrechterhalten falls eines der schreibgeschützten Replikate ausfällt.

Wenn Sie schreibgeschützte Replikate hinzufügen, bietet das Leader-Replikat mehr Replikationslast, die sich auf die Leistung auswirken kann. Als Best Practice sollten Sie Leistungsarbeitslasten in Nicht-Produktionsinstanzen in der benutzerdefinierten Instanz Konfiguration. Weitere Informationen finden Sie im Abschnitt Interregionale Latenz und Durchsatz Benchmark-Dashboard für den Medianwert Daten zur interregionalen Latenz. Wenn Sie beispielsweise eine benutzerdefinierte Instanz Konfiguration mit der multiregionalen Basiskonfiguration eur6 und einem optionalen schreibgeschützten Replikat in us-east1 die erwartete hohe Leselatenz für eine in us-east1 bei etwa 100 Millisekunden liegt, weil die Umlaufzeit zum führende Region in europe-west4. Veraltete Lesevorgänge mit ausreichender Veralterung und sind daher viel schneller. Sie können auch die Latenzzeit nach Transaktionstyp, um Latenzdaten für Transaktionen vom Typ Lese-/Schreibmodus und schreibgeschützte Transaktionen anzeigen.

Eine Anleitung 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 nur von multiregionalen Instanzen verwendet.
  • Sie bewahren keine vollständige Kopie der Daten auf.
  • Stellen Sie keine Lesevorgänge bereit.
  • 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 multiregionalen Konfigurationen erstellen.

Bei Schreibvorgängen

Client-Schreibanfragen werden immer zuerst am Leader-Replikat verarbeitet, selbst wenn Es gibt ein Replikat, das nicht als Leader fungiert, das näher am Client liegt das Replikat geografisch vom Client entfernt ist. Wenn Sie einen multiregionalen Standort verwenden Instanzkonfiguration und Ihre Clientanwendung befindet sich in einer Region führen, nutzt Spanner ein Leader-fähiges Routing, um Lese-/Schreibvorgänge um die Latenz in Ihrer Datenbank zu reduzieren. Weitere Informationen finden Sie unter Leader-aware-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 diesen Gleichzeitigkeitsmodi erhalten 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 das Leader-Replikat sein, wenn sich kein anderes Replikat näher an dem Client befindet, der die Leseanfrage ausgegeben hat.