Ce este o replicare multi-master?

Replicarea multi-master este o tehnică folosită de software-ul de gestionare a bazelor de date, astfel încât mai multe copii ale unei singure baze de date stocate pe computere diferite pot fi utilizate și actualizate de mulți utilizatori într-un mod descentralizat. Când se face o modificare la o bază de date care utilizează replicarea multi-master, modificarea care este făcută este transmisă la toate celelalte computere din rețea, astfel încât toate copiile bazei de date utilizate sunt actualizate. Unele avantaje ale unei configurații de replicare multi-master includ backup-uri redundante ale datelor și o arhitectură descentralizată în care actualizările la copiile unei baze de date pot fi menținute chiar dacă unul dintre computerele din rețea nu mai funcționează. Fără un singur sistem master atribuit, așa cum este cazul în arhitectura master-slave, modificările și comenzile administrative pentru controlul bazei de date pot fi emise de la oricare dintre terminalele multi-master din rețea, în loc să se bazeze pe un singur terminal fizic. Cea mai mare complicație care poate apărea cu utilizarea unui sistem de replicare multi-master implică actualizarea tuturor sistemelor suficient de rapidă, astfel încât datele să rămână sincronizate în orice moment în rețea.

Termenul „multi-master” provine din metoda de bază de replicare master-slave, în care un singur terminal este desemnat ca master. Într-o situație master-slave, doar un singur master este capabil să actualizeze informații despre unitățile slave. Un sistem de replicare multi-master are mai multe sisteme desemnate ca master și fiecare master ar putea fi responsabil doar pentru el însuși sau ar putea fi responsabil de un număr de computere cunoscut sub numele de grup de replicare. Cu mai multe master, orice sistem master poate iniția o schimbare la toate celelalte sisteme master, ceea ce poate duce la interacțiuni de rețea foarte complexe în sisteme foarte mari.

Există două forme de replicare multi-master, prima fiind replicarea sincronă. Replicarea sincronă funcționează prin actualizarea în timp real a tuturor copiilor unei baze de date de fiecare dată când se face o modificare. Acest lucru elimină majoritatea situațiilor care pot apărea atunci când datele nu sunt sincronizate în rețea, dar creează o cantitate imensă de trafic de rețea și ar putea necesita o cantitate mare de putere de procesare pentru a fi implementată într-un sistem mai mare. Din aceste motive, replicarea sincronă este utilizată în primul rând în rețelele în care există doar o mână de computere master.

Al doilea tip de replicare multi-master este replicarea asincronă. În loc să actualizeze sistemele ori de câte ori se face o modificare, modificările aduse unei baze de date sunt stocate ca evenimente pe fiecare sistem, iar acele modificări sunt aplicate fie atunci când este declanșat un eveniment, fie în timpul perioadelor de actualizare programate. Aceasta înseamnă că se utilizează mai puțină lățime de bandă a rețelei și putere de procesare, dar crește șansele ca doi utilizatori să încerce la un moment dat să modifice aceleași informații în moduri contradictorii din cauza întârzierii actualizării sau a latenței. Majoritatea sistemelor de gestionare a bazelor de date distribuite folosesc replicarea asincronă din cauza cantității reduse de resurse care sunt consumate în comparație cu replicarea multi-master sincronă.