Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

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

Ähnliche Präsentationen


Präsentation zum Thema: "1 Agenten und verteilte Anwendungen Synchronisation und Konsistenzerhaltung in verteilten Anwendungen 13. März 2003."—  Präsentation transkript:

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

2 2 Gliederung Grundlagen verteilter Anwendungen Einfache Verfahren zur Nebenläufigkeitskontrolle Spezielle Verfahren zur Nebenläufigkeitskontrolle Zusammenfassung Synchronisation und Konsistenzerhaltung in verteilten Anwendungen

3 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 4 Aufbau von Verteilten Systemen Synchronisation und Konsistenzerhaltung in verteilten Anwendungen Verteiltes Rechensystem Netzwerk Verteiltes Ablaufsystem (Verwaltung der Systemobjekte auf die die Komponenten der Anwendung abgebildet werden) evtl. verteiltes BS Verteilte Anwendung Komponente 1Komponente n... Komponente 2

5 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 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 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 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 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 10 Partitionierung  schwer zu erkennen  höchstens in einer Partition darf geschrieben werden Synchronisation und Konsistenzerhaltung in verteilten Anwendungen Partition 1 Partition 2

11 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 12 Klassifikation der Verfahren Synchronisation und Konsistenzerhaltung in verteilten Anwendungen optimistischepessimistische zentrale Kontrolledezentrale Kontrolle

13 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 Konflikte  Je 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 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 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 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 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 18 mit dezentraler Kontrolle Synchronisation und Konsistenzerhaltung in verteilten Anwendungen Pessimistische Verfahren Zentrale Kontrolle Dezentrale Kontrolle Ausgezeichnete Kontrolleinheit Token-Verfahren ohne Votierungmit Votierung Einfache Sperrverfahren Floor-Passing-Verfahren Transaktionsverfahren Transformationsverfahren

19 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 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 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 22 Floor-Passing-Verfahren Verfahren mit wechselnder Kontrolle Sperrmechanismen werden nicht benötigt a)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 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 24 Transformationsverfahren (2) Problemstellung: Synchronisation und Konsistenzerhaltung in verteilten Anwendungen t t „abcd“ „abxcd“ „abcd“ „abcyd“ „abxcyd“„abxycd“ O 1 =insert(x,3)O 2 =insert(y,4) Ohne Anpassung der Operationen hängt das Ergebnis von der Reihenfolge der Operationsausführung ab. Benutzer 1Benutzer 2

25 25 Transformationsverfahren (3) Operationstransformation, so dass: O` 1 ° O 2 = O` 2 ° O 1 man benötigt: –Prioritäten von Operationen (p i = Priorität von Aktion i) –Transformationsmatrix T Synchronisation und Konsistenzerhaltung in verteilten Anwendungen (insert(x i, Pos i ), insert(x j, Pos j ),p i,p j ) (delete(Pos i ), insert(x j,Pos j ),p i,p j ) (insert(x i,Pos i ), delete(Pos j ),p i,p j ) (delete(Pos i ), delete(Pos j ),p i, p j )

