44
1 Agenten und verteilte Anwendungen Synchronisation und Konsistenzerhaltung in verteilten Anwendungen 13. März 2003

1 Agenten und verteilte Anwendungen Synchronisation und Konsistenzerhaltung in verteilten Anwendungen 13. März 2003

Embed Size (px)

Citation preview

Page 1: 1 Agenten und verteilte Anwendungen Synchronisation und Konsistenzerhaltung in verteilten Anwendungen 13. März 2003

1

Agenten und verteilte Anwendungen

Synchronisation und Konsistenzerhaltung in verteilten Anwendungen

13. März 2003

Page 2: 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

Page 3: 1 Agenten und verteilte Anwendungen Synchronisation und Konsistenzerhaltung in verteilten Anwendungen 13. März 2003

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

Page 4: 1 Agenten und verteilte Anwendungen Synchronisation und Konsistenzerhaltung in verteilten Anwendungen 13. März 2003

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

Page 5: 1 Agenten und verteilte Anwendungen Synchronisation und Konsistenzerhaltung in verteilten Anwendungen 13. März 2003

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

Page 6: 1 Agenten und verteilte Anwendungen Synchronisation und Konsistenzerhaltung in verteilten Anwendungen 13. März 2003

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

Page 7: 1 Agenten und verteilte Anwendungen Synchronisation und Konsistenzerhaltung in verteilten Anwendungen 13. März 2003

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

Page 8: 1 Agenten und verteilte Anwendungen Synchronisation und Konsistenzerhaltung in verteilten Anwendungen 13. März 2003

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

Page 9: 1 Agenten und verteilte Anwendungen Synchronisation und Konsistenzerhaltung in verteilten Anwendungen 13. März 2003

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.

Page 10: 1 Agenten und verteilte Anwendungen Synchronisation und Konsistenzerhaltung in verteilten Anwendungen 13. März 2003

10

Partitionierung

schwer zu erkennenhöchstens in einer Partition darf

geschrieben werden

Synchronisation und Konsistenzerhaltung in verteilten Anwendungen

Partition 1 Partition 2

Page 11: 1 Agenten und verteilte Anwendungen Synchronisation und Konsistenzerhaltung in verteilten Anwendungen 13. März 2003

11

Gliederung

• Grundlagen verteilter Anwendungen

• Einfache Verfahren zur Nebenläufigkeitskontrolle (CC)

• Spezielle Verfahren zur

Nebenläufigkeitskontrolle (CC)

• Zusammenfassung

Synchronisation und Konsistenzerhaltung in verteilten Anwendungen

Page 12: 1 Agenten und verteilte Anwendungen Synchronisation und Konsistenzerhaltung in verteilten Anwendungen 13. März 2003

12

Klassifikation der Verfahren

Synchronisation und Konsistenzerhaltung in verteilten Anwendungen

optimistische pessimistische

zentrale Kontrolle dezentrale Kontrolle

Page 13: 1 Agenten und verteilte Anwendungen Synchronisation und Konsistenzerhaltung in verteilten Anwendungen 13. März 2003

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

Page 14: 1 Agenten und verteilte Anwendungen Synchronisation und Konsistenzerhaltung in verteilten Anwendungen 13. März 2003

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

Page 15: 1 Agenten und verteilte Anwendungen Synchronisation und Konsistenzerhaltung in verteilten Anwendungen 13. März 2003

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.

Page 16: 1 Agenten und verteilte Anwendungen Synchronisation und Konsistenzerhaltung in verteilten Anwendungen 13. März 2003

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

Page 17: 1 Agenten und verteilte Anwendungen Synchronisation und Konsistenzerhaltung in verteilten Anwendungen 13. März 2003

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

Page 18: 1 Agenten und verteilte Anwendungen Synchronisation und Konsistenzerhaltung in verteilten Anwendungen 13. März 2003

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

Page 19: 1 Agenten und verteilte Anwendungen Synchronisation und Konsistenzerhaltung in verteilten Anwendungen 13. März 2003

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

Page 20: 1 Agenten und verteilte Anwendungen Synchronisation und Konsistenzerhaltung in verteilten Anwendungen 13. März 2003

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

Page 21: 1 Agenten und verteilte Anwendungen Synchronisation und Konsistenzerhaltung in verteilten Anwendungen 13. März 2003

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.

Page 22: 1 Agenten und verteilte Anwendungen Synchronisation und Konsistenzerhaltung in verteilten Anwendungen 13. März 2003

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

