Wat is een multi-master replicatie?
Multi-master replicatie is een techniek die wordt gebruikt door databasebeheersoftware, zodat meerdere exemplaren van een enkele database die op verschillende computers zijn opgeslagen, door veel gebruikers op een gedecentraliseerde manier kunnen worden gebruikt en bijgewerkt. Wanneer een wijziging wordt aangebracht in een database die gebruikmaakt van multi-masterreplicatie, wordt de aangebrachte wijziging verzonden naar alle andere computers in het netwerk, zodat alle kopieën van de gebruikte database worden bijgewerkt. Enkele voordelen van een multi-master replicatie-instelling zijn redundante gegevensback-ups en een gedecentraliseerde architectuur waarin updates voor kopieën van een database kunnen worden onderhouden, zelfs als een van de computers in het netwerk niet meer functioneert. Zonder een enkel toegewezen mastersysteem, zoals het geval is in de master-slave-architectuur, kunnen wijzigingen en beheeropdrachten om de database te besturen worden uitgegeven vanaf elk van de multi-masterterminals in het netwerk in plaats van te vertrouwen op slechts één fysieke terminal. De grootste complicatie die kan optreden bij het gebruik van een multi-master replicatiesysteem, is dat alle systemen snel genoeg worden bijgewerkt zodat gegevens te allen tijde in het netwerk gesynchroniseerd blijven.
De term "multi-master" komt voort uit de meer basale methode van master-slave-replicatie, waarbij een enkele terminal wordt aangeduid als de master. In een master-slave-situatie kan slechts één master informatie over de slave-drives bijwerken. Een multi-master replicatiesysteem heeft meerdere systemen die als master zijn aangewezen en elke master is mogelijk alleen verantwoordelijk voor zichzelf of kan de leiding hebben over een aantal computers dat bekend staat als een replicatiegroep. Met meerdere masters kan elk mastersysteem een wijziging in gang zetten naar alle andere mastersystemen, wat mogelijk kan leiden tot zeer complexe netwerkinteracties in zeer grote systemen.
Er zijn twee vormen van multi-master replicatie, de eerste is synchrone replicatie. Synchrone replicatiefuncties door alle kopieën van een database in realtime bij te werken telkens wanneer een wijziging wordt aangebracht. Dit verwijdert de meeste situaties die kunnen optreden wanneer gegevens niet via het netwerk worden gesynchroniseerd, maar het creëert een enorme hoeveelheid netwerkverkeer en vereist mogelijk een grote hoeveelheid verwerkingskracht om in een groter systeem te implementeren. Om deze redenen wordt synchrone replicatie voornamelijk gebruikt in netwerken waar er slechts een handvol mastercomputers zijn.
Het tweede type multi-master replicatie is asynchrone replicatie. In plaats van systemen bij te werken wanneer een wijziging wordt aangebracht, worden wijzigingen in een database opgeslagen als gebeurtenissen op elk systeem, en die wijzigingen worden toegepast wanneer een gebeurtenis wordt geactiveerd of tijdens geplande updateperioden. Dit betekent dat minder netwerkbandbreedte en verwerkingskracht wordt gebruikt, maar het verhoogt de kans dat twee gebruikers op een bepaald moment proberen dezelfde informatie op conflicterende manieren te wijzigen vanwege de vertraging bij het bijwerken of latentie. De meeste gedistribueerde databasebeheersystemen gebruiken asynchrone replicatie vanwege het lage aantal bronnen dat wordt gebruikt in vergelijking met synchrone multi-master replicatie.