ROWA-Verfahren

aus Wikipedia, der freien Enzyklopädie
Zur Navigation springen Zur Suche springen

Das Read-One-Write-All-Verfahren (englisch für lies eins, beschreibe alle) oder ROWA-Verfahren ist ein einfaches Verfahren zur Synchronisation replizierter Daten. Das Prinzip beruht darauf, dass Änderungen an einem Datenobjekt immer synchron auf allen Replikaten durchgeführt werden; eine Änderung kann nur dann erfolgreich sein, wenn sie auch auf allen Replikaten durchgeführt wurde.

Der Vorteil des Verfahrens ist, dass dadurch immer alle Replikate auf dem gleichen Stand sind und keines veraltet ist. Für Leseoperationen ist die Verfügbarkeit eines replizierten Datenobjekts sehr hoch, weil der aktuelle Wert eines Datenobjekts verzögerungsfrei von jedem Replikat abgerufen werden kann. Die Leseverfügbarkeit steigt mit dem Replikationsgrad (Anzahl der Replikate).

Um eine Schreiboperation erfolgreich durchführen zu können, müssen alle Replikate erreichbar sein. Je höher der Replikationsgrad ist, umso geringer ist aber die Wahrscheinlichkeit, dass alle Replikate für die Durchführung einer Änderung auch erreichbar sind. Deswegen besitzt das Verfahren nur eine geringe Schreibverfügbarkeit. Darüber hinaus steigt mit dem Replikationsgrad auch der Aufwand für Änderungsoperationen (zum Beispiel die Anzahl der notwendigen Nachrichten).

Abhilfe für das Problem der geringen Schreibverfügbarkeit bringt das ROWAA-Verfahren. Bei ROWAA (Read-One-Write-All-Available) werden nur die tatsächlich verfügbaren Replikate geändert, so dass eine Änderung auch dann erfolgreich durchgeführt werden kann, wenn nicht alle Replikate erreichbar sind. Für Replikate, die an zwischenzeitlich ausgefallenen Rechnern gespeichert sind, werden die Änderungen protokolliert und bei einem Neustart nachgefahren. Das Verfahren erfordert allerdings einen zusätzlichen Aufwand zur Validierung. Außerdem kann die wechselseitige Konsistenz der Replikate nur bei Rechnerausfällen, nicht aber bei Netzwerkpartitionierungen gewährleistet werden, weil dann in verschiedenen Partitionen Änderungen am gleichen Datenobjekt stattfinden können, die nicht mehr synchronisiert werden können.

Eine weitere Möglichkeit, die Schreibverfügbarkeit zu erhöhen, besteht darin, das ROWA-Verfahren mit sogenannten Votierungsverfahren (zum Beispiel gewichtetes Votieren) zu kombinieren. Beispiele für derartige hybride Verfahren sind „Missing Writes“ und „Virtual Partition“.