Vad är en multimasterreplikering?

Multi-master replikering är en teknik som används av databashanteringsprogram så att flera kopior av en enda databas lagrad på olika datorer kan användas och uppdateras av många användare på ett decentraliserat sätt. När en ändring görs i en databas som använder multimasterreplikering, överförs ändringen som görs till alla andra datorer i nätverket så att alla kopior av databasen som används uppdateras. Några fördelar med en multi-master replikeringsinställning inkluderar redundanta säkerhetskopior av data och en decentraliserad arkitektur där uppdateringar av kopior av en databas kan underhållas även om en av datorerna i nätverket slutar fungera. Utan ett enda tilldelat mastersystem, vilket är fallet i master-slave-arkitektur, kan ändringar och administrativa kommandon för att styra databasen utfärdas från vilken som helst av multi-masterterminalerna inom nätverket istället för att bara förlita sig på en fysisk terminal. Den största komplikationen som kan uppstå med användningen av ett multimasterreplikeringssystem innebär att alla system uppdateras tillräckligt snabbt så att data förblir synkroniserade hela tiden över nätverket.

Termen ”multi-master” härrör från den mer grundläggande metoden för master-slave replikering, där en enda terminal betecknas som master. I en master-slav-situation kan endast en enda master uppdatera information på slavenheterna. Ett multi-masterreplikeringssystem har flera system betecknade som masters och varje master kanske bara är ansvarig för sig själv eller kan vara ansvarig för ett antal datorer som kallas en replikeringsgrupp. Med flera mastersystem kan vilket mastersystem som helst initiera en förändring av alla andra mastersystem, vilket potentiellt kan leda till mycket komplexa nätverksinteraktioner i mycket stora system.

Det finns två former av multi-master replikering, den första är synkron replikering. Synkron replikering fungerar genom att i realtid uppdatera alla kopior av en databas varje gång en ändring görs. Detta tar bort de flesta situationer som kan uppstå när data inte synkroniseras över nätverket, men det skapar en enorm mängd nätverkstrafik och kan kräva en stor mängd processorkraft att implementera i ett större system. Av dessa skäl används synkron replikering främst i nätverk där det bara finns en handfull masterdatorer.

Den andra typen av multimasterreplikering är asynkron replikering. Istället för att uppdatera system närhelst en ändring görs, lagras ändringar i en databas som händelser på varje system, och dessa ändringar tillämpas antingen när en händelse utlöses eller under schemalagda uppdateringsperioder. Detta innebär att mindre nätverksbandbredd och processorkraft används, men det ökar chanserna att två användare vid något tillfälle kan försöka ändra samma information på motstridiga sätt på grund av fördröjningen i uppdateringen eller latens. De flesta distribuerade databashanteringssystem använder asynkron replikering på grund av den låga mängden resurser som förbrukas i jämförelse med synkron multimasterreplikering.