Seminar zur Nebenläufigkeit in verteilten Systemen Kodierungsverfahren vorgestellt von Jens Brauckmann Seminar zur Nebenläufigkeit in verteilten Systemen Kodierungsverfahren -Vorgeschlagen von Gagan Agrawal und Pankaj Jalote „Coding-Based Replication Schemes for Distributed Systems“ IEEE Transaction on Paralleland Distributed Systems, März 1995 -zusätzlich zur Synchronisation der Zugriffe auf replizierte Datenbestände auch Reduktion des Speicherplatzbedarfs -Kein Verzicht auf Verfügbarkeitsvorteile -Erhöhte Datensicherheit - nicht wie bei „Zeugen“ durch weglassen einer Dateikopie sondern durch verteilte Speicherung von Dateistücken Kodierungsverfahren vorgestellt von Jens Brauckmann Seminar zur Nebenläufigkeit in verteilten Systemen Grundidee: Größe |d| m Rechner 1 |d| m Rechner 2 Größe Datei Größe |d| m d |d| Größe m Größe N>M N M |d| m M Stücken Rechner 3N Rechner 4 Stücke Datei d Rechner 5 (Redundanz) Möglichkeiten diejenigen M Rechner zu wählen von denen Rekonstruiert werden soll Kodierungsverfahren vorgestellt von Jens Brauckmann Seminar zur Nebenläufigkeit in verteilten Systemen Codierung von M. O. Rabin aus seinem Artikel „Efficient dispersal of information for security, load balancing and fault-tolerance“ von 1987. Eine Datei F mit den Zeichen F= b1 …. bx wird in N Vektoren der Länge M unterteilt. Diese Vektoren werden als Matrix (n, m) geschrieben und mit einer Linear unabhängigen Transformationsmatrix (m,n) multipliziert (z.B.Vandermonde Matrix) . b1 … bm bm+1 …b2m x a11 ... a1n am1 ... amn = c11 … c1n cn1 … cnn Die Ergebnismatrix C besteht aus N Vectoren die als Dateistücke auf verschiedenen Computern abgelegt werden können. Für die Rekonstruktion werden lediglich M dieser N Vectoren benötigt: Zunächst werden die Vectoren entsprechend ihrem auftreten in der Matrix C sortiert. Anschließend wird die Transformationsmatrix entsprechen der vorhandenen Dateistücke gekürzt und invertiert. Multipliziert man nun die invertierte Transformationsmatrix mit der Matrix C‘ erhält man die Ursprungsmatrix (die letztlich nur ein Abbild der Datei ist). B = C‘ x A‘ Kodierungsverfahren vorgestellt von Jens Brauckmann Seminar zur Nebenläufigkeit in verteilten Systemen d = Datei M = Anzahl der benötigten Stücke für Rekonstruktion N = Anzahl der Stück in die unterteilt worden ist Bedingung: N > M Dateigrösse: |d|/M Replikationsgrad: n Bedingung: (n N) n-N = Anzahl der Replikationsstücke Anstelle von n vollen Dateikopien reduziert sich der Speicherbedarf um einen Faktor M. Höhere Verfügbarkeit aber verkomplizierter leicht den Synchronisationsalgorithmus Analog zum Votierungsverfahren hat jedes Dateistück eine Versionsnummer, Stimmgewicht und es gibt ein Lese- / Schreib- Quorum mit den Werten für gewichtetes Voten. Kodierungsverfahren vorgestellt von Jens Brauckmann Seminar zur Nebenläufigkeit in verteilten Systemen Quorumbegriff: M = Anzahl der benötigten Stücke für Rekonstruktion n = Replikationsgrad QUL = Grenzwert für Lesenoperation QUS = Grenzwert für Schreibzugriff minimal hinreichendes Quorum: • gegenseitiger Ausschluss konkurrierender Zugriffe • sicherstellen das aktuelle Versionsnummer identifiziert werden kann QULmh = max ( M, QUL) QUs mh = max ( k, QUs) mit k M k= Anzahl der Dateistücke auf denen eine Operation ausgeführt werden muss maximal notwendiges Quorum: • Worstcase um sicher zu stellen das M paarweise verschiedene aktuelle Dateistücke vorliegen QULmn = n – k + M QUsmn = max ( QUs , n – N + k) Kodierungsverfahren vorgestellt von Jens Brauckmann Seminar zur Nebenläufigkeit in verteilten Systemen QULmh = max ( M, QUL) Beispiel: N = 10 QUL = 4 M=3 n = 12 QUS = 9 QUsmh = max ( k, QUs) QULmn = n – k + M QUsmn = max ( QUs , n – N + k) mit QUL + QUS 12 Jeder Teilnehmer hat ein Stimmgewicht von 1 k = 10 (7) Dateistücke für Fortschreibung Es ergibt sich: QULmh = 4 (4) QUsmh = 10 (9) QULmn = 5 (8) QUsmn = 12 (9) k kann nicht beliebig abgesenkt werden Kodierungsverfahren vorgestellt von Jens Brauckmann Seminar zur Nebenläufigkeit in verteilten Systemen Dynamische Neuordnung: Bei Write-Operation mit mindestens x Dateifragmenten bei denen weniger als m verschiedene, aber insgesamt mehr als k Dateifragmente vorhanden sind, werden die Dateifragmente neu „verteilt“. Die x Dateifragemente werden mit den m nötigen Teilen überschrieben . Damit ändert sich die benötigte Anzahl von Dateistücken um eine Schreiboperation durchführen zu können und somit auch die maximal benötigten Quoren-Grenzen. Und QULmn = n – k + M ändert sich zu QULmn = n –QUSmh + M [QUsmh = max ( k, QUs) ] QUsmn = max ( QUs , n – N + k) ändert sich zu QUsmn = max (QUSmh , QUsmn) Kodierungsverfahren vorgestellt von Jens Brauckmann Seminar zur Nebenläufigkeit in verteilten Systemen Verfügbarkeit: Warscheinlichkeit für eine Quorumerreichung p = Wahrscheinlichkeit mit der Dateifragment erreichbar ist Kodierungsverfahren vorgestellt von Jens Brauckmann Seminar zur Nebenläufigkeit in verteilten Systemen Benötigter Speicherplatz pro System ( Fehlerwarscheinlichkeit p = 0.90 ) Kodierungsverfahren vorgestellt von Jens Brauckmann Seminar zur Nebenläufigkeit in verteilten Systemen Speicherplatz und Fehlerwarscheinlichkeit ( Verfügbarkeit bei 0.999 ) Kodierungsverfahren vorgestellt von Jens Brauckmann Seminar zur Nebenläufigkeit in verteilten Systemen Bandbreite für write-Operationen und Verfügbarkeit (p = 0.90 ) Kodierungsverfahren vorgestellt von Jens Brauckmann Seminar zur Nebenläufigkeit in verteilten Systemen Bandbreite für Read-Operationen und Verfügbarkeit ( p = 0.90 ) Kodierungsverfahren vorgestellt von Jens Brauckmann Seminar zur Nebenläufigkeit in verteilten Systemen Verfügbarkeit: Kodierungsverfahren mit udate sites cardinality Kodierungsverfahren vorgestellt von Jens Brauckmann Seminar zur Nebenläufigkeit in verteilten Systemen Zusammenfassung: • Benötigter Speicherplatz ist stark reduziert (besser als bei „Zeugen“ und reiner Fragmentierung) • Steigende oder sinkende Anzahl von Teilnehmern läst sich einfach durch Anpassung des Replikationsgrades und damit der Quorum-Grenzen anpassen • Höhere Sicherheit durch Fragmentierung und Codierungsverfahren nach Rabin • Nachteil: erhöhte Bandbreite bei Read-Operationen Kodierungsverfahren vorgestellt von Jens Brauckmann