5.1.2 Sequentielle Konsistenz

Slides:



Advertisements
Ähnliche Präsentationen
Kapitel 15 Verteilte Datenbanken
Advertisements

Transaktionsverwaltung Beispiel einer typischen Transaktion in einer Bankanwendung: 1.Lese den Kontostand von A in die Variable a: read(A,a); 2.Reduziere.
Kapitel 11 Deadlocks RW-Systemarchitekur Kap. 11.
Beim Start eines Prozesses in Windows NT, 2000 wird a der Programmtext aus der exe-Datei ab der dort angegebenen Adresse gespeichert.
C Tutorium – Semaphoren –
Seminar zur Nebenläufigkeit in verteilten Systemen Kodierungsverfahren vorgestellt von Jens Brauckmann.
Vs61 6 Verteilte Datenverwaltung. vs62 Ziel:Zusammengehöriger Datenbestand soll über mehrere Stationen verteilt werden, z.B. Fragmentierung: in mehrere.
Nsp Semaphore sind einfache Synchronisationsobjekte, ähnlich wie Ereignisse, aber unabhängig von Monitoren: (das) Semaphor: altes Flügelsignal.
6.3 Ereignisbasierte Systeme Ereignis (event) : eine Ereignis-Quelle (event source, publisher) generiert Benachrichtigung (event notification), an der.
4 Verteilte Algorithmen
4.2 Gruppenkommunikation (group communication) Bedeutet:Sendeoperation bezieht sich auf mehrere Adressaten - die Mitglieder einer Prozeßgruppe (process.
Transaktionsverwaltung Beispiel einer typischen Transaktion in einer Bankanwendung: 1.Lese den Kontostand von A in die Variable a: read(A,a); 2.Reduziere.
Objektrelationales Mapping mit JPA Working with Persistent Objects Jonas Bandi Simon Martinelli.
Nebenläufigkeit Teil I
OpenMP Präsentation im Rahmen des Seminars
3.1.7 Korrektheit von Objekten Voraussetzung für die Diskussion der Korrektheit von nichtsequentiell benutzten abstrakten Objekten: Modellbasierte Spezifikation:
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.
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.
Recovery AIFB SS (1/8) Sicherungspunkte (Checkpoints) (1/8) (1) Transaktions-Orientierte Sicherungspunkte Transaction-Oriented Checkpoint.
Modellierung von Transaktionen Zur Formalisierung der ACID-Garantien muss Verhalten von Transaktionen modelliert werden. Folge aus der Forderung nach lokaler.
Synchronisation paralleler Transaktionen AIFB SS Konzept der Transaktion 4.2 Konzept der Transaktion (1/4) Eine Transaktion ist ein in sich geschlossener,
1 Klassen (1) Eine Klasse beschreibt eine Menge von Objekten mit gemeinsamer Struktur gemeinsamem Verhalten gemeinsamen Beziehungen gemeinsamer Semantik.
Wizards & Builders GmbH Schulung Visual SourceSafe für Visual FoxPro Norbert Abb W&B.
Entwicklung verteilter eingebetteter Systeme - Einführung
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.
Thread Synchronisation in JAVA
Verteilte Systeme Marcel Waldvogel. Marcel Waldvogel, IBM Zurich Research Laboratory, Universität Konstanz, , 2 Verteilte Systeme Entwicklung.
Interprozess- kommunikation (IPC)
Technische Informatik II
____________________________________________________________________________________________________________________________________________ Arbeit, Bildung.
Mehrbenutzerzugriff auf GIS-Daten
Vs Objektpufferung (caching) = dynamische, ad-hoc-Replikation einer Primärkopie: Zugriffswilliger beschafft sich temporär eine lokale Kopie cache.
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.
4.4 Sperrsynchronisation
Recovery    AIFB SS (1/6) Durchführung der Recovery-Maßnahmen(1/6) Transaktions-Fehler (TF) T1 T2 T3 Zeitt Transaktion T2 wird vom.
7.5.5 Namensdienste (bereits erwähnte Beispiele: Rmiregistry, Portmapper)  dienen der Abbildung von „Namen“ auf Verweise, Nummern,...  sollten ihre Information.
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.
Vs Gruppenkommunikation (group communication) Bedeutet:Sendeoperation bezieht sich auf mehrere Adressaten - die Mitglieder einer Prozessgruppe.
Vs Replizierte Objekte Vollständige Replikationsabstraktion ist attraktiv und machbar. 2 Beispiele: Orca(H. Bal, VU Amsterdam, ) = klassenbasierte,
Vs51 5 Verteilte Datenverwaltung. vs52 Situation:Zusammengehöriger Datenbestand ist über mehrere Stationen verteilt, z.B. Fragmentierung: in mehrere Fragmente.
Vs Verteilte Transaktionen Situation:Fragmentierung: Ein Datenbestand ist über mehrere Stationen verteilt (z.B. verteilte Datenbank, verteiltes Dateisystem,...)
Vs Verteilte Verzeichnisse können ein verteiltes Betriebssystem unterstützen dienen der Abbildung von „Namen“ auf „Daten“ aller Art sollten ihre.
Nichtsequentielle Programmierung Klaus-Peter Löhr Freie Universität Berlin WS 2002/03.
Vs Objektpufferung (caching) = dynamische, ad-hoc-Replikation einer Primärkopie: Zugriffswilliger beschafft sich temporär eine lokale Kopie cache.
6.3 Verteilte Transaktionen
NET Remoting.Net („dotnet“) :von Microsoft eingeführte Plattform für verteilte Anwendungen, virtuelle Maschine für die verteilte Ausführung von.
Transaktionsverwaltung Beispiel einer typischen Transaktion in einer Bankanwendung: 1.Lese den Kontostand von A in die Variable a: read(A,a); 2.Reduziere.
Vs41 4 Verteilte Algorithmen. vs42 Prozesse als Systemkomponenten:  Spezifikation eines Prozesses ? (Vgl. Spezifikation eines ADT) syntaktisch:z.B. Ports.
Vs Auswahlalgorithmen (election algorithms) dienen der Wahl eines Koordinators („Gruppenleiters“) einer Gruppe bei „halbverteilten“ Algorithmen.
Vs61 6 Fehlertoleranz. vs62 Zuverlässigkeit (reliability) Sicherheit vor FehlernSicherheit vor Angriffen (safety)(security) WS/SS xySystemsicherheit SS.
Agenten und verteilte Anwendungen
Schritt für Schritt-Anleitung
Programmiersprachen II Vorbesprechung Klausur Prof. Dr. Reiner Güttler Fachbereich GIS HTW.
Transaktionsverwaltung Beispiel einer typischen Transaktion in einer Bankanwendung: 1.Lese den Kontostand von A in die Variable a: read(A,a); 2.Reduziere.
Vs Verteilte Hash-Tabellen (distributed hastables, DHT) am Beispiel von Chord (Stoica et al. 2001) Ziel:"Gutes" Verteilen von Informationen auf.
Facetten der Verteilungsabstraktion
6.1.2 Sequentielle Konsistenz
6.3 Verteilte Transaktionen
7 Fehlertoleranz.
Aufgaben Semaphore Übersicht (Dijkstra)
Datenbanken online sowie offline verfügbar machen
 Präsentation transkript:

5.1.2 Sequentielle Konsistenz Def.: Sequentielle Konsistenz (sequential consistency): Effekt/Ergebnisse einer verteilten Programmausführung auf repliziertem Objekt = Effekt/Ergebnisse einer äquivalenten sequentiellen Ausführung auf nichtrepliziertem Objekt (impliziert Serialisierbarkeit des nichtreplizierten Objekts; Bestandteil von one-copy serializability [ 6] ) vs5.1.2

Idee: Totalgeordnete Rundrufe an die Replikatverwalter   Ausgezeichneter Replikatverwalter arbeitet als Koordinator wie der Sequencer aus 4.2.3; sein Replikat heißt Primärkopie  Änderungen werden zunächst an der Primärkopie vorgenommen und dann an die Sekundärkopien weitergeleitet  Sowohl aktive als auch passive Replikation möglich (passiv ist besser, wenn Replikate dynamisch kommen und gehen!)  Operationen synchron oder asynchron; falls synchron, wartet Klient auf Quittung des Koordinators  Nichtmodifizierende Operation liest unter Umgehung des Koordinators aus der „nächstliegenden“ Kopie! vs5.1.2

1. Jede Kopie hat die gleiche Geschichte. Beobachtungen: 1. Jede Kopie hat die gleiche Geschichte. 2. Koordinator ist Engpaß – es sollte also „mehr Leseoperationen als Schreiboperationen“ geben. 3. Kausalitätstreue und Unabhängigkeitstreue wären gewährleistet, wenn es keine Leseoperationen gäbe (aber dann wäre die Replikation sinnlos!) Daher: vs5.1.2

Modifiziertes Verfahren (Tanenbaum 1995):  Durchnumerierung der Versionen des Objekts mit Rundrufzähler des Koordinators  Jede Station merkt sich die höchste Versionsnummer, von der sie Kenntnis hat, als lokal aktuelle Versionsnummer a  Aktuelle Versionsnummer wird mit jeder Nachricht, die nicht an den Koordinator geht, als Nummer v mitgeschickt  Ein Server (außer dem Koordinator), der von einem Klienten eine Nachricht (= Lesewunsch) mit v > a erhält, bearbeitet die Nachricht erst dann, wenn er vom Koordinator eine Nachricht mit der Nummer v erhalten und bearbeitet hat Bemerkung: Versionsnummer = Logische Uhr des Objekts vs5.1.2

 Sequentielle Konsistenz gewährleistet Eigenschaften:  Sequentielle Konsistenz gewährleistet bei Abwesenheit asynchroner Operationen  Achtung: Etwaige Kommunikation unter den Klienten ist nicht kausalitätstreu - sofern nicht durch zusätzliche Maßnahmen gewährleistet (4.2.2) HIER weiter vs5.1.2

Def.: Kausale Konsistenz (causal consistency): Die Effekte kausal abhängiger Schreiboperationen werden von allen Beteiligten in der gleichen Reihenfolge beobachtet (nämlich in der Kausalfolge) Implementierung: - kausal geordnete Rundrufe (4.2.2) - keine Primärkopie erforderlich vs5.1.2

wenn keine nebenläufigen Operationen auf Objekt Anwendung: wenn keine nebenläufigen Operationen auf Objekt oder wenn nebenläufige Operationen kommutieren Def.: Zwei Operationen op1, op2 eines ADT kommutieren, op1 | op2 , wenn jede nebenläufige Ausführung der Operationen zu den gleichen Ergebnissen und zum gleichen (abstrakten!) Gesamteffekt führt. (Entsprechend für mehr als zwei Operationen.) Beobachtung: Kommutierende Operationen können auf verschiedenen Replikaten in verschiedener Reihenfolge ausgeführt werden! vs5.1.2

Abgeschwächte kausale Konsistenz: Def.: PRAM-Konsistenz (pipelined RAM consistency): Die Effekte der Schreiboperationen eines Prozesses werden von allen Beteiligten in der Ausführungsreihenfolge beobachtet (d.h. Kausalität nicht prozessübergreifend) Implementierung: FIFO-Rundrufe (4.2.1) (mittels einfacher Nachrichtennumerierung) Anwendung: z.B. Protokollieren von wichtigen Ereignissen innerhalb der Prozesse vs5.1.2

1. Aktualisieren einer Kopie muß erst dann abgeschlossen sein, 5.1.4 Schwache Konsistenz Beobachtungen: 1. Aktualisieren einer Kopie muß erst dann abgeschlossen sein, wenn sie tatsächlich gelesen wird. 2. Wenn eine Kopie ohne Lesen nacheinander mehrfach überschrieben wird, (ohne Berücksichtigung des aktuellen Werts, z.B. bei passiver Replikation), braucht nur der letzte Schreibvorgang vor dem Lesen ausgeführt zu werden. 3. Solche Situationen sind typisch für die Manipulation von Objekten unter Sperrsynchronisation – die wegen der Nichtsequentialität ohnehin an vielen Stellen erforderlich ist. vs5.1.2

Def.: Schwache Konsistenz (weak consistency): 1. Synchronisationsobjekte sind sequentiell konsistent. 2. Bei Zugriff eines Prozesses auf ein Synchronisations- objekt wird sichergestellt, daß alle vorangegangenen Schreiboperationen des Prozesses auf allen Replikaten abgeschlossen sind. 3. Bei Zugriff eines Prozesses auf ein Synchronisations- objekt wird sichergestellt, daß alle Schreiboperationen anderer Prozesse auf den lokalen Replikaten M.a.W.: Synchronisationsoperation erzwingt „temporäre Konsistenz“ vs5.1.2

Def.: (eager) Release Consistency bei wechselseitigem Ausschluß mit Sperroperationen request(lock)/release(lock) : 1. Im kritischen Abschnitt wird nur auf die lokalen Replikate der manipulierten Objekte zugegriffen. 2. Beim release werden die aktuellen Werte propagiert (passive Replikation), und es wird auf die Bestätigungen von allen Replikaten gewartet. vs5.1.2

Def.: Lazy Release Consistency: Schritt 2 unterbleibt. Stattdessen beschafft sich jeder Prozess bei einem request(lock) die aktuellen Daten vom Prozess mit dem letzten release(lock) (entbehrlich falls gleicher Prozess!) Effekt von Release Consistency: Sequentielle Konsistenz der unter Sperrsynchronisation manipulierten Objekte (Weitere schwache Konsistenzmodelle siehe Tanenbaum/van Steen 2002) vs5.1.2