26 26 Transformationsverfahren (4) Implementierung der Konfliktpaare von T T 11 : if (Pos i Pos j ) then O` i := insert(x i,Pos i+1 ); elsif (x i = x j ) then O` i := no-op; elsif (p i > p j ) then O` i := insert(x i,Pos i+1 ); else O‘ i := insert(x i,Pos i ); T 12 : usw. Synchronisation und Konsistenzerhaltung in verteilten Anwendungen Seien wieder O 1 =insert(x,3) und O 2 =insert(y,4). Index als Priorität.  O` 1 = insert(x,3) bzw. O` 2 = insert(y,5)  O` 1 ° O 2 („abcd“) = „abxcyd“ = O` 2 ° O 1 („abcd“)

27 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 28 Spezielle Verfahren Synchronisation und Konsistenzerhaltung in verteilten Anwendungen Pessimistische Verfahren Zentrale KontrolleDezentrale Kontrolle Ausgezeichnete Kontrolleinheit Token-Verfahren ohne Votierungmit Votierung Einfache Sperrverfahren Floor-Passing-Verfahren Transaktionsverfahren Transformationsverfahren Kodierungsverfahren Gitterprotokoll Mit Mehrheitsentscheidung gewichtetes write-all-read-any mit Zeugen Available-Copy dynamisches Aus dem Bereich der verteilten Dateisysteme

29 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 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 31 Datenblock Synchronisation und Konsistenzerhaltung in verteilten Anwendungen Datenblocknummer Versionsnummer Sperrzustand Datenblockinhalt

32 32 Gebrauch des Datenblocks (1) Synchronisation und Konsistenzerhaltung in verteilten Anwendungen k 5... „ XX „ k 6... k 6... „ YY „ Rechner 1Rechner 2Rechner 3 Zustand vor Lesen

33 33 Gebrauch des Datenblocks (2) Synchronisation und Konsistenzerhaltung in verteilten Anwendungen k 7... „ ZZ „ k 7... k 6... „ ZZ „„ YY „ Rechner 1Rechner 2Rechner 3 Zustand nach Schreiben

34 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 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 R1 R2 R4R3

36 36 Unterschiedliche Stimmgewichte s i für die Rechner (S = ∑ i s i ) Für Lesequorum (QU l ) und Schreibquorum (QU s ) gilt: QU l + QU s > S 2 * QU s > S Vorteile: Null-Votum (Rechner mit s i =0) wirkt leistungs- erhöhend beim Lesen (schneller Zugriff) QU l und QU s können auf erwartete Zugriffshäufigkeiten abgestimmt werden Gewichtetes Votieren Synchronisation und Konsistenzerhaltung in verteilten Anwendungen

37 37 Gewichtetes Votieren: Beispiel  QU = 3  {{R1,R2},{R1,R3},{R1,R4},{R1,R2,R3}} Synchronisation und Konsistenzerhaltung in verteilten Anwendungen R1 R2 R3R4

38 38 write-all-read-any Jeder Rechner hat Stimmgewicht = 1 QU l = 1 QU s = n Vorteil: schneller Lesezugriff Nachteil: schwierig bei Änderungen Synchronisation und Konsistenzerhaltung in verteilten Anwendungen

39 39 Votieren mit Zeugen Rechner ohne Datenblock, aber mit Stimmberechtigung Vorteile: –Höhere Verfügbarkeit –Geringer Speicherplatzbedarf –Bei Ausfall eines Rechners erweiterbar zu voller Kopie Nachteil: –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 40 Available-Copy-Verfahren (1) Schreibt nur aktuell erreichbare Datenblockkopien fort Abgestürzte Rechner aktualisieren sich bei Neustart Jeder Rechner hat Stimmgewicht = 1 QU l = 1 1 ≤ QU s ≤ 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 41 Gliederung Grundlagen verteilter Anwendungen Einfache Verfahren zur Nebenläufigkeitskontrolle Spezielle Verfahren zur Nebenläufigkeitskontrolle Zusammenfassung Synchronisation und Konsistenzerhaltung in verteilten Anwendungen

42 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 43 Verfahren Synchronisation und Konsistenzerhaltung in verteilten Anwendungen Pessimistische Zentrale KontrolleDezentrale Kontrolle Ausgezeichnete Kontrolleinheit Token-Verfahren ohne Votierungmit Votierung Einfache Sperrverfahren Floor-Passing-Verfahren Transaktionsverfahren Transformationsverfahren Gitterprotokoll Mit Mehrheitsentscheidung Gewichtetes Write-all-read-any Mit Zeugen Available-Copy Optimistische

44 44 FRAGEN ? Synchronisation und Konsistenzerhaltung in verteilten Anwendungen

45 45 Entwurf verteilter Anwendungen Schnittstelle zu anderen Komponenten (was ist entfernt verfügbar?) Wie können Komponenten im Netzwerk lokalisiert werden? Umgang mit Fehlermeldungen? Erwünschter Grad an Unabhängigkeit? Datenaustausch ( z.B. durch RPC, gemeinsame Datenstrukturen, Nachrichten,...)? Replikation der Daten? Synchronisation und Konsistenzerhaltung in verteilten Anwendungen

46 46 Literatur (Auszug) [BS2000] Borghoff, Schlichter: Computer-Supported Cooperative Work: Introduction to Distributed Applications [MA1994] Mayer: Synchronisation in kooperativen Systemen [HH1994]: Herrtwich, Hommel: Nebenläufige Programme [CO2001]: Coulouris, Dollimore, Kindberg: Distributed Systems – Concepts and Design [TA2002]: Tanenbaum, van Steen: Distributed Systems – Principles and Paradigms Synchronisation und Konsistenzerhaltung in verteilten Anwendungen

47 47 Transaktionsverfahren Auf Prinzip der Transaktionen Von Vorteil, wenn Transaktionen sehr kurz und Konflikte schnell auflösbar Einsetzbar, wenn zu erwarten, dass Benutzung der gemeinsamen Datenbestände asynchron erfolgt (d.h. geringe Konfliktwahrscheinlichkeit) Systeme mit dieser Kontrolle stützen sich häufig auf Datenbanksysteme ab Synchronisation und Konsistenzerhaltung in verteilten Anwendungen

48 48 Serialisierbarkeit (1) Zwei Transaktionen T 1 und T 2 sind serialisierbar, wenn das Ergebnis ihrer Ausführung dem Ergebnis einer seriellen Ausführung von T 1 und T 2 in einer beliebigen Ordnung entspricht (d.h. T 1  T 2 oder T 2  T 1 ) Funktioniert nur, wenn T 1 und T 2 nicht im Konflikt stehen Stehen im Konflikt, wenn gleiches Datum betroffen und eine der Transaktionen eine Schreiboperation ist Synchronisation und Konsistenzerhaltung in verteilten Anwendungen

49 49 Coterie Rechnermengen, die ein Lesen oder Schreiben durchführen dürfen. Def.: A set C of node sets is called a coterie if the following three conditions are true: 1.Empty set condition: If c i is a node in C then c i is not empty. 2.Intersection condition: If c i and c j are node sets in C then their intersection is not empty. 3.Minimality condition: There are no node set pairs c i and c j in C such that c i c j. Mit einer Coterie kann man ein Votum überprüfen Synchronisation und Konsistenzerhaltung in verteilten Anwendungen ∩

50 50 Kodierungsverfahren Neben Synchronisation wird versucht Speicherplatz zu sparen und die Datensicherheit zu erhöhen Grundidee: –Kodieren der Datei d in N Stücke der Größe |d| / M, so dass M (disjunkte) Stücke genügen, um die Datei zu rekonstruieren. Unautorisierter Benutzer muss in M Rechner eindringen, um an die Datei zu kommen und muss diese dann noch entschlüsseln. Synchronisation und Konsistenzerhaltung in verteilten Anwendungen

51 51 Dynamisches Votieren Ziel: Fehlertoleranz in der Quorumpartition erhöhen. Viele Stimmanteile außerhalb der Partition und deshalb schwer ein erfolgreiches Votum zu erzielen neue Zuordnung der Stimmen innerhalb der Quorumpartition a)Gruppen-Konsensus: Bestimmen eines Koordinators und dann abstimmen über neue Stimmgewichte (Mehr-Phasen-Commit-Protokoll) b)Autonomes Vorgehen: Eigenständiges Ändern der Stimmgewichte. Dieses muss vor Anwendung durch eine Mehrheit der stimmberechtigten Rechner akzeptiert werden Synchronisation und Konsistenzerhaltung in verteilten Anwendungen


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

Ähnliche Präsentationen


Google-Anzeigen