La replicazione incrociata in MySQL, un metodo per copiare i dati in modo asincrono da un database primario in una regione geografica a uno o più database di replica in diverse regioni, influisce sulle prestazioni attraverso vari fattori legati alla latenza di rete, al ritardo della replica, alla distribuzione del carico di lavoro e all'allocazione delle risorse.
latenza di rete e ritardo di replica
L'impatto delle prestazioni primario deriva dall'aumento della latenza di rete tra le regioni. Poiché la replicazione incrociata si basa sull'invio degli eventi di registro binario contenenti modifiche ai dati rispetto ai collegamenti della rete a lunga distanza, la distanza fisica può causare un ritardo di propagazione significativo. Ciò porta ad un aumento del ritardo di replica, in cui le repliche rientrano nel primario nell'applicare le modifiche. Il ritardo di replica può influire sulla coerenza delle letture nelle applicazioni che si basano su dati aggiornati dalle repliche e può aumentare il tempo di failover negli scenari di ripristino di emergenza.
Il ritardo della replica si verifica a causa di molteplici cause:
- Il server primario che non ha inviato modifiche abbastanza rapidamente.
- La rete ritarda nel trasferimento delle modifiche.
- L'incapacità del server di replica di applicare rapidamente le modifiche.
Il ritardo totale osservato è dovuto sia alla latenza di rete che di elaborazione. Gli strumenti di monitoraggio tracciano metriche come il ritardo di rete e il ritardo di replica per diagnosticare i colli di bottiglia.
replica server impatto e utilizzo delle risorse
Sul lato della replica, l'applicazione delle modifiche dalla primaria coinvolge il lavoro di I/O e CPU, che può influire sulle prestazioni complessive della replica, soprattutto se gestisce anche le query di lettura dell'applicazione contemporaneamente. L'elevato carico di replica può portare a contese e saturazione delle risorse, rallentando i tempi di risposta alla query sulla replica.
L'uso di thread di replica parallela sulla replica può alleviare alcuni ritardi applicazione applicando più transazioni contemporaneamente, migliorando la velocità di replica. Inoltre, la configurazione di opzioni come il lavaggio ad alte prestazioni (regolazione `innodb_flush_log_at_trx_ccommimit` e` sync_binlog`) può migliorare l'efficienza di applicazione della scrittura e della replica.
Impatto sulle prestazioni del server primario
Il server primario comporta anche un impatto di carico dovuto alla replica. Deve scrivere tutte le modifiche al registro binario per le repliche a valle, che è un sovraccarico aggiuntivo in cima alla normale elaborazione transazionale. Con molte repliche collegate, in particolare la regione incrociata in cui variano il trasgressore e l'affidabilità della rete, il primario può sperimentare un aumento del consumo di risorse mantenendo flussi di replica.
Un modo per mitigare questo è una gerarchia di replica, in cui i replicati primari a una singola replica intermedia, che poi si trasforma in repliche aggiuntive, riducendo il carico sul primario.
Distribuzione e scalabilità del carico di lavoro
La replica cross-region supporta il ridimensionamento dei carichi di lavoro di lettura più vicini agli utenti in diverse regioni globali fornendo repliche di lettura vicino alla loro posizione, migliorando le latenze dell'utente finale. Tuttavia, la scrittura di carichi di lavoro converge ancora sull'istanza principale, che può diventare un collo di bottiglia.
Transazioni di grandi dimensioni sul primario che aggiorna molte righe possono causare picchi nei dati di replica, portando a esplosioni di replica applicare il lavoro sulle repliche e causare il ritardo di replica. La rottura di transazioni di grandi dimensioni in lotti più piccoli aiuta a ridurre la deformazione di replica.
Considerazioni sullo schema e sul design delle query
Le tabelle senza chiavi primarie o con operazioni di DDL pesanti possono degradare le prestazioni di replica o causare blocchi esclusivi, problemi di latenza aggravano tra le regioni. L'uso della replica basata su righe, che richiede chiavi primarie per l'efficienza, è in genere raccomandato.
I livelli di isolamento delle query sulle repliche influenzano anche la velocità dell'applicazione di replica, con livelli di isolamento più bassi (ad esempio, `lettura commessa`) generalmente consentendo un applicazione più rapida di eventi di replica rispetto ai livelli più alti che mantengono blocchi più a lungo.
Network and Costo Considerazioni
La replica incrociata prevede il trasferimento di dati attraverso le reti del provider cloud, che possono sostenere costi e limiti di larghezza di banda. Questo deve essere spiegato nel design e può limitare indirettamente la velocità e la frequenza di replica.
Riepilogo degli impatti delle prestazioni
- Aumento del ritardo di replica a causa della distanza fisica e della latenza di rete.
- Un consumo di risorse più elevato sulla registrazione binaria e sulle repliche per applicare le modifiche.
- potenziale degrado delle prestazioni delle query sulle repliche se la replica è ad alta intensità di risorse.
- Il bilanciamento del carico attraverso le gerarchie di replica può ridurre i colli di bottiglia.
- Impatto di grandi transazioni e progettazione dello schema sull'efficienza di replicazione.
- I compromessi con il costo di trasferimento dei dati e il throughput in ambienti cloud.