Was ist eine Multi-Master-Replikation?
Die Multi-Master-Replikation ist eine Technik, die von der Datenbankverwaltungssoftware verwendet wird, damit mehrere Kopien einer einzelnen Datenbank, die auf verschiedenen Computern gespeichert sind, von vielen Benutzern dezentral verwendet und aktualisiert werden können. Wenn eine Änderung an einer Datenbank vorgenommen wird, die die Multi-Master-Replikation verwendet, wird die vorgenommene Änderung an alle anderen Computer im Netzwerk übertragen, sodass alle verwendeten Kopien der Datenbank aktualisiert werden. Zu den Vorteilen eines Multi-Master-Replikations-Setups gehören redundante Datensicherungen und eine dezentrale Architektur, in der Aktualisierungen von Kopien einer Datenbank beibehalten werden können, selbst wenn einer der Computer im Netzwerk nicht mehr funktioniert. Ohne ein einziges zugewiesenes Mastersystem können, wie in der Master-Slave-Architektur, Änderungen und Verwaltungsbefehle zur Steuerung der Datenbank von jedem der Multi-Master-Terminals innerhalb des Netzwerks ausgegeben werden, anstatt sich auf nur ein physisches Terminal zu verlassen. Die größte Komplikation, die bei der Verwendung eines Multi-Master-Replikationssystems auftreten kann, besteht darin, alle Systeme so schnell zu aktualisieren, dass die Daten jederzeit im gesamten Netzwerk synchronisiert bleiben.
Der Begriff "Multi-Master" stammt von der grundlegenderen Methode der Master-Slave-Replikation, bei der ein einzelnes Terminal als Master bezeichnet wird. In einer Master-Slave-Situation kann nur ein einzelner Master die Informationen auf den Slave-Laufwerken aktualisieren. Ein Multi-Master-Replikationssystem verfügt über mehrere Systeme, die als Master bezeichnet werden. Jeder Master ist möglicherweise nur für sich selbst verantwortlich oder ist für eine Reihe von Computern verantwortlich, die als Replikationsgruppe bezeichnet werden. Bei mehreren Mastern kann jedes Mastersystem eine Änderung an allen anderen Mastersystemen initiieren, was möglicherweise zu sehr komplexen Netzwerkinteraktionen in sehr großen Systemen führt.
Es gibt zwei Formen der Multi-Master-Replikation, die erste ist die synchrone Replikation. Die synchrone Replikation funktioniert, indem alle Kopien einer Datenbank bei jeder Änderung in Echtzeit aktualisiert werden. Auf diese Weise werden die meisten Situationen beseitigt, die auftreten können, wenn Daten nicht über das Netzwerk synchronisiert werden. Es entsteht jedoch eine große Menge an Netzwerkverkehr, und die Implementierung in einem größeren System erfordert möglicherweise eine große Menge an Verarbeitungsleistung. Aus diesen Gründen wird die synchrone Replikation hauptsächlich in Netzwerken verwendet, in denen nur eine Handvoll Master-Computer vorhanden sind.
Die zweite Art der Multi-Master-Replikation ist die asynchrone Replikation. Anstatt Systeme bei jeder Änderung zu aktualisieren, werden Änderungen an einer Datenbank als Ereignisse auf jedem System gespeichert und diese Änderungen werden entweder beim Auslösen eines Ereignisses oder während geplanter Aktualisierungsperioden angewendet. Dies bedeutet, dass weniger Netzwerkbandbreite und Verarbeitungsleistung verwendet werden, erhöht jedoch die Wahrscheinlichkeit, dass zwei Benutzer aufgrund der Verzögerung bei der Aktualisierung oder der Wartezeit versuchen, die gleichen Informationen auf widersprüchliche Weise zu ändern. Die meisten verteilten Datenbankverwaltungssysteme verwenden eine asynchrone Replikation, da im Vergleich zur synchronen Multi-Master-Replikation nur wenig Ressourcen verbraucht werden.