Auf dieser Seite wird beschrieben, wie Sie die maximale Commit-Verzögerung (Schreibverzögerung) konfigurieren, um den Schreibdurchsatz in Spanner zu optimieren.
Übersicht
Um die Datenkonsistenz zu gewährleisten, sendet Spanner Schreibanfragen an alle abstimmenden Replikate in der Datenbank. Dieser Replikationsprozess kann einen erheblichen Rechenaufwand erfordern. Weitere Informationen finden Sie unter Replikation.
Durch durchsatzoptimierte Schreibvorgänge können Sie diese Rechenkosten amortisieren, indem Sie mehrere Schreibvorgänge gleichzeitig ausführen. Dazu führt Spanner eine kleine Verzögerung ein und sammelt eine Gruppe von Schreibvorgängen, die an dieselben Teilnehmer der Abstimmung gesendet werden müssen. Durch die Ausführung von Schreibvorgängen auf diese Weise können erhebliche Durchsatzverbesserungen erzielt werden, allerdings auf Kosten einer leicht erhöhten Latenz.
Standardverhalten
Wenn Sie keine Commit-Verzögerungszeit festlegen, kann Spanner eine kleine Verzögerung für Sie festlegen, wenn es davon ausgeht, dass sich die Kosten Ihrer Schreibvorgänge so amortisieren lassen.
Gängige Anwendungsfälle
Sie können die Verzögerungszeit Ihrer Schreibanfragen je nach Anwendungsanforderungen manuell festlegen. Sie können Commit-Verzögerungen auch für Anwendungen deaktivieren, die sehr latensempfindlich sind, indem Sie die maximale Commit-Verzögerungszeit auf 0 ms festlegen.
Wenn Sie eine latenztolerante Anwendung haben und den Durchsatz optimieren möchten, können Sie mit einer längeren Commit-Verzögerung den Durchsatz deutlich verbessern, während die Latenz für jede Schreiboperation höher ist. Wenn Sie beispielsweise eine große Menge an Daten per Bulk-Ladevorgang hochladen und es für die Anwendung nicht wichtig ist, wie schnell Spanner einzelne Daten schreibt, können Sie die Commit-Verzögerung auf einen längeren Wert wie 100 ms festlegen. Wir empfehlen, mit einem Wert von 100 ms zu beginnen und ihn dann nach Bedarf nach oben oder unten anzupassen, bis die Latenz und der Durchsatz Ihren Anforderungen entsprechen. Für die meisten Anwendungen eignet sich ein Wert zwischen 20 ms und 100 ms am besten.
Wenn Sie eine latenzempfindliche Anwendung haben, ist Spanner standardmäßig auch latenzempfindlich. Bei Spitzenlasten kann Spanner eine kleine Verzögerung einrichten. Sie können den Wert auf 0 ms festlegen, um zu ermitteln, ob die reduzierte Latenz auf Kosten eines erhöhten Durchsatzes für Ihre Anwendung angemessen ist.
Verzögerungen für gemischte Commits festlegen
Sie können für Teilmengen Ihrer Schreibvorgänge unterschiedliche maximale Commit-Verzögerungen konfigurieren. In diesem Fall verwendet Spanner die kürzeste Verzögerungszeit, die für die Schreibvorgänge konfiguriert ist. Wir empfehlen jedoch, für die meisten Anwendungsfälle einen einzelnen Wert auszuwählen, da dies zu einem vorhersehbareren Verhalten führt.
Beschränkungen
Sie können eine Commit-Verzögerung zwischen 0 und 500 ms festlegen. Wenn Sie eine Commit-Verzögerung von mehr als 500 ms festlegen, wird ein Fehler ausgegeben.
Maximale Commit-Verzögerung für Commit-Anfragen festlegen
Der Parameter „max commit delay“ ist Teil der Methode CommitRequest
. Sie können über die RPC API, die REST API oder die Cloud Spanner-Clientbibliothek auf diese Methode zugreifen.
Go
Node.js
Python
Ruby
Schreiblatenz überwachen
Sie können die CPU-Auslastung und die Latenz von Spanner über dieGoogle Cloud -Konsole überwachen. Wenn Sie eine längere Verzögerungszeit für Ihre Schreibanfragen festlegen, sinkt die CPU-Auslastung möglicherweise, während die Latenz zunimmt. Weitere Informationen zur Latenz bei Spanner-Anfragen finden Sie unter Latenz der Spanner API-Anfrage erfassen und visualisieren.