Questa pagina descrive come configurare il tempo di ritardo massimo di commit (scrittura) per ottimizzare la velocità effettiva di scrittura in Spanner.
Panoramica
Per garantire la coerenza dei dati, Spanner invia richieste di scrittura a tutte le repliche di voto nel database. Questo processo di replica può avere un overhead computazionale. Per ulteriori informazioni, consulta Replica.
Le scritture ottimizzate per la velocità effettiva consentono di ammortizzare questi costi di calcolo eseguendo contemporaneamente un gruppo di scritture. Per farlo, Spanner introduce un piccolo ritardo e raccoglie un gruppo di scritture che devono essere inviate agli stessi partecipanti alla votazione. L'esecuzione delle scritture in questo modo può fornire miglioramenti sostanziali della velocità effettiva a scapito di una latenza leggermente superiore.
Comportamento predefinito
Se non imposti un tempo di ritardo del commit, Spanner potrebbe impostare un piccolo ritardo se ritiene che questo ammortizzerà il costo delle scritture.
Casi d'uso comuni
Puoi impostare manualmente il ritardo delle richieste di scrittura in base alle esigenze della tua applicazione. Puoi anche disabilitare i ritardi di commit per le applicazioni altamente sensibili alla latenza impostando il tempo massimo di ritardo del commit su 0 ms.
Se disponi di un'applicazione con tolleranza di latenza e vuoi ottimizzare la velocità effettiva, impostare un ritardo di commit più lungo migliora significativamente la velocità effettiva, aumentando la latenza per ogni scrittura. Ad esempio, se stai eseguendo il caricamento in blocco di una grande quantità di dati e l'applicazione non è interessata alla velocità con cui Spanner scrive singoli dati, puoi impostare il ritardo di commit su un valore più lungo, ad esempio 100 ms. Ti consigliamo di iniziare con un valore di 100 ms e quindi di apportare modifiche in alto e in basso finché i compromessi di latenza e velocità effettiva non soddisfano le tue esigenze. Per la maggior parte delle applicazioni, un valore compreso tra 20 ms e 100 ms è più adatto.
Se hai un'applicazione sensibile alla latenza, anche quella di Spanner è sensibile alla latenza per impostazione predefinita. Se il carico di lavoro è Piccoli, Spanner potrebbe impostare un piccolo ritardo. Puoi provare a impostare un valore di 0 ms per determinare se la latenza ridotta a costo di una maggiore velocità effettiva è ragionevole per la tua applicazione.
Imposta tempi di ritardo per commit misti
Puoi configurare diversi tempi di ritardo massimi del commit sui sottoinsiemi delle tue scritture. Se lo fai, Spanner utilizza il tempo di ritardo più breve configurato per il set di scritture. Tuttavia, consigliamo di scegliere un singolo valore per la maggior parte dei casi d'uso, in quanto ciò si traduce in un comportamento più prevedibile.
Limitazioni
Puoi impostare un tempo di ritardo di commit compreso tra 0 e 500 ms. Se imposti ritardi di commit superiori a 500 ms, viene generato un errore.
Imposta ritardo massimo di commit nelle richieste di commit
Il parametro di ritardo massimo commit fa parte del metodo CommitRequest
. Puoi accedere a questo metodo con l'API RPC, l'API REST o utilizzando la libreria client di Cloud Spanner.
Go
Node.js
Python
Ruby
Monitora la latenza delle richieste di scrittura
Puoi monitorare l'utilizzo e la latenza della CPU di Spanner utilizzando la console Google Cloud. Quando imposti un tempo di ritardo più lungo per le richieste di scrittura, è previsto un possibile calo dell'utilizzo della CPU, mentre la latenza aumenta. Per saperne di più sulla latenza nelle richieste Spanner, consulta Acquisire e visualizzare la latenza delle richieste API Spanner.