Vad är en multimasterreplikation?
Multimasterreplikation är en teknik som används av databashanteringsprogramvara så att flera kopior av en enda databas lagrad på olika datorer kan användas och uppdateras av många användare på ett de-centraliserat 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 multimasterreplikationsinställning inkluderar redundanta säkerhetskopior av data och en de-centraliserad arkitektur där uppdateringar till kopior av en databas kan upprätthållas även om en av datorerna i nätverket upphör att fungera. Utan ett enda tilldelat mastersystem, som är fallet i master-slavarkitektur, kan ändringar och administrativa kommandon för att kontrollera databasen utfärdas från vilken som helst av multimasterterminalerna i nätverket istället för att förlita sig bara på en fysisk terminal. Den största komplikationen som kan uppstå med användning av ett multimasterreplikationssystem innebär att alla system uppdateras tillräckligt snabbt så att data förblir synkroniserade hela tiden över nätverket.
Uttrycket "multi-master" härrör från den mer grundläggande metoden för master-slave-replikering, i vilken en enda terminal betecknas som master. I en master-slavesituation är det bara en enda master som kan uppdatera information på slav-enheterna. Ett replikationssystem med flera master har flera system som är betecknade som mästare och varje master kanske bara ansvarar för sig själv eller kan vara ansvarig för ett antal datorer kända som en replikationsgrupp. Med flera master kan alla master-system initiera en förändring av alla andra master-system, vilket kan leda till mycket komplexa nätverksinteraktioner i mycket stora system.
Det finns två former av multimasterreplikering, den första är synkron replikering. Synkron replikationsfunktioner 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 för 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 multimasterreplikation är asynkron replikering. Istället för att uppdatera system när en ändring görs, lagras ändringar i en databas som händelser i 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ätbredd och bearbetningskraft används, men det ökar chansen att två användare vid någon tidpunkt kan försöka ändra samma information på motstridiga sätt på grund av förseningen i uppdateringen eller latensen. 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 multi-master replikering.