Questa pagina descrive come configurare il tempo massimo di ritardo di commit (scrittura) per e 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ò comportare un ovverhead computazionale. Per ulteriori informazioni, consulta la sezione Replicazione.
Le scritture ottimizzate per il throughput offrono la possibilità di ammortizzare questi costi di calcolo mediante l'esecuzione collettiva di un gruppo di scritture. Per farlo, Spanner introduce un piccolo ritardo e raccoglie un gruppo di scritture che devono essere inviati agli stessi partecipanti alla votazione. L'esecuzione delle scritture in questo modo può fornire notevoli miglioramenti della velocità effettiva a scapito di un leggero aumento della latenza.
Comportamento predefinito
Se non imposti un tempo di ritardo del commit, Spanner potrebbe impostarne uno minimo se ritiene che questo possa ammortizzare il costo delle tue scritture.
Casi d'uso comuni
Puoi impostare manualmente il ritardo delle richieste di scrittura in base al le esigenze dell'applicazione. Puoi anche disattivare i ritardi di commit per le applicazioni molto sensibili alla latenza impostando il tempo di ritardo di commit massimo su 0 ms.
Se hai un'applicazione tollerante alla latenza e vuoi ottimizzare la velocità effettiva, impostare un tempo di ritardo del commit più lungo migliora notevolmente la velocità effettiva, con una latenza più elevata per ogni scrittura. Ad esempio, se carichi collettivamente una gran quantità di dati e l'applicazione non è interessata alla velocità con cui Spanner scrive i singoli dati, puoi impostare il tempo di ritardo del commit su un valore più lungo, ad esempio 100 ms. Ti consigliamo di iniziare con un valore di 100 ms, quindi di regolarlo verso l'alto e verso il basso finché i compromessi tra latenza e throughput non soddisfano le tue esigenze. Per la maggior parte delle applicazioni, un valore compreso tra 20 ms e 100 ms funziona meglio.
Se hai un'applicazione sensibile alla latenza, Spanner è anche sensibili alla latenza per impostazione predefinita. Se il carico di lavoro è ridotto, Spanner potrebbe impostare un piccolo ritardo. Puoi provare a impostare un di 0 ms per determinare se la latenza ridotta, a scapito del costo dell'aumento, è ragionevole per la tua applicazione.
Imposta tempi di ritardo per commit misti
Puoi configurare tempi di ritardo di commit massimo diversi per sottoinsiemi di scritture. In questo caso, Spanner utilizza il tempo di ritardo più breve configurato per l'insieme di scritture. Tuttavia, consigliamo di scegliere un singolo valore per la maggior parte dei casi poiché ciò si traduce in un comportamento più prevedibile.
Limitazioni
Puoi impostare un tempo di ritardo del commit compreso tra 0 e 500 ms. Impostazione dei ritardi di commit se vengono superati i 500 ms, viene generato un errore.
Imposta il ritardo massimo di commit nelle richieste di commit
Il parametro di ritardo del commit massimo fa parte del metodo CommitRequest
. Puoi accedere
questo metodo con l'API RPC,
API REST,
o usando la libreria client di Cloud Spanner.
Vai
Node.js
Python
Ruby
Monitora la latenza delle richieste di scrittura
Puoi monitorare l'utilizzo della CPU e la latenza di Spanner utilizzando la console Google Cloud. Quando imposti un tempo di ritardo più lungo per le richieste di scrittura, prendi in considerazione la potenziale diminuzione dell'utilizzo della CPU, mentre la latenza aumenta. Per saperne di più sulla latenza Richieste Spanner, consulta Acquisisci e visualizza la latenza delle richieste dell'API Spanner.