Replicare (calculatură)

Replicarea ( replicare în engleză  ) este un mecanism de sincronizare a conținutului mai multor copii ale unui obiect (de exemplu, conținutul unei baze de date ). Replicarea este procesul de copiere a datelor de la o sursă la alta (sau multe altele) și invers.

Cu replicare, modificările făcute unei copii a unui obiect pot fi propagate către alte copii.

Un exemplu de soluție software poate fi DRBD  , un dispozitiv bloc conceput pentru a construi sisteme de cluster tolerante la erori pe un sistem de operare cu un nucleu Linux .

Tipuri de replicare

Replicarea poate fi sincronă sau asincronă , după cum este descris mai jos.

Replicare sincronă

În cazul replicării sincrone , dacă o anumită replică este actualizată, toate celelalte replici ale aceleiași date trebuie să fie, de asemenea, actualizate în aceeași tranzacție . În mod logic, aceasta înseamnă că există o singură versiune a datelor.

În majoritatea produselor, replicarea sincronă este implementată folosind proceduri de declanșare (poate ascunse și gestionate de sistem). Dar replicarea sincronă are dezavantajul că creează o suprasarcină suplimentară pentru toate tranzacțiile în care sunt actualizate orice replici (în plus, pot apărea probleme legate de disponibilitatea datelor).

Replicare asincronă

În cazul replicării asincrone , actualizarea unei replici este propagată altora după ceva timp și nu în aceeași tranzacție. Astfel, replicarea asincronă introduce o întârziere, sau timeout, în timpul căreia replicile individuale pot să nu fie de fapt identice (adică definiția unei replici nu este în întregime adecvată, deoarece nu avem de-a face cu copii exacte și create în timp util).

În majoritatea produselor, replicarea asincronă este implementată prin citirea jurnalului de tranzacții sau o coadă persistentă a acelor actualizări care urmează să fie distribuite. Replicarea asincronă are avantajul că supraîncărcarea suplimentară de replicare nu este asociată cu tranzacțiile de actualizare, care pot fi critice pentru funcționarea întregii întreprinderi și impun cerințe de înaltă performanță.

Dezavantajele acestei scheme includ faptul că datele pot fi inconsecvente (adică incompatibile din punctul de vedere al utilizatorului). Cu alte cuvinte, redundanța se poate manifesta la nivel logic, ceea ce, strict vorbind, înseamnă că termenul de redundanță controlată nu se aplică în acest caz.

Luați în considerare pe scurt problema consecvenței (sau mai bine zis, a inconsecvenței). Cert este că replicile pot deveni incompatibile ca urmare a unor situații greu (sau chiar imposibil) de evitat și ale căror consecințe sunt greu de corectat.

În special, pot apărea conflicte cu privire la ordinea în care ar trebui aplicate actualizările. De exemplu, să presupunem că tranzacția A inserează un rând în replica X, iar apoi tranzacția B șterge rândul și, de asemenea, să presupunem că Y este o replică a lui X. Dacă actualizările sunt propagate la Y, dar sunt injectate în replica Y în ordine inversă (pentru exemplu, din cauza diferitelor întârzieri de transmisie), atunci tranzacția B nu găsește un rând în Y pentru a fi șters și nu își efectuează acțiunea, după care tranzacția A inserează acest rând. Efectul net este că replica Y conține rândul specificat, dar replica X nu.

În general, sarcinile de eliminare a situațiilor conflictuale și de asigurare a consistenței replicilor sunt foarte complexe. Trebuie remarcat faptul că, cel puțin în comunitatea de utilizatori a bazelor de date comerciale, termenul de replicare a ajuns să însemne predominant (sau chiar exclusiv) replicare asincronă.

Principala diferență între replicare și controlul copierii este:

Dacă se folosește replicarea, atunci actualizarea unei replici se propagă în cele din urmă la toate celelalte în mod automat.

În schimb, în ​​modul de control al copierii, nu există o astfel de distribuție automată a actualizărilor. Copiile de date sunt create și gestionate folosind un proces de lot sau de fundal care este separat în timp de tranzacțiile de actualizare.

Gestionarea copierii este în general mai eficientă decât replicarea, deoarece cantități mari de date pot fi copiate simultan. Dezavantajele includ faptul că, de cele mai multe ori, copiile datelor nu sunt identice cu datele de bază, astfel încât utilizatorii trebuie să știe exact când au fost sincronizate datele.

De obicei, gestionarea copierii este simplificată de cerința ca actualizările să fie aplicate conform schemei de copiere primară de un fel sau altul.

Link -uri