Replicarea încrucișată în MySQL, o metodă de copiere a datelor asincronizate dintr-o bază de date primară într-o regiune geografică la una sau mai multe baze de date replicate în diferite regiuni, afectează performanța prin diverși factori legați de latența rețelei, lag de replicare, distribuția volumului de muncă și alocarea resurselor.
Latența rețelei și decalajul de replicare
Impactul principal al performanței rezultă din latența crescută a rețelei între regiuni. Deoarece replicarea încrucișată se bazează pe trimiterea evenimentelor de jurnal binar care conțin modificări de date pe legături de rețea pe distanțe lungi, distanța fizică poate provoca o întârziere semnificativă de propagare. Acest lucru duce la creșterea unui decalaj de replicare, unde replicile se încadrează în spatele primarului în aplicarea modificărilor. Lagul de replicare poate afecta coerența citită în aplicațiile care se bazează pe date actualizate din replici și poate crește timpul de de reîncărcare în scenariile de recuperare a dezastrelor.
Lag -ul de replicare apare din cauza multiplelor cauze:
- Serverul primar care nu trimite modificări suficient de rapid.
- întârzierile rețelei în transferul modificărilor.
- Incapacitatea serverului de replici de a aplica rapid modificările.
Degusul total observat se datorează atât latenței de rețea, cât și a procesului. Instrumentele de monitorizare urmăresc valorile precum decalajul de rețea și decalajul de replică pentru a diagnostica blocajele.
Replica Impactul serverului și utilizarea resurselor
În ceea ce privește replica, aplicarea modificărilor de la primare implică lucrări I/O și CPU, ceea ce poate afecta performanța generală a replicii, mai ales dacă se ocupă și se manipulează simultan interogările de citire a aplicației. Sarcina ridicată de replicare poate duce la conținut și saturație a resurselor, încetinind timpul de răspuns la interogare pe replică.
Utilizarea firelor de replicare paralelă pe replică poate atenua unele dintre întârzierile aplicației prin aplicarea concomitentului mai multor tranzacții, îmbunătățind debitul de replicare. În plus, configurarea opțiunilor, cum ar fi Flushing-ul de înaltă performanță (reglarea `InnoDB_FLUSH_LOG_AT_TRX_COMMIT` și` Sync_binlog` parametrii) pot îmbunătăți eficiența scrierii și replicării.
Impact asupra performanței serverului primar
Serverul primar suportă, de asemenea, un impact de încărcare din cauza replicării. Trebuie să scrie toate modificările în jurnalul binar pentru replici din aval, care este un cheltuială suplimentară pe partea de sus a procesării tranzacționale normale. Cu multe replici conectate, în special regiunea încrucișată în care variază de rețea și fiabilitate variază, primarul poate experimenta consumul crescut de resurse menținând fluxurile de replicare.
O modalitate de a atenua acest lucru este o ierarhie de replicare, în care primarul replică la o singură replică intermediară, care apoi fanează replici suplimentare, reducând sarcina pe primară.
Distribuția și scalabilitatea volumului de muncă
Replicarea încrucișată acceptă scalarea sarcinilor de lucru citite mai aproape de utilizatorii din diferite regiuni globale, oferind replici citite în apropierea locației lor, îmbunătățind latențele utilizatorilor finali. Cu toate acestea, scrierea sarcinilor de lucru încă converg în instanța primară, care poate deveni un blocaj.
Tranzacțiile mari pe primarul care actualizează multe rânduri pot provoca vârfuri în datele de replicare, ceea ce duce la explozii de replicare să aplice lucrări pe replici și să provoace un decalaj de replicare. Încălcarea tranzacțiilor mari în loturi mai mici ajută la reducerea tulpinii de replicare.
Considerații privind proiectarea schemelor și interogării
Tabelele fără chei primare sau cu operațiuni DDL grele pot degrada performanța de replicare sau pot provoca încuietori exclusive, compunerea problemelor de latență în regiuni. Utilizarea replicării bazate pe rând, care necesită taste primare pentru eficiență, este de obicei recomandată.
Nivelurile de izolare a interogării pe replici afectează, de asemenea, viteza de aplicare a replicării, cu niveluri mai mici de izolare (de exemplu, `citit angajat`), permițând în general aplicarea mai rapidă a evenimentelor de replicare decât nivelurile superioare care mențin încuietori mai mult timp.
Considerații de rețea și costuri
Replicarea încrucișată implică transferul de date în rețelele furnizorilor de cloud, care pot suporta costuri și limitări de lățime de bandă. Acest lucru trebuie să fie contabilizat în proiectare și poate constrânge indirect viteza și frecvența replicării.
Rezumatul impactului performanței
- Creșterea decalajului de replicare din cauza distanței fizice și a latenței rețelei.
- Consum de resurse mai mare la primare pentru jurnal binar și pe replici pentru aplicarea modificărilor.
- Degradarea potențială a performanței interogării pe replici dacă replicarea este intensă în resurse.
- Echilibrarea sarcinii prin ierarhiile de replicare poate reduce blocajele.
- Impactul tranzacțiilor mari și proiectarea schemelor asupra eficienței replicării.
- Completări cu costuri de transfer de date și debit în medii cloud.