Post on 06-Apr-2016
1
Agenten und verteilte Anwendungen
Synchronisation und Konsistenzerhaltung in verteilten Anwendungen
13. März 2003
2
Gliederung
• Grundlagen verteilter Anwendungen
• Einfache Verfahren zur
Nebenläufigkeitskontrolle
• Spezielle Verfahren zur
Nebenläufigkeitskontrolle
• Zusammenfassung
Synchronisation und Konsistenzerhaltung in verteilten Anwendungen
3
Grundlagen verteilter Anwendungen
• Definition von verteilten Anwendungen nach [BS2000, Seite 59]:
... application, whose functionality is split into a set of cooperating, interacting functional units...
... these functional units can be assigned to different machines...
... the functional units communicate with each other...
Synchronisation und Konsistenzerhaltung in verteilten Anwendungen
4
Aufbau von Verteilten Systemen
Synchronisation und Konsistenzerhaltung in verteilten Anwendungen
Verteiltes Rechensystem
Netzwerk Netzwerk
Verteiltes Ablaufsystem(Verwaltung der Systemobjekte auf die die Komponenten der Anwendung abgebildet werden) evtl. verteiltes BS
Verteilte AnwendungKomponente 1 Komponente n
...Komponente 2
5
Konsistenz (traditionell) (1)
• Aus Datenbanktechnik: Serialisierbarkeit als Korrektheitskriterium des Transaktionskonzeptes
Synchronisation und Konsistenzerhaltung in verteilten Anwendungen
Def.: Eine Transaktion ist eine Folge von Operationen, die die Datenbank von einem konsistenten Zustand in einen neuen Zustand überführen, wobei das ACID-Prinzip eingehalten werden muss.
• Atomicity
• Consistency
• Isolation
• Durability
6
Konsistenz (traditionell) (2)
• ABER:– Nicht alle Eigenschaften des Konsistenzkonzeptes
der Datenbanken bei verteilten Anwendungen erwünscht:
• Isolation der Benutzer• Hohe Verfügbarkeit eventuell wichtiger
Synchronisation und Konsistenzerhaltung in verteilten Anwendungen
7
Operationsgranularität
• Globale Daten (d.h. Daten mehrerer Komponenten)• Nebenläufige Zugriffe auf globale Daten führen
eventuell zu Inkonsistenz• Datei als globales Datum mögliche Zugriffseinheit
– Ganze Datei oder– Kapitel oder– Buchstabe usw.
Synchronisation und Konsistenzerhaltung in verteilten Anwendungen
• feine Granularität hoher Netzwerkverkehr
• grobe Granularität geringer Grad an Nebenläufigkeit
8
Konsistenz (erweitert)
• One-Copy-Serializable– Serialisierbarkeit im traditionellen Sinn bezüglich
eines Replikats– Zwei Operationen, die im Konflikt stehen, werden
auf allen Replikaten in der gleiche Reihenfolge ausgeführt.
• Mutual Consistency– alle Replikate eines Datums identisch oder – konvergieren zum gleichen Zustand
Synchronisation und Konsistenzerhaltung in verteilten Anwendungen
9
Nebenläufigkeitskontrolle (CC)
• Wichtig um Daten konsistent zu halten• Jedoch Erweiterung bei geographischer
Verteilung der Rechner:– Absturz einzelner Rechner Verfügbarkeit von
Daten– Ausfall von Kommunikationsverbindungen
Synchronisation und Konsistenzerhaltung in verteilten Anwendungen
Probleme bei verteilten Anwendungen, da häufig eine sehr hohe Verfügbarkeit gewünscht wird.
10
Partitionierung
schwer zu erkennenhöchstens in einer Partition darf
geschrieben werden
Synchronisation und Konsistenzerhaltung in verteilten Anwendungen
Partition 1 Partition 2
11
Gliederung
• Grundlagen verteilter Anwendungen
• Einfache Verfahren zur Nebenläufigkeitskontrolle (CC)
• Spezielle Verfahren zur
Nebenläufigkeitskontrolle (CC)
• Zusammenfassung
Synchronisation und Konsistenzerhaltung in verteilten Anwendungen
12
Klassifikation der Verfahren
Synchronisation und Konsistenzerhaltung in verteilten Anwendungen
optimistische pessimistische
zentrale Kontrolle dezentrale Kontrolle
13
Optimistische Verfahren
• Erlauben inkonsistente Zustände– Bei Datenbank: versucht alle Transaktionen nebenläufig
abzuhandeln. Bei Fehler wird Transaktion im Nachhinein abgebrochen
Je grober die Granularität, desto mehr KonflikteJe mehr Komponenten, desto mehr Konflikte
Konflikt kann bei verteilten Anwendungen nicht immer durch Anwendung behandelt werden (evtl. Benutzeraktion notwendig)
Synchronisation und Konsistenzerhaltung in verteilten Anwendungen
14
Pessimistische Verfahren
• Inkonsistente Datenbestände werden nicht geduldet
• Klassifikation:
Synchronisation und Konsistenzerhaltung in verteilten Anwendungen
Pessimistische Verfahren
Zentrale Kontrolle Dezentrale Kontrolle
Ausgezeichnete Kontrolleinheit
Token-Verfahren
15
Ausgezeichnete Kontrolleinheit
• Basiert auf Konzept der Zentralisierung• Eine Kontrolleinheit (KE) verantwortlich für alle
(Schreib-) zugriffe
Synchronisation und Konsistenzerhaltung in verteilten Anwendungen
DATEN
Nachteile:
• Keine weiteren Zugriffe bei Ausfall der KE.
• Bei Partitionierung auch Lesezugriffe nur in Partition mit KE.
16
Token-Verfahren (1)
• Verschiedene Rechner verantwortlich für Konsistenz
• Token wandert in virtuellem Ring zwischen den Rechnern umher
• Rechner mit Token verantwortlich
Synchronisation und Konsistenzerhaltung in verteilten Anwendungen
17
Token-Verfahren (2)
• Nachteile:– Schwierige Handhabe des Rechnerrings– Erweiterbarkeit des Rings– Ring muss dynamisch rekonfigurierbar sein (falls
Ausfall einzelner Rechner oder Partitionierung)– Verlust des Tokens (erkennen und beheben)
• Vorteil:– Höhere Verfügbarkeit als Verfahren mit
ausgezeichneter KE
Synchronisation und Konsistenzerhaltung in verteilten Anwendungen
18
mit dezentraler Kontrolle
Synchronisation und Konsistenzerhaltung in verteilten Anwendungen
Pessimistische Verfahren
Zentrale Kontrolle Dezentrale Kontrolle Ausgezeichnete Kontrolleinheit Token-Verfahren
ohne Votierung mit VotierungEinfache SperrverfahrenFloor-Passing-VerfahrenTransaktionsverfahrenTransformationsverfahren
19
Einfache Sperrverfahren
• Anfordern und Setzen der Sperre kostet Zeit• Sperrgranularität hat entscheidenden Einfluss
auf den Grad an Nebenläufigkeit• Je nach Art des Systems (z.B: WYSIWIS)
muss geklärt werden, ab wann eine Sperre zu setzen ist
• Zwei Alternativen:– Tickle lock– Probabilistic lock
Synchronisation und Konsistenzerhaltung in verteilten Anwendungen
20
Tickle lock
Nachteil:• Absturz des Rechners der die Sperre besitzt
gesperrter Teil bleibt bis zu Neustart des Rechners gesperrt
Synchronisation und Konsistenzerhaltung in verteilten Anwendungen
• Sperre nur so lange wie benötigt
• Sobald Benutzer nichts mehr tut, wird Sperre automatisch frei gegeben
21
Probabilistic lock
• Sperre mit automatischem Time-out• Ist das Setzen bis zu einem Time-out nicht
möglich Benutzer muss entscheiden(Inkonsistenzen werden in Kauf genommen)
• gesetzte Sperre bleibt für feste Zeitspanne gesetzt
Synchronisation und Konsistenzerhaltung in verteilten Anwendungen
Nachteil:
Zeitweise nicht Einhalten der Konsistenz, aufgrund von Kommunikationsverzögerungen.
22
Floor-Passing-Verfahren
• Verfahren mit wechselnder Kontrolle• Sperrmechanismen werden nicht benötigta) explizites:
Kontrolle wird aktiv vom Benutzer weitergegeben
b) implizites:Vergabe der Kontrolle durch Koordinator
Synchronisation und Konsistenzerhaltung in verteilten Anwendungen
Vorteil: keine Benachteiligung von Komponenten
Nachteil: Ausfall des Koordinators
Nachteile: Benachteiligung anderer Komponenten
Ausfall der Einheit mit Kontrolle
23
Transformationsverfahren (1)
• Von Vorteil bei CSCW-Systemen mit WYSIWIS Eigenschaft
• Basiert auf Transformation von Operationen
• Implementationbeispiel:GROVE-Algorithmus (Group outline viewing editor): siehe [BS2000, Seite 202ff]
Synchronisation und Konsistenzerhaltung in verteilten Anwendungen
24
Transformationsverfahren (2)
• Problemstellung:
Synchronisation und Konsistenzerhaltung in verteilten Anwendungen
t t
„abcd“
„abxcd“
„abcd“
„abcyd“
„abxcyd“„abxycd“
O1=insert(x,3) O2=insert(y,4)
Ohne Anpassung der Operationen hängt das Ergebnis von der Reihenfolge der Operationsausführung ab.
Benutzer 1 Benutzer 2
25
Transformationsverfahren (3)
• Operationstransformation, so dass:O`1° O2 = O`2 ° O1
• man benötigt:– Prioritäten von Operationen
(pi = Priorität von Aktion i)– Transformationsmatrix T
Synchronisation und Konsistenzerhaltung in verteilten Anwendungen
(insert(xi, Posi), insert(xj, Posj),pi,pj)
(delete(Posi), insert(xj,Posj),pi,pj)
(insert(xi,Posi), delete(Posj),pi,pj)
(delete(Posi), delete(Posj),pi, pj)
26
Transformationsverfahren (4)
• Implementierung der Konfliktpaare von TT11: if (Posi<Posj) then O`i := insert(xi,Posi);
elsif (Posi>Posj) then O`i := insert(xi,Posi+1);
elsif (xi = xj) then O`i := no-op; elsif (pi > pj) then O`i := insert(xi,Posi+1);
else O‘i := insert(xi,Posi);
T12: usw.
Synchronisation und Konsistenzerhaltung in verteilten Anwendungen
Seien wieder O1=insert(x,3) und O2=insert(y,4). Index als Priorität.
O`1 = insert(x,3) bzw. O`2 = insert(y,5)
O`1° O2 („abcd“) = „abxcyd“ = O`2 ° O1(„abcd“)
27
Gliederung
• Grundlagen verteilter Anwendungen
• Einfache Verfahren zur
Nebenläufigkeitskontrolle (CC)
• Spezielle Verfahren zur
Nebenläufigkeitskontrolle (CC)
• Zusammenfassung
Synchronisation und Konsistenzerhaltung in verteilten Anwendungen
28
Spezielle Verfahren
Synchronisation und Konsistenzerhaltung in verteilten Anwendungen
Pessimistische Verfahren
Zentrale Kontrolle Dezentrale Kontrolle Ausgezeichnete Kontrolleinheit Token-Verfahren
ohne Votierung mit VotierungEinfache SperrverfahrenFloor-Passing-VerfahrenTransaktionsverfahrenTransformationsverfahrenKodierungsverfahrenGitterprotokoll
Mit Mehrheitsentscheidunggewichteteswrite-all-read-anymit ZeugenAvailable-Copydynamisches
Aus dem Bereich der verteilten Dateisysteme
29
Gitterprotokoll
• Logische Organisation der dateibesitzenden Rechner
• Lesender Zugriff: min. 1 Rechner pro Spalte• Schreibender Zugriff: + alle Rechner einer Spalte
Synchronisation und Konsistenzerhaltung in verteilten Anwendungen
30
Votierungsverfahren
• Rechner stimmen über einen Lese- oder Schreibwunsch ab
• Hoher Kommunikationsbedarf• Korrekte Verwendung der Sperren wird
vorausgesetzt• Gut bei großen Datenblöcken
Synchronisation und Konsistenzerhaltung in verteilten Anwendungen
31
Datenblock
Synchronisation und Konsistenzerhaltung in verteilten Anwendungen
Datenblocknummer
Versionsnummer
Sperrzustand
Datenblockinhalt
32
Gebrauch des Datenblocks (1)
Synchronisation und Konsistenzerhaltung in verteilten Anwendungen
k
5
...
„ XX „
k
6
...
k
6
...
„ YY „ „ YY „
Rechner 1 Rechner 2 Rechner 3
Zustand vor Lesen
33
Gebrauch des Datenblocks (2)
Synchronisation und Konsistenzerhaltung in verteilten Anwendungen
k
7
...
„ ZZ „
k
7
...
k
6
...
„ ZZ „ „ YY „
Rechner 1 Rechner 2 Rechner 3
Zustand nach Schreiben
34
Votum und Quorum
• Votum: Stimmzahl der Rechner, die den Zugriff gestatten (d.h. erreichbar und keine Sperre gesetzt)
• Quorum: untere Schranke bei deren Erreichen oder Übertreffen der Zugriffswunsch gestattet wird
Synchronisation und Konsistenzerhaltung in verteilten Anwendungen
35
Votieren mit Mehrheitsentscheidung
• Jeder Rechner hat genau eine Stimme
Bsp.: Rechnernetz mit 4 Rechnern und vollständig repliziertem Datenbestand QU = 3 {{R1,R2,R3},{R1,R2,R4},{R1,R3,R4},{R2,R3,R4}}
Synchronisation und Konsistenzerhaltung in verteilten Anwendungen
1 1
11R1 R2
R4R3
36
• Unterschiedliche Stimmgewichte si für die Rechner
(S = ∑i si)
• Für Lesequorum (QUl) und Schreibquorum (QUs) gilt:
QUl + QUs > S
2 * QUs > S
Vorteile: • Null-Votum (Rechner mit si=0) wirkt leistungs-erhöhend beim
Lesen (schneller Zugriff)• QUl und QUs können auf erwartete Zugriffshäufigkeiten
abgestimmt werden
Gewichtetes Votieren
Synchronisation und Konsistenzerhaltung in verteilten Anwendungen
37
Gewichtetes Votieren: Beispiel
QU = 3{{R1,R2},{R1,R3},{R1,R4},{R1,R2,R3}}
Synchronisation und Konsistenzerhaltung in verteilten Anwendungen
1 1
12R1 R2
R3 R4
38
write-all-read-any
• Jeder Rechner hat Stimmgewicht = 1• QUl = 1
• QUs = n
Vorteil: schneller Lesezugriff
Nachteil: schwierig bei Änderungen
Synchronisation und Konsistenzerhaltung in verteilten Anwendungen
39
Votieren mit Zeugen
• Rechner ohne Datenblock, aber mit Stimmberechtigung
Vorteile:– Höhere Verfügbarkeit– Geringer Speicherplatzbedarf– Bei Ausfall eines Rechners erweiterbar zu voller
KopieNachteil:
– Stimmmehrheit erreichbar, aber aktuellste Version nicht dabei (Zeuge hat höchste Versionsnummer), d.h. nur Schreiben möglich
Synchronisation und Konsistenzerhaltung in verteilten Anwendungen
k
7
...
40
Available-Copy-Verfahren (1)
• Schreibt nur aktuell erreichbare Datenblockkopien fort• Abgestürzte Rechner aktualisieren sich bei Neustart• Jeder Rechner hat Stimmgewicht = 1• QUl = 1
• 1 ≤ QUs ≤ n
Synchronisation und Konsistenzerhaltung in verteilten Anwendungen
Problem:
Im Falle einer Partitionierung werden nicht erreichbare Datenblockkopien nicht fortgeschrieben und bei einer Vereinigung der Partitionen werden diese Kopien nicht aktualisiert.
Nur für LANs geeignet
41
Gliederung
• Grundlagen verteilter Anwendungen
• Einfache Verfahren zur
Nebenläufigkeitskontrolle
• Spezielle Verfahren zur
Nebenläufigkeitskontrolle
• Zusammenfassung
Synchronisation und Konsistenzerhaltung in verteilten Anwendungen
42
Zusammenfassung
• Grundlagen verteilter Anwendungen• Konsistenz Nebenläufigkeit• Verteilte Anwendungen häufig eingebettet in verteilte
Systeme ( weitere Möglichkeiten der Synchronisation, z.B. Multicast-Synchronisationsprotkolle, Arbeiten mit Zeitstempeln, usw.)
• Verschiedene Verfahren, die verteilte Anwendungen benutzen können
• Verfahren abhängig von Anwendung (Replikation, gewünschter Grad an Nebenläufigkeit, Anzahl der Teilnehmer, Anwendungsbereich (LAN, WAN,...),...)
Synchronisation und Konsistenzerhaltung in verteilten Anwendungen
43
Verfahren
Synchronisation und Konsistenzerhaltung in verteilten Anwendungen
Pessimistische
Zentrale Kontrolle Dezentrale Kontrolle Ausgezeichnete Kontrolleinheit Token-Verfahren
ohne Votierung mit VotierungEinfache SperrverfahrenFloor-Passing-VerfahrenTransaktionsverfahrenTransformationsverfahrenGitterprotokoll
Mit MehrheitsentscheidungGewichtetesWrite-all-read-anyMit ZeugenAvailable-Copy
Optimistische
44
FRAGEN
?Synchronisation und Konsistenzerhaltung in verteilten Anwendungen