9.3 Voting-Verfahren
9.3.1 Mehrheits-Votieren (Majority Consensus)
Bei diesem Ansatz erfordert das Ändern eines Objektes, daß die Transaktion eine Mehrheit der Replikate mit einer Schreibsperre belegt und diese Replikate ändert[38]. Da zu einem Zeitpunkt nur eine Transaktion die Mehrheit der Replikate sperren kann, ist sichergestellt, daß ein Objekt nicht gleichzeitig von mehreren Transaktionen geändert wird. Zum Lesen wird ebenfalls eine Mehrheit der Replikate gesperrt und davon ein aktuelles Replikat referenziert. Die Aktualität der Replikate kann z.B. durch Änderungszähler festgestellt werden. Offenbar ist durch das Sperren einer Mehrheit immer gewährleistet, daß mindestens eines der Replikate auf dem aktuellen Stand ist. Der Vorteil des Verfahrens ist, daß ein Objekt auch nach einem Rechnerausfall oder einer Netzwerk-Partitionierung noch referenzierbar ist, solange eine Mehrheit der Replikate erreichbar ist.
Beispiel 9-4
- In Abb. 9-2 existieren drei Kopien von Objekt A. Das Lesen oder Ändern eines Objektes erfordert beim Mehrheits-Votieren somit den Erwerb einer Lese- bzw. Schreibsperre an mindestens zwei Knoten. Abb. 9-2 zeigt die Situation, nachdem eine Transaktion Objekt A an den Knoten R1 und R2 geändert und den Änderungszähler auf 7 inkrementiert hat. Eine Transaktion in R3, die jetzt auf A zugreifen will, muß entweder an R1 oder R2 eine Sperre erwerben, um eine ausreichende Mehrheit zu erhalten. Durch Vergleich der Änderungszähler kann der Zugriff auf die lokale, jedoch veraltete Version von A in R3 verhindert werden.
Fällt einer der Rechner aus, kann weiterhin auf Objekt A zugegriffen werden, da mit zwei "überlebenden" Knoten noch eine Mehrheit vorliegt. Ebenso kann bei einer Netzwerk-Partitionierung die Verarbeitung in einer aus zwei Knoten bestehenden Partition fortgeführt werden.
Abb. 9-2: Einsatz von Änderungszählern beim Mehrheits-Votieren
Der Hauptnachteil des Mehrheits-Votierens liegt darin, daß jeder Objektzugriff Kommunikation erfordert, um eine Mehrheit zu bilden. Dies gilt auch für Lesezugriffe auf eine lokal vorhandene Kopie, welche z.B. mit dem ROWA-Protokoll ohne Kommunikation abgewickelt werden konnten. Der Schreibaufwand liegt zwischen dem des Primary-Copy-Ansatzes und dem des ROWA-Verfahrens. Für den häufigen Spezialfall mit zwei Kopien (Beispiel 9-1) ist das Mehrheits-Votieren ungeeignet, da es für sämtliche Zugriffe die Involvierung beider Rechner verlangt.
[38] In diesem Fall kann die Sperre als "Stimme" interpretiert werden.