Replica e prestazioni

L'abilitazione della replica influisce sulle prestazioni di un'istanza Bigtable. L'effetto è positivo per alcune metriche e negativo per altre. Prima di decidere di abilitare la replica, dovresti comprendere i potenziali impatti sulle prestazioni.

Velocità effettiva di lettura

La replica può migliorare la velocità effettiva di lettura, soprattutto quando utilizzi il routing multi-cluster. Inoltre, la replica può ridurre la latenza di lettura posizionando i dati di Bigtable più vicino agli utenti dell'applicazione.

Velocità effettiva di scrittura

Sebbene la replica possa migliorare la disponibilità e le prestazioni di lettura, non aumenta la velocità effettiva di scrittura. Una scrittura in un cluster deve essere replicata in tutti gli altri cluster dell'istanza. Di conseguenza, ogni cluster consuma risorse della CPU per eseguire il pull delle modifiche dagli altri cluster. La velocità effettiva di scrittura potrebbe diminuire perché la replica richiede che ogni cluster esegua operazioni aggiuntive.

Ad esempio, supponi di avere un'istanza a cluster singolo e che il cluster abbia tre nodi:

Istanza a cluster singolo con 3 nodi

Se aggiungi nodi al cluster, l'effetto sulla velocità effettiva di scrittura è diverso rispetto all'abilitazione della replica aggiungendo un secondo cluster di 3 nodi all'istanza.

Aggiunta di nodi al cluster originale: puoi aggiungere tre nodi al cluster, per un totale di sei nodi. La velocità effettiva di scrittura per l'istanza raddoppia, ma i dati dell'istanza sono disponibili in una sola zona:

Istanza a cluster singolo con 6 nodi

Con la replica: in alternativa, puoi aggiungere un secondo cluster con 3 nodi, per un totale di 6 nodi. L'istanza ora scrive ogni pezzo di dati due volte: quando la scrittura viene ricevuta per la prima volta e di nuovo quando viene replicata nell'altro cluster. La velocità effettiva di scrittura non aumenta e potrebbe diminuire, ma il vantaggio di avere i dati disponibili in due zone diverse:

Istanza a due cluster con 6 nodi

In questi esempi, l'istanza a cluster singolo può gestire il doppio della velocità effettiva di scrittura che l'istanza replicata è in grado di gestire, anche se i cluster di ogni istanza hanno un totale di 6 nodi.

Latenza di replica

Quando utilizzi il routing multi-cluster, la replica per Bigtable è coerente alla fine. Come regola generale, è necessario più tempo per replicare i dati su una distanza maggiore. I cluster replicati in regioni diverse hanno in genere una latenza di replica maggiore rispetto ai cluster replicati nella stessa regione.

Utilizzo dei nodi

Come spiegato in Velocità effettiva di scrittura, quando un'istanza utilizza la replica, ogni cluster nell'istanza deve gestire il lavoro di replica oltre al carico che riceve dalle applicazioni. Per questo motivo, un cluster in un'istanza multi-cluster spesso ha bisogno di più nodi rispetto a un cluster in un'istanza a cluster singolo con traffico simile.

Profili app e routing del traffico

A seconda del tuo caso d'uso, utilizzerai uno o più profili di app per instradare il traffico di Bigtable. Ogni profilo di applicazione utilizza il routing a cluster singolo o multi-cluster. La scelta del routing può influire sulle prestazioni.

Il routing multi-cluster può ridurre al minimo la latenza. Un profilo di app con routing multi-cluster instrada automaticamente le richieste al cluster più vicino in un'istanza dal punto di vista dell'applicazione e le scritture vengono quindi replicate negli altri cluster dell'istanza. La scelta automatica della distanza più breve genera la latenza più bassa possibile.

Un profilo di app che utilizza il routing a cluster singolo può essere ottimale per determinati casi d'uso, come la separazione dei carichi di lavoro o l'inserimento di una semantica lettura dopo scrittura su un singolo cluster, ma non riduce la latenza come avviene per il routing a cluster multipli.

Per capire come configurare i profili dell'app per questi e altri casi d'uso, consulta Esempi di impostazioni di replica.

Eliminazione degli intervalli di righe

Se possibile, evita di eliminare un intervallo di righe in un'istanza che utilizza la replica perché l'operazione è lenta e l'utilizzo della CPU aumenta durante l'operazione.

Passaggi successivi