Auf dieser Seite wird beschrieben, wie Sie die maximale Commit-Verzögerung (Schreibverzögerung) konfigurieren, um den Schreibdurchsatz in Spanner zu optimieren.
Überblick
Spanner sendet Schreibanfragen an alle votierenden Replikate in der Datenbank, um die Datenkonsistenz sicherzustellen. Dieser Replikationsprozess kann einen Rechenaufwand verursachen. Weitere Informationen finden Sie unter Replikation.
Durchsatzoptimierte Schreibvorgänge bieten die Möglichkeit, diese Berechnungskosten zu amortisieren, indem eine Gruppe von Schreibvorgängen gemeinsam ausgeführt wird. Dazu führt Spanner eine kleine Verzögerung ein und erfasst eine Gruppe von Schreibvorgängen, die an dieselben abstimmbaren Teilnehmer gesendet werden müssen. Das Ausführen von Schreibvorgängen auf diese Weise kann zu erheblichen Durchsatzverbesserungen auf Kosten einer etwas höheren Latenz führen.
Standardverhalten
Wenn Sie keine Commit-Verzögerungszeit festlegen, stellt Spanner möglicherweise eine kleine Verzögerung für Sie fest, wenn davon auszugehen ist, dass sich dadurch die Kosten Ihrer Schreibvorgänge amortisieren lassen.
Gängige Anwendungsfälle
Sie können die Verzögerungszeit Ihrer Schreibanfragen abhängig von den Anforderungen Ihrer Anwendung manuell festlegen. Sie können Commit-Verzögerungen auch für Anwendungen deaktivieren, die sehr latenzempfindlich sind. Dazu legen Sie die maximale Commit-Verzögerungszeit auf 0 ms fest.
Wenn Sie eine latenztolerante Anwendung haben und den Durchsatz optimieren möchten, können Sie mit einer längeren Commit-Verzögerungszeit den Durchsatz erheblich verbessern und gleichzeitig eine höhere Latenz für jeden Schreibvorgang nach sich ziehen. Wenn Sie beispielsweise eine große Datenmenge im Bulk laden 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 dann Anpassungen vorzunehmen, bis die Kompromisse bei Latenz und Durchsatz Ihre Anforderungen erfüllen. Für die meisten Anwendungen ist ein Wert zwischen 20 ms und 100 ms am besten geeignet.
Wenn Sie eine latenzempfindliche Anwendung haben, ist die von Spanner standardmäßig ebenfalls latenzempfindlich. Bei einer Arbeitslast mit Lastspitzen kann Spanner eine kleine Verzögerung festlegen. Sie können mit einem Wert von 0 ms experimentieren, um festzustellen, ob die reduzierte Latenz auf Kosten eines erhöhten Durchsatzes für Ihre Anwendung angemessen ist.
Gemischte Verzögerungszeiten für Commits festlegen
Sie können verschiedene maximale Commit-Verzögerungszeiten für Teilmengen Ihrer Schreibvorgänge konfigurieren. In diesem Fall verwendet Spanner die kürzeste Verzögerungszeit, die für den Satz von Schreibvorgängen konfiguriert ist. Wir empfehlen jedoch, für die meisten Anwendungsfälle einen einzelnen Wert auszuwählen, da dies zu vorhersehbarerem Verhalten führt.
Beschränkungen
Sie können eine Commit-Verzögerung zwischen 0 und 500 ms festlegen. Wenn Sie Commit-Verzögerungen über 500 ms festlegen, tritt ein Fehler auf.
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 mit der RPC API, der REST API oder der Cloud Spanner-Clientbibliothek zugreifen.
Einfach loslegen (Go)
Node.js
Python
Ruby
Latenz von Schreibanfragen überwachen
Sie können die CPU-Auslastung und -Latenz von Spanner mit der Google Cloud Console überwachen. Wenn Sie eine längere Verzögerungszeit für Ihre Schreibanfragen festlegen, können Sie davon ausgehen, dass die CPU-Auslastung abnimmt, während die Latenz zunimmt. Weitere Informationen zur Latenz bei Spanner-Anfragen finden Sie unter Latenz von Spanner API-Anfragen erfassen und visualisieren.