Auf dieser Seite wird beschrieben, wie Sie die maximale Commit-Verzögerungszeit (Schreibverzögerung) konfigurieren, um den Schreibdurchsatz in Spanner zu optimieren.
Übersicht
Um die Datenkonsistenz zu gewährleisten, sendet Spanner Schreibanfragen an alle votierenden Replikate in der Datenbank. Dieser Replikationsprozess kann Rechenaufwand verursachen. Weitere Informationen finden Sie unter Replikation.
Durchsatzoptimierte Schreibvorgänge bieten die Möglichkeit, diese Rechenkosten zu amortisieren, indem eine Gruppe von Schreibvorgängen zusammen ausgeführt wird. Dazu führt Spanner eine kurze Verzögerung ein und sammelt eine Gruppe von Schreibvorgängen, die an dieselben abstimmenden Teilnehmer gesendet werden müssen. Wenn Schreibvorgänge auf diese Weise ausgeführt werden, kann der Durchsatz erheblich verbessert werden, allerdings auf Kosten einer leicht erhöhten Latenz.
Standardverhalten
Wenn Sie keine Commit-Verzögerungszeit festlegen, kann Spanner eine kurze Verzögerung für Sie festlegen, wenn dadurch die Kosten für Ihre Schreibvorgänge amortisiert werden.
Gängige Anwendungsfälle
Sie können die Verzögerungszeit Ihrer Schreibanfragen je nach den Anforderungen Ihrer Anwendung manuell festlegen. Sie können Commit-Verzögerungen auch für Anwendungen deaktivieren, die sehr latenzempfindlich 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 die Commit-Verzögerungszeit verlängern. Dadurch wird der Durchsatz deutlich verbessert, aber die Latenz für jeden Schreibvorgang erhöht sich. Wenn Sie beispielsweise eine große Menge an Daten im Bulk-Verfahren laden und es für die Anwendung nicht wichtig ist, wie schnell Spanner einzelne Daten schreibt, können Sie die Commit-Verzögerungszeit auf einen längeren Wert wie 100 ms festlegen. Wir empfehlen, mit einem Wert von 100 ms zu beginnen und ihn dann nach oben und unten anzupassen, bis die Kompromisse zwischen Latenz und Durchsatz Ihren Anforderungen entsprechen. Für die meisten Anwendungen ist ein Wert zwischen 20 ms und 100 ms am besten geeignet.
Wenn Sie eine latenzempfindliche Anwendung haben, ist Spanner standardmäßig ebenfalls latenzempfindlich. Wenn Sie eine unregelmäßige Arbeitslast haben, kann Spanner eine kurze Verzögerung festlegen. Sie können einen Wert von 0 ms festlegen, um zu ermitteln, ob die reduzierte Latenz auf Kosten eines erhöhten Durchsatzes für Ihre Anwendung angemessen ist.
Gemischte Commit-Verzögerungszeiten festlegen
Sie können für Teilmengen Ihrer Schreibvorgänge unterschiedliche maximale Commit-Verzögerungszeiten konfigurieren. In diesem Fall verwendet Spanner die kürzeste für die Schreibvorgänge konfigurierte Verzögerungszeit. 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ögerungszeit 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 für die maximale Commit-Verzögerung ist Teil der Methode CommitRequest
. Sie können auf diese Methode über die RPC API, die REST API oder die Cloud Spanner-Clientbibliothek zugreifen.
C#
Go
Java
Node.js
Python
Ruby
Schreiblatenz überwachen
Sie können die CPU-Auslastung und Latenz von Spanner mit derGoogle 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 von Spanner API-Anfragen erfassen und visualisieren.