Hvad er en multimasterreplikation?
Multimasterreplikation er en teknik, der anvendes af databasestyringssoftware, så flere kopier af en enkelt database, der er gemt på forskellige computere, kan bruges og opdateres af mange brugere på en de-centraliseret måde. Når der foretages en ændring i en database, der bruger multimasterreplikation, overføres den ændring, der foretages, til alle andre computere på netværket, så alle kopier af databasen, der bruges, opdateres. Nogle fordele ved en multi-master replikationsopsætning inkluderer overflødige databehandlinger og en de-centraliseret arkitektur, hvor opdateringer til kopier af en database kan opretholdes, selvom en af computere i netværket ophører med at fungere. Uden et enkelt tildelt master-system, som det er tilfældet i master-slave-arkitektur, kan ændringer og administrative kommandoer til kontrol af databasen udstedes fra en hvilken som helst af multimaster-terminalerne i netværket i stedet for kun at stole på en fysisk terminal. Den største komplikation, der kan opstå ved brug af et multi-master replikationssystem, involverer opdatering af alle systemer hurtigt nok, så data forbliver synkroniserede på alle tidspunkter over netværket.
Udtrykket "multi-master" stammer fra den mere basale metode til master-slave-replikation, hvor en enkelt terminal er udpeget som master. I en master-slavesituation er det kun en enkelt master, der er i stand til at opdatere information på slavedrevene. Et multimaster-replikationssystem har flere systemer, der er udpeget som mastere, og hver master er muligvis kun ansvarlig for sig selv eller kan være ansvarlig for et antal computere kendt som en replikationsgruppe. Med flere mestre kan ethvert master-system starte en ændring af alle andre master-systemer, hvilket potentielt kan føre til meget komplekse netværksinteraktioner i meget store systemer.
Der er to former for multimasterreplikation, hvor den første er synkron replikering. Synkron replikationsfunktioner ved opdatering i realtid af alle kopier af en database, hver gang en ændring foretages. Dette fjerner de fleste situationer, der kan opstå, når data ikke synkroniseres over netværket, men det skaber en enorm mængde netværkstrafik og kan kræve en stor mængde behandlingskraft til at implementere i et større system. Af disse grunde bruges primært synkron replikering i netværk, hvor der kun er en håndfuld mastercomputere.
Den anden type multimasterreplikation er asynkron replikation. I stedet for at opdatere systemer, hver gang en ændring foretages, gemmes ændringer i en database som begivenheder på hvert system, og disse ændringer anvendes enten når en begivenhed udløses eller i planlagte opdateringsperioder. Dette betyder, at der bruges mindre netværksbåndbredde og behandlingsstyrke, men det øger chancerne for, at to brugere på et tidspunkt kan forsøge at ændre de samme oplysninger på modstridende måder på grund af forsinkelsen i opdateringen eller forsinkelse. De fleste distribuerede databasesystemer bruger asynkron replikering på grund af den lave mængde ressourcer, der forbruges i sammenligning med synkron multimasterreplikation.