Voting

Voting ist eine Technik, die in Algorithmen für verteilte Systeme eingesetzt wird. Die Grundidee basiert dabei auf der Erlangung einer Mehrheit von Stimmen.

Ein Beispiel ist das Verfahren nach Gifford für die Replikation von Daten. Dabei wird von einer Anzahl von beteiligten Systemen N, einem Lesequorum (siehe Quorum) R und einem Schreibquorum von W mit R + W > N ausgegangen.

Soll ein Datum gelesen werden, so sind mindestens R Systeme zu kontaktieren. Die gelieferten Daten werden anhand eines Zeitstempels verglichen. Es wird das aktuellste gelieferte Datum verwendet.

Wenn ein Datum geschrieben werden soll, dann muss dies auf mindestens W Systemen erfolgen.

Dadurch, dass die Summe von R und W die Gesamtzahl der Systeme N übersteigt, ist unabhängig von der konkreten Auswahl der Systeme beim Lesen und Schreiben sichergestellt, dass die Schnittmenge der gelesenen und beschriebenen Systeme nicht leer ist und deshalb das aktuelleste Datum gelesen wird.


Quelle

Andrew S. Tanenbaum
"Modern Operating Systems"