Page 23: 1 Agenten und verteilte Anwendungen Synchronisation und Konsistenzerhaltung in verteilten Anwendungen 13. März 2003

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

Page 24: 1 Agenten und verteilte Anwendungen Synchronisation und Konsistenzerhaltung in verteilten Anwendungen 13. März 2003

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

Page 25: 1 Agenten und verteilte Anwendungen Synchronisation und Konsistenzerhaltung in verteilten Anwendungen 13. März 2003

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)

Page 26: 1 Agenten und verteilte Anwendungen Synchronisation und Konsistenzerhaltung in verteilten Anwendungen 13. März 2003

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“)

Page 27: 1 Agenten und verteilte Anwendungen Synchronisation und Konsistenzerhaltung in verteilten Anwendungen 13. März 2003

27

Gliederung

• Grundlagen verteilter Anwendungen

• Einfache Verfahren zur

Nebenläufigkeitskontrolle (CC)

• Spezielle Verfahren zur

Nebenläufigkeitskontrolle (CC)

• Zusammenfassung

Synchronisation und Konsistenzerhaltung in verteilten Anwendungen

Page 28: 1 Agenten und verteilte Anwendungen Synchronisation und Konsistenzerhaltung in verteilten Anwendungen 13. März 2003

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

Page 29: 1 Agenten und verteilte Anwendungen Synchronisation und Konsistenzerhaltung in verteilten Anwendungen 13. März 2003

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

Page 30: 1 Agenten und verteilte Anwendungen Synchronisation und Konsistenzerhaltung in verteilten Anwendungen 13. März 2003

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

Page 31: 1 Agenten und verteilte Anwendungen Synchronisation und Konsistenzerhaltung in verteilten Anwendungen 13. März 2003

31

Datenblock

Synchronisation und Konsistenzerhaltung in verteilten Anwendungen

Datenblocknummer

Versionsnummer

Sperrzustand

Datenblockinhalt

Page 32: 1 Agenten und verteilte Anwendungen Synchronisation und Konsistenzerhaltung in verteilten Anwendungen 13. März 2003

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

Page 33: 1 Agenten und verteilte Anwendungen Synchronisation und Konsistenzerhaltung in verteilten Anwendungen 13. März 2003

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

Page 34: 1 Agenten und verteilte Anwendungen Synchronisation und Konsistenzerhaltung in verteilten Anwendungen 13. März 2003

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

Page 35: 1 Agenten und verteilte Anwendungen Synchronisation und Konsistenzerhaltung in verteilten Anwendungen 13. März 2003

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

Page 36: 1 Agenten und verteilte Anwendungen Synchronisation und Konsistenzerhaltung in verteilten Anwendungen 13. März 2003

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

Page 37: 1 Agenten und verteilte Anwendungen Synchronisation und Konsistenzerhaltung in verteilten Anwendungen 13. März 2003

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

Page 38: 1 Agenten und verteilte Anwendungen Synchronisation und Konsistenzerhaltung in verteilten Anwendungen 13. März 2003

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

Page 39: 1 Agenten und verteilte Anwendungen Synchronisation und Konsistenzerhaltung in verteilten Anwendungen 13. März 2003

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

...

Page 40: 1 Agenten und verteilte Anwendungen Synchronisation und Konsistenzerhaltung in verteilten Anwendungen 13. März 2003

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

Page 41: 1 Agenten und verteilte Anwendungen Synchronisation und Konsistenzerhaltung in verteilten Anwendungen 13. März 2003

41

Gliederung

• Grundlagen verteilter Anwendungen

• Einfache Verfahren zur

Nebenläufigkeitskontrolle

• Spezielle Verfahren zur

Nebenläufigkeitskontrolle

• Zusammenfassung

Synchronisation und Konsistenzerhaltung in verteilten Anwendungen

Page 42: 1 Agenten und verteilte Anwendungen Synchronisation und Konsistenzerhaltung in verteilten Anwendungen 13. März 2003

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

Page 43: 1 Agenten und verteilte Anwendungen Synchronisation und Konsistenzerhaltung in verteilten Anwendungen 13. März 2003

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

Page 44: 1 Agenten und verteilte Anwendungen Synchronisation und Konsistenzerhaltung in verteilten Anwendungen 13. März 2003

44

FRAGEN

?Synchronisation und Konsistenzerhaltung in verteilten Anwendungen