Agenten und verteilte Anwendungen

Slides:



Advertisements
Ähnliche Präsentationen
Kapitel 15 Verteilte Datenbanken
Advertisements

Partitionierungstechniken in Datenbanksystemen
Transaktionsverwaltung Beispiel einer typischen Transaktion in einer Bankanwendung: 1.Lese den Kontostand von A in die Variable a: read(A,a); 2.Reduziere.
Daten - Sicherung Begriffsdefinition Arten der Datensicherung
Wiederholung Betriebssystem bietet eine Abstraktion der Hardware an:
Von David Keß, Heinrich Wölk, Daniel Hauck
Seminar zur Nebenläufigkeit in verteilten Systemen Kodierungsverfahren vorgestellt von Jens Brauckmann.
3. Kapitel: Komplexität und Komplexitätsklassen
R. Der - Vorlesung Algorithmen und Datenstrukturen (Magister)
Finale Semantik und beobachtbares Verhalten
Vs61 6 Verteilte Datenverwaltung. vs62 Ziel:Zusammengehöriger Datenbestand soll über mehrere Stationen verteilt werden, z.B. Fragmentierung: in mehrere.
Replikationsarchitekturen Informationsverwaltung von Netzen Sommersemester 2003 Konrad Kretschmer
Transaktionsverwaltung Beispiel einer typischen Transaktion in einer Bankanwendung: 1.Lese den Kontostand von A in die Variable a: read(A,a); 2.Reduziere.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (27 – Kürzeste Wege) Prof. Th. Ottmann.
Transaktionen in verteilten Datenbanken
Access 2000 Datenbanken.
Seminar: Verteilte Datenbanken
Datenbanksysteme für FÜ SS 2000 Seite Worzyk FH Anhalt Transaktionen und Parallelverarbeitung Eigenschaften von Transaktionen Konsistenz Isolation.
1 Kapitel 12: Transaktionsverwaltung Oliver Vornberger Fachbereich Mathematik/Informatik Universität Osnabrück Osnabrück
1 Kapitel 12: Transaktionsverwaltung. 2 Transaktion Bündelung mehrerer Datenbankoperationen Mehrbenutzersynchronisation Recovery.
Synchronisation paralleler Transaktionen AIFB SS Synchronisationsverfahren 4.4 Synchronisationsverfahren (1/18) Sperrmodi und Sperrobjekte Sperrprotokoll.
Einige Begriffe zum Anfang.... Transaktionsprozedur: Folge primitiver Operationen als Einheit der Konsistenz und der Robustheit. Transaktion (TA): Ausführung.
Transaktion 1Transaktion 2... Transaktion n Synchronisation durch Scheduler Datenbasis-Verwalter lokaler Schedule 1lokaler Schedule n konfliktserialisierbarer.
4.4.2 Sperrverfahren (9/18) Regeln für das Setzen von Sperren
Ausführungsmodell Zustandsübergang einer Transaktion aus Nutzersicht:
Synchronisation paralleler Transaktionen AIFB SS Konzept der Transaktion 4.2 Konzept der Transaktion (1/4) Eine Transaktion ist ein in sich geschlossener,
Betriebliche Informationssysteme Prof. Dr. Michael Löwe
Smartphones im Kanzleinetz Vergleich der technischen Umsetzung COLLEGA - TAG Freitag, 27. November 2009.
Tino Reindanz - FSU Jena Seminar Aktive Datenbanken – SS 2007 Folie 1 Seminar Aktive Datenbanken Rule Development Rule Development for Active Database.
Datenmodelle, Datenbanksprachen und Datenbankmanagementsysteme
Netzwerke Peer-to-Peer-Netz Client-Server Alleinstehende Server
Evaluierung des ITU-T.124 Telekonferenzstandards
Entwicklung verteilter eingebetteter Systeme - Einführung
7.1 Externes Suchen Bisherige Algorithmen: geeignet, wenn alle Daten im Hauptspeicher. Große Datenmengen: oft auf externen Speichermedien, z.B. Festplatte.
Effiziente Algorithmen
Geschäftsprozesse: Workgroup-Computing.
Systeme 1 Kapitel 4 Prozesse WS 2009/10.
Black Box Algorithmen Hartmut Klauck Universität Frankfurt SS
WS 2012/13 Datenbanksysteme Mi 15:15 – 16:45 R Vorlesung #11 Transaktionsverwaltung.
WS 2011/12 Datenbanksysteme Mi 15:15 – 16:45 R Vorlesung #10 Transaktionsverwaltung.
Replikation und Synchronisation
Transaktion Huang Zhenhao FU Shuai.
Datenbanksysteme Technische Grundlagen Transaktions-Konzept, Mehrbenutzer-Synchronisation, Fehlerbehandlung Prof. Dr. Manfred Gruber FH München.
Verteilte Systeme Marcel Waldvogel. Marcel Waldvogel, IBM Zurich Research Laboratory, Universität Konstanz, , 2 Verteilte Systeme Entwicklung.
ADAT©2004,2006 Dipl. - Ing. Walter SabinSeite: 48 Version 1.0a Recovery Wiederherstellung eines konsistenten Datenbankzustandes nach Fehlersituationen.
Integritätserhaltung und -Überprüfung in deduktiven Datenbanken
Des eenen sin Uhl is des annern sin Nachtigall Wie ein Daten-GAU zur Softwareentwicklung beiträgt.
Mehrbenutzerzugriff auf GIS-Daten
Transaktionsverwaltung
->Prinzip ->Systeme ->Peer – to – Peer
7.2.4 Klassifikation mobilen Codes Nicht vergessen:  Sowohl das Fernkopieren als auch die Migration von Objekten setzt voraus, daß der Code entweder am.
6.1.2 Sequentielle Konsistenz
Synchronisation mit Zeitmarken (1) Zeitmarken-Synchronisation = einfaches, aber ineffizientes Verfahren zur Gewinnung konfliktserialisierbarer Schedules.
Serialisierbarkeitsprinzip Isolationsprinzip scheint zunächst streng serielle Abwicklung der Transaktionen zu fordern: r 1 (x) r 1 (y)... w 1 (z) c 1 r.
Synchronisation paralleler Transaktionen  AIFB SS Synchronisationsverfahren 4.4 Synchronisationsverfahren (1/3) Typen von Synchronisationsverfahren.
Vs51 5 Verteilte Datenverwaltung. vs52 Situation:Zusammengehöriger Datenbestand ist über mehrere Stationen verteilt, z.B. Fragmentierung: in mehrere Fragmente.
5.1.2 Sequentielle Konsistenz
Vs Verteilte Transaktionen Situation:Fragmentierung: Ein Datenbestand ist über mehrere Stationen verteilt (z.B. verteilte Datenbank, verteiltes Dateisystem,...)
Vs Objektpufferung (caching) = dynamische, ad-hoc-Replikation einer Primärkopie: Zugriffswilliger beschafft sich temporär eine lokale Kopie cache.
6.3 Verteilte Transaktionen
WILLKOMMEN Daniel Matheis Betreuer: Birgitta König-Ries Michael Klein "Dezentrale Realisierung von Gruppendiensten in Peer-to-Peer-Umgebungen" Studienarbeiter:
Middleware in Java vieweg 2005 © Steffen Heinzl, Markus Mathes Kapitel 1: Architektur verteilter Systeme.
Transaktionsverwaltung Beispiel einer typischen Transaktion in einer Bankanwendung: 1.Lese den Kontostand von A in die Variable a: read(A,a); 2.Reduziere.
Vs61 6 Fehlertoleranz. vs62 Zuverlässigkeit (reliability) Sicherheit vor FehlernSicherheit vor Angriffen (safety)(security) WS/SS xySystemsicherheit SS.
Christos Mavridis ‌ WG13 ‌‌‌ Köln, Update und Patch-Management.
Programmiersprachen II Fortsetzung Datenstrukturen Hashing Prof. Dr. Reiner Güttler Fachbereich GIS HTW.
© 2008 TravelTainment The Amadeus Leisure Group Thread-Programmierung im Qt-Framework Von: Simon Lubberich Erstbetreuer:
Dr. Wolfram Amme, Automatische Speicherverwaltung, Informatik II, FSU Jena, SS Automatische Speicherverwaltung.
6.3 Verteilte Transaktionen
Routing … … die Suche nach dem Weg..
 Präsentation transkript:

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

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

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

Aufbau von Verteilten Systemen Verteiltes Rechensystem Netzwerk Verteiltes Ablaufsystem (Verwaltung der Systemobjekte auf die die Komponenten der Anwendung abgebildet werden) evtl. verteiltes BS Verteilte Anwendung Komponente 1 Komponente n ... Komponente 2 Synchronisation und Konsistenzerhaltung in verteilten Anwendungen

Konsistenz (traditionell) (1) Aus Datenbanktechnik: Serialisierbarkeit als Korrektheitskriterium des Transaktionskonzeptes 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 Synchronisation und Konsistenzerhaltung in verteilten Anwendungen

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

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. feine Granularität  hoher Netzwerkverkehr grobe Granularität  geringer Grad an Nebenläufigkeit Synchronisation und Konsistenzerhaltung in verteilten Anwendungen

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

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 Probleme bei verteilten Anwendungen, da häufig eine sehr hohe Verfügbarkeit gewünscht wird. Synchronisation und Konsistenzerhaltung in verteilten Anwendungen

Synchronisation und Konsistenzerhaltung in verteilten Anwendungen Partitionierung Partition 1 Partition 2 schwer zu erkennen höchstens in einer Partition darf geschrieben werden Synchronisation und Konsistenzerhaltung in verteilten Anwendungen

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

Klassifikation der Verfahren optimistische pessimistische zentrale Kontrolle dezentrale Kontrolle Synchronisation und Konsistenzerhaltung in verteilten Anwendungen

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

Pessimistische Verfahren Inkonsistente Datenbestände werden nicht geduldet Klassifikation: Pessimistische Verfahren Dezentrale Kontrolle Zentrale Kontrolle Ausgezeichnete Kontrolleinheit Token-Verfahren Synchronisation und Konsistenzerhaltung in verteilten Anwendungen

Ausgezeichnete Kontrolleinheit Basiert auf Konzept der Zentralisierung Eine Kontrolleinheit (KE) verantwortlich für alle (Schreib-) zugriffe DATEN Nachteile: Keine weiteren Zugriffe bei Ausfall der KE. Bei Partitionierung auch Lesezugriffe nur in Partition mit KE. Synchronisation und Konsistenzerhaltung in verteilten Anwendungen

Synchronisation und Konsistenzerhaltung in verteilten Anwendungen 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

Synchronisation und Konsistenzerhaltung in verteilten Anwendungen 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

mit dezentraler Kontrolle Pessimistische Verfahren Dezentrale Kontrolle Zentrale Kontrolle Ausgezeichnete Kontrolleinheit Token-Verfahren ohne Votierung mit Votierung Einfache Sperrverfahren Floor-Passing-Verfahren Transaktionsverfahren Transformationsverfahren Synchronisation und Konsistenzerhaltung in verteilten Anwendungen

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

Synchronisation und Konsistenzerhaltung in verteilten Anwendungen Tickle lock Sperre nur so lange wie benötigt Sobald Benutzer nichts mehr tut, wird Sperre automatisch frei gegeben Nachteil: Absturz des Rechners der die Sperre besitzt  gesperrter Teil bleibt bis zu Neustart des Rechners gesperrt Synchronisation und Konsistenzerhaltung in verteilten Anwendungen

Synchronisation und Konsistenzerhaltung in verteilten Anwendungen 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 Nachteil: Zeitweise nicht Einhalten der Konsistenz, aufgrund von Kommunikationsverzögerungen. Synchronisation und Konsistenzerhaltung in verteilten Anwendungen

Floor-Passing-Verfahren Verfahren mit wechselnder Kontrolle Sperrmechanismen werden nicht benötigt explizites: Kontrolle wird aktiv vom Benutzer weitergegeben implizites: Vergabe der Kontrolle durch Koordinator Nachteile: Benachteiligung anderer Komponenten Ausfall der Einheit mit Kontrolle Vorteil: keine Benachteiligung von Komponenten Nachteil: Ausfall des Koordinators Synchronisation und Konsistenzerhaltung in verteilten Anwendungen

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

Transformationsverfahren (2) Problemstellung: Benutzer 1 Benutzer 2 „abcd“ „abxcd“ „abcd“ „abcyd“ O1=insert(x,3) O2=insert(y,4) „abxycd“ „abxcyd“ t t Ohne Anpassung der Operationen hängt das Ergebnis von der Reihenfolge der Operationsausführung ab. Synchronisation und Konsistenzerhaltung in verteilten Anwendungen

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 (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) Synchronisation und Konsistenzerhaltung in verteilten Anwendungen

Transformationsverfahren (4) Implementierung der Konfliktpaare von T T11: 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. 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“) Synchronisation und Konsistenzerhaltung in verteilten Anwendungen

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

Spezielle Verfahren Pessimistische Verfahren Zentrale Kontrolle Aus dem Bereich der verteilten Dateisysteme Spezielle Verfahren Pessimistische Verfahren Zentrale Kontrolle Dezentrale Kontrolle Ausgezeichnete Kontrolleinheit Token-Verfahren ohne Votierung mit Votierung Einfache Sperrverfahren Floor-Passing-Verfahren Transaktionsverfahren Transformationsverfahren Kodierungsverfahren Gitterprotokoll Mit Mehrheitsentscheidung gewichtetes write-all-read-any mit Zeugen Available-Copy dynamisches Synchronisation und Konsistenzerhaltung in verteilten Anwendungen

Synchronisation und Konsistenzerhaltung in verteilten Anwendungen 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

Synchronisation und Konsistenzerhaltung in verteilten Anwendungen 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

Synchronisation und Konsistenzerhaltung in verteilten Anwendungen Datenblock Datenblocknummer Versionsnummer Sperrzustand Datenblockinhalt Synchronisation und Konsistenzerhaltung in verteilten Anwendungen

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

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

Synchronisation und Konsistenzerhaltung in verteilten Anwendungen 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

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}} 1 1 R2 R1 R3 R4 1 1 Synchronisation und Konsistenzerhaltung in verteilten Anwendungen

Synchronisation und Konsistenzerhaltung in verteilten Anwendungen Gewichtetes Votieren 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 Synchronisation und Konsistenzerhaltung in verteilten Anwendungen

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

Synchronisation und Konsistenzerhaltung in verteilten Anwendungen 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

Synchronisation und Konsistenzerhaltung in verteilten Anwendungen Votieren mit Zeugen k 7 ... 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

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 Nur für LANs geeignet Problem: Im Falle einer Partitionierung werden nicht erreichbare Datenblockkopien nicht fortgeschrieben und bei einer Vereinigung der Partitionen werden diese Kopien nicht aktualisiert. Synchronisation und Konsistenzerhaltung in verteilten Anwendungen

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

Synchronisation und Konsistenzerhaltung in verteilten Anwendungen 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

Synchronisation und Konsistenzerhaltung in verteilten Anwendungen Verfahren Pessimistische Optimistische Zentrale Kontrolle Dezentrale Kontrolle Ausgezeichnete Kontrolleinheit Token-Verfahren ohne Votierung mit Votierung Einfache Sperrverfahren Floor-Passing-Verfahren Transaktionsverfahren Transformationsverfahren Gitterprotokoll Mit Mehrheitsentscheidung Gewichtetes Write-all-read-any Mit Zeugen Available-Copy Synchronisation und Konsistenzerhaltung in verteilten Anwendungen

Synchronisation und Konsistenzerhaltung in verteilten Anwendungen FRAGEN ? Synchronisation und Konsistenzerhaltung in verteilten Anwendungen

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

Synchronisation und Konsistenzerhaltung in verteilten Anwendungen 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

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

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

Synchronisation und Konsistenzerhaltung in verteilten Anwendungen 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: Empty set condition: If ci is a node in C then ci is not empty. Intersection condition: If ci and cj are node sets in C then their intersection is not empty. Minimality condition: There are no node set pairs ci and cj in C such that ci cj. Mit einer Coterie kann man ein Votum überprüfen ∩ Synchronisation und Konsistenzerhaltung in verteilten Anwendungen

Synchronisation und Konsistenzerhaltung in verteilten Anwendungen 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

Synchronisation und Konsistenzerhaltung in verteilten Anwendungen 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 Gruppen-Konsensus: Bestimmen eines Koordinators und dann abstimmen über neue Stimmgewichte (Mehr-Phasen-Commit-Protokoll) 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