Folien Jens

Werbung
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
Herunterladen