Transaktionen in verteilten Datenbanken

Slides:



Advertisements
Ähnliche Präsentationen
Algorithmen und Datenstrukturen
Advertisements

Kapitel 15 Verteilte Datenbanken
Kapitel 15 Verteilte Datenbanken
Mehrbenutzersynchronisation
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.
Die Schulkonsole für Lehrerinnen und Lehrer
Verteilte Datenbanken
C. Mohan, Bruce Lindsay and R. Obermarck
Transaktionsverwaltung
Transaktionsverwaltung
© A. Kemper / A. Eickler1 Fehlerbehandlung (Recovery) 1.Lokaler Fehler in einer noch nicht festgeschriebenen (committed) Transaktion Wirkung muss zurückgesetzt.
Vs61 6 Verteilte Datenverwaltung. vs62 Ziel:Zusammengehöriger Datenbestand soll über mehrere Stationen verteilt werden, z.B. Fragmentierung: in mehrere.
1 Fehlerbehandlung (Recovery) 1.Lokaler Fehler in einer noch nicht festgeschriebenen (committed) Transaktion Wirkung muss zurückgesetzt werden R1-Recovery.
Transaktionsverwaltung Beispiel einer typischen Transaktion in einer Bankanwendung: 1.Lese den Kontostand von A in die Variable a: read(A,a); 2.Reduziere.
Universität Paderborn
1 Fehlerbehandlung (Recovery) 1.Lokaler Fehler in einer noch nicht festgeschriebenen (committed) Transaktion Wirkung muss zurückgesetzt werden R1-Recovery.
Speicherung globaler Relationen: Fragementierung und Allokation
Anfrage-Optimierung und -Bearbeitung in Verteilten DBMS
Transaktionen in verteilten Datenbanken
PKJ 2005/1 Stefan Dissmann Rückblick auf 2005 Was zuletzt in 2005 vorgestellt wurde: Klassen mit Attributen, Methoden und Konstruktoren Referenzen auf.
Normalformen Normalisieren Schlüssel
Seminar: Verteilte Datenbanken
6 Normalformen Normalisieren Schlüssel
Datenbanksysteme für FÜ SS 2000 Seite Worzyk FH Anhalt Transaktionen und Parallelverarbeitung Eigenschaften von Transaktionen Konsistenz Isolation.
Kapitel 13: Mehrbenutzersynchronisation
Kapitel 14: Recovery Oliver Vornberger
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.
Erhard Künzel für Info 9. Klasse: Digitale Schule Bayern© Erhard Künzel.
Verklemmungen Bei sperrenbasierter Synchronisation können sogenannte Verklemmungen (engl. deadlocks) auftreten, in denen Transaktionen sich gegenseitig.
Recovery AIFB SS (1/8) Sicherungspunkte (Checkpoints) (1/8) (1) Transaktions-Orientierte Sicherungspunkte Transaction-Oriented Checkpoint.
Implementierung von S2PL (1) Scheduler als Verwalter von Sperren auf Datenelementen sowie Warteschlangen für Sperren (Sperren-Verwalter). Transaktion 1Transaktion.
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,
20:00.
Kapitel 15 Verteilte Datenbanken Motivation: geographisch verteilte Organisationsform einer Bank mit ihren Filialen Filialen sollen Daten lokaler Kunden.
Globale Transaktions-Verwaltung
1 J4 Hash-Join R und S werden mittels der gleichen Hashfunktion h – angewendet auf R.A und S.B – auf (dieselben) Hash- Buckets abgebildet Hash-Buckets.
Mehrbenutzersynchronisation
WS 2012/13 Datenbanksysteme Mi 15:15 – 16:45 R Vorlesung #11 Transaktionsverwaltung.
WS 2004/2005 Datenbanken II - 5W Mi 17:00 – 18:30 G 3.18 Vorlesung #6 Fehlerbehandlung.
WS 2011/12 Datenbanksysteme Mi 15:15 – 16:45 R Vorlesung #10 Transaktionsverwaltung.
WS 2004/2005 Datenbanken II - 5W Mi 17:00 – 18:30 G 3.18 Vorlesung #7 Mehrbenutzersynchronisation (Teil 1)
Vorlesung #9 Fehlerbehandlung
Replikation und Synchronisation
Festschreibe-Protokoll (1) Globales Zwei-Phasen-Festschreibe-Protokoll (2- Phasen-Commit, 2PC): Phase 1: –Koordinator benachrichtigt Ressourcen, dass Commit.
Transaktion Huang Zhenhao FU Shuai.
Vorlesung #12 Mehrbenutzersynchronisation
Datenbanksysteme Technische Grundlagen Transaktions-Konzept, Mehrbenutzer-Synchronisation, Fehlerbehandlung Prof. Dr. Manfred Gruber FH München.
Vorlesung Datenbanksysteme WS 2.0 Christoph Koch (Subject: DBVO:...
ADAT©2004,2006 Dipl. - Ing. Walter SabinSeite: 48 Version 1.0a Recovery Wiederherstellung eines konsistenten Datenbankzustandes nach Fehlersituationen.
Schutzvermerk nach DIN 34 beachten 20/05/14 Seite 1 Grundlagen XSoft Lösung :Logische Grundschaltung IEC-Grundlagen und logische Verknüpfungen.
Lokales 2-Phasen-Festschreibe- Protokoll Segment-Verwalter führt commit(T i ) in zwei Phasen aus: Phase 1: Sicherstellung der Wiederholbarkeit. –Für jedes.
Ertragsteuern, 5. Auflage Christiana Djanani, Gernot Brähler, Christian Lösel, Andreas Krenzin © UVK Verlagsgesellschaft mbH, Konstanz und München 2012.
Mehrbenutzerzugriff auf GIS-Daten
Mehrbenutzersynchronisation
Transaktionsverwaltung
Wiederanlauf nach Systemzusammenbruch Aufgabe: Bei Noforce-Strategie Wiederholung aller noch nicht in die Datenbasis eingebrachten Änderungen bereits abgeschlossener.
Recovery    AIFB SS Grundlegende Annamen(1/2) Um den Erfolg der der Recovery-Maßnahmen zu gewährleisten, werden folgende Annahmen.
Synchronisation paralleler Transaktionen  AIFB SS Sperrverfahren Sperrverfahren (13/18) Behandlung von Konflikten bei der Sperrvergabe.
Gottfried Vossen 5. Auflage 2008 Datenmodelle, Datenbanksprachen und Datenbankmanagementsysteme Kapitel 23: Verteilte Transaktionsverarbeitung.
Monatsbericht Ausgleichsenergiemarkt Gas – Oktober
4.4 Sperrsynchronisation
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,...)
6.3 Verteilte Transaktionen
Transaktionsverwaltung Beispiel einer typischen Transaktion in einer Bankanwendung: 1.Lese den Kontostand von A in die Variable a: read(A,a); 2.Reduziere.
6.3 Verteilte Transaktionen
Transaktionsabbruch, System Crash, Media Failure
 Präsentation transkript:

Transaktionen in verteilten Datenbanken Motivation: geographisch verteilte Organisationsform einer Bank mit ihren Filialen  Filialen sollen Daten lokaler Kunden bearbeiten können  Zentrale soll Zugriff auf alle Daten haben (z.B. für Kontogutschriften) Ferienplanung: Buchung des Fluges, des Hotels und des Mietwagens soll entweder ganz oder gar nicht stattfinden

Ziel verteilter Datenbanken Sammlung von Informationseinheiten, verteilt auf mehreren Rechnern, verbunden mittels Kommunikationsnetz Kooperation zwischen autonom arbeitenden Stationen, zur Durchführung einer globalen Aufgabe

Client-Server-Architektur Client C1 Kommunikations- netz Client C2 DBMS DB z.B. WAN / Internet

Nachteile Client-Server Zentrale Datenbank für viele Clients Nachteil: Datenbankmanagementsystem ist single point of failure Bei großen Datenmengen ist der Transport der angeforderten Daten an entfernte Clients u. U. zu langwierig. Forderung: schnelle Ad-hoc-Anfragen dezentrale Datenbanksysteme hohe Benutzerzahlen sollen möglich sein Verteilung der Gesamtdatenmenge auf verschiedene Standorte: Daten sind näher am Anwender. Reduzierte Datenzugriffszeiten Reduzierung des Netzwerkverkehrs ein verteiltes Datenbanksystem soll dem Benutzer wie eine einzelne Datenbank erscheinen -> er muss nicht wissen, welche Daten wo lagern

Verteiltes Datenbanksystem DB 1 Station S1 Kommunikations- netz Station S2 Station S3 DB 2 DB 3 z.B. WAN / Internet

Nachteile verteilter Datenbanksysteme deutlich komplizierter zu planen, implementieren, sichern und zu warten Daten müssen mit Ortsinformation belegt sein, so dass das DBMS weiß, wo welche Daten zu finden sind Zugriffskonflikte müssen an zentraler Stelle gelöst werden Transaktionskontrolle muss auf das gesamte Netzwerk ausgedehnt werden Deadlocks können sich z.B. über mehrere Server verteilen gewollte Redundanzen müssen konsistent gehalten werden

Distributed Database Management System DDBMS: Distributed Database Management System Client DB-Server 1 DB-Server 2 Datenbank- Fragment 1 Datenbank- Fragment 2 Logische Datenbank

Aufgaben des DDBMS entscheidet darüber, ob Datenbankoperationen lokal oder im verteilten System stattfinden Optimierung der Zugriffspfade zu den Daten für schnelle Abfragen Ermittlung der physikalischen Standorte der Daten Implementierung von Sicherheitsfunktionen Backup und Recovery über das gesamte Datennetz serverübergreifende Transaktionsverwaltung lässt mehrere Datenbank-Fragmente für den Client wie eine einzige logische Datenbank aussehen → DDBMS muss sämtliche Funktionen eines DBMS implementieren plus Funktionen für die verteilte Datenverwaltung und -verarbeitung

Aufbau und Entwurf eines verteilten Datenbanksystems globales Schema DDBMS Distributed Database Management System Fragmentierungs- schema Zuordnungsschema lokales Schema ... lokales Schema lokales DBMS ... lokales DBMS lokale DB ... lokale DB ... Station S1 Station Sn

Fragmentierung und Allokation einer Relation Fragmentierung: Fragmente enthalten Daten mit gleichem Zugriffsverhalten Allokation: Fragmente werden den Stationen zugeordnet mit Replikation (redundanzfrei) ohne Replikation

R R1 R1 R1 Station S1 R1 R2 R2 R2 R1 Station S2 R3 R3 R2 R3 R3 Allokation (Zuordnung) Fragmentierung R R1 R1 R1 Station S1 R2 R1 R2 R1 R2 Station S2 R3 R3 R2 R3 R3 Station S3

Fragmentierung horizontale Fragmentierung: Zerlegung der Relation in disjunkte Tupelmengen vertikale Fragmentierung: Zusammenfassung von Attributen mit gleichem Zugriffsmuster kombinierte Fragmentierung: Anwendung horizontaler und vertikaler Fragmentierung auf dieselbe Relation

Korrektheits-Anforderungen Rekonstruierbarkeit Die fragmentierte Relation lässt sich aus den Fragmenten wiederherstellen. Vollständigkeit Jedes Datum ist einem Fragment zugeordnet. Disjunktheit Die Fragmente überlappen sich nicht, d.h. ein Datum ist nicht mehreren Fragmenten zugeordnet.

Range-Partitionierung in Oracle Jede Partition hat eine Klausel VALUES LESS THAN. Alle Werte des Partitionierungs-Schlüsselwerts, die höher oder gleich dem Wert in VALUES LESS THAN sind, werden der nächsthöheren Partition zugeordnet. Alle Partitionen außer der ersten haben eine untere Grenze, die durch die vorhergehende Partition festgelegt wird Für die letzte Partition kann als obere Grenze MAXVALUE angegeben werden, was bedeutet, dass sie nach oben offen ist. Diese Partition nimmt auch die NULL-Werte mit auf. Partitionierungsschlüssel können auch mehrere Felder sein CREATE TABLE sales_range (salesman_id NUMBER(5), salesman_name VARCHAR2(30), sales_amount NUMBER(10), sales_date DATE) PARTITION BY RANGE(sales_date)( PARTITION sales_jan2000 VALUES LESS THAN(TO_DATE('02/01/2000','MM/DD/YYYY')), PARTITION sales_feb2000 VALUES LESS THAN(TO_DATE('03/01/2000','MM/DD/YYYY')), PARTITION sales_mar2000 VALUES LESS THAN(TO_DATE('04/01/2000','MM/DD/YYYY')), PARTITION sales_apr2000 VALUES LESS THAN(TO_DATE('05/01/2000','MM/DD/YYYY')) );

Transaktionskontrolle in DDBMS Transaktionen können sich bei DDBMS über mehrere Rechnerknoten erstrecken  Recovery: Redo: Wenn eine Station nach einem Fehler wieder anläuft, müssen alle Änderungen einmal abgeschlossener Transaktionen - seien sie lokal auf dieser Station oder global über mehrere Stationen ausgeführt worden - auf den an dieser Station abgelegten Daten wiederhergestellt werden. Undo: Die Änderungen noch nicht abgeschlossener lokaler und globaler Transaktionen müssen auf den an der abgestürzten Station vorliegenden Daten rückgängig gemacht werden.

EOT-Behandlung Die EOT (End-of-Transaction)-Behandlung von globalen Transaktionen stellt in DDBMS ein Problem dar. Eine globale Transaktion muss atomar beendet werden, d.h. entweder commit: globale Transaktion wird an allen (relevanten) lokalen Stationen festgeschrieben oder abort: globale Transaktion wird gar nicht festgeschrieben  Problem in verteilter Umgebung, da die Stationen eines VDBMS unabhängig voneinander „abstürzen“ können

Problemlösung: Zweiphasen-Commit-Protokoll  gewährleistet die Atomarität der EOT-Behandlung das 2PC-Verfahren wird von sog. Koordinator K überwacht gewährleistet, dass die n Agenten (=Stationen im DDBMS) A1,...An, die an einer Transaktion beteiligt waren, entweder alle von Transaktion T geänderten Daten festschreiben oder alle Änderungen von T rückgängig machen

Nachrichtenaustausch beim 2PC-Protokoll (für 4 Agenten) PREPARE FAILED/READY COMMIT/ABORT ACK

Ablauf der EOT-Behandlung beim 2PC-Protokoll K schickt allen Agenten eine PREPARE-Nachricht, um herauszufinden, ob sie Transaktionen festschreiben können jeder Agent Ai empfängt PREPARE-Nachricht und schickt eine von zwei möglichen Nachrichten an K: READY, falls Ai in der Lage ist, die Transaktion T lokal festzuschreiben FAILED, falls Ai kein commit durchführen kann (wegen Fehler, Inkonsistenz etc.) hat K von allen n Agenten A1,...,An ein READY erhalten, kann K ein COMMIT an alle Agenten schicken mit der Aufforderung, die Änderungen von T lokal festzuschreiben; antwortet einer der Agenten mit FAILED od. gar nicht innerhalb einer bestimmten Zeit (timeout), schickt K ein ABORT an alle Agenten und diese machen die Änderungen der Transaktion rückgängig haben die Agenten ihre lokale EOT-Behandlung abgeschlossen, schicken sie eine ACK-Nachricht (=acknowledgement, dt. Bestätigung) an den Koordinator

Lineare Organisationsform beim 2PC-Protokoll FAILED/READY FAILED/READY FAILED/READY A1 A2 A3 A4 COMMIT/ABORT COMMIT/ABORT COMMIT/ABORT

Zustandsübergang beim 2PC-Protokoll: Koordinator „Bullet“  = wichtigste Aktion(en) Initial EOT: sende PREPARE an alle Agenten Bereit Timeout oder FAILED empfangen: READY von allen Agenten empfangen: abort ins Log ABORT senden commit ins Log sende COMMIT Abgebrochen Festschreibend von allen ACK empfangen: von allen ACK empfangen: Fertig

Zustandsübergang beim 2PC-Protokoll: Agent Wartend PREPARE empfangen und lokal alles okay: Timeout oder lokaler Fehler entdeckt: Log-Einträge ausschreiben ready ins Log sende READY abort ins Log sende FAILED Bereit ABORT empfangen: COMMIT empfangen: abort ins Log sende ACK commit ins Log sende ACK Abgebrochen Festgeschrieben „Bullet“  = wichtigste Aktion(en) PREPARE empfangen: sende FAILED

Fehlersituationen des 2PC-Protokolls Absturz eines Koordinators Absturz eines Agenten verlorengegangene Nachrichten

Absturz eines Koordinators Absturz vor dem Senden einer COMMIT-Nachricht  Rückgängigmachen der Transaktion durch Versenden einer ABORT-Nachricht Absturz nachdem Agenten ein READY mitgeteilt haben  Blockierung der Agenten  Hauptproblem des 2PC-Protokolls beim Absturz des Koordinators, da dadurch die Verfügbarkeit des Agenten bezüglich andere globaler und lokaler Transaktionen drastisch eingeschränkt ist Um Blockierung von Agenten zu verhindern, wurde ein Dreiphasen-Commit-Protokoll konzipiert, das aber in der Praxis zu aufwendig ist (DDBMS benutzen das 2PC-Protokoll).

Absturz eines Agenten antwortet ein Agent innerhalb eines Timeout-Intervalls nicht auf die PREPARE-Nachricht, gilt der Agent als abgestürzt; der Koordinator bricht die Transaktion ab und schickt eine ABORT-Nachricht an alle Agenten „abgestürzter“ Agent schaut beim Wiederanlauf in seine Log-Datei: kein ready-Eintrag bzgl. Transaktion T  Agent führt ein abort durch und teilt dies dem Koordinator mit (FAILED-Nachricht) ready-Eintrag aber kein commit-Eintrag  Agent fragt Koordinator, was aus Transaktion T geworden ist; Koordinator teilt COMMIT oder ABORT mit, was beim Agenten zu einem Redo oder Undo der Transaktion führt commit-Eintrag vorhanden  Agent weiß ohne Nach-fragen, dass ein (lokales) Redo der Transaktion nötig ist

Verlorengegangene Nachrichten PREPARE-Nachricht des Koordinators an einen Agenten geht verloren oder READY-(oder FAILED-)Nachricht eines Agenten geht verloren  nach Timeout-Intervall geht Koordinator davon aus, dass betreffender Agent nicht funktionsfähig ist und sendet ABORT-Nachricht an alle Agenten (Transaktion gescheitert) Agent erhält im Zustand Bereit keine Nachricht vom Koordinator  Agent ist blockiert, bis COMMIT- oder ABORT-Nachricht vom Koordinator kommt, da Agent nicht selbst entscheiden kann (deshalb schickt Agent eine „Erinnerung“ an den Koordinator)

Mehrbenutzersynchronisation in DDBMS Serialisierbarkeit Zwei-Phasen-Sperrprotokoll in VDBMS lokale Sperrverwaltung an jeder Station globale Sperrverwaltung

Serialisierbarkeit Lokale Serialisierbarkeit an jeder der an den Transaktionen beteiligten Stationen reicht nicht aus. Deshalb muß man bei der Mehrbenutzersynchronisation auf globaler Serialisierbarkeit bestehen. Beispiel (lokal serialisierbare Historien): Schritt T1 T2 1. 2. 3. 4. r(A) w(A) w(B) r(B) S1 S2 T1 ↔ T2

Lokale Sperrverwaltung globale Transaktion muß vor Zugriff/Modifikation eines Datums A, das auf Station S liegt, eine Sperre vom Sperrverwalter der Station S erwerben Verträglichkeit der angeforderten Sperre mit bereits existierenden Sperren kann lokal entschieden werden  favorisiert lokale Transaktionen, da diese nur mit ihrem lokalen Sperrverwalter kommunizieren müssen

Globale Sperrverwaltung = alle Transaktionen fordern alle Sperren an einer einzigen, ausgezeichneten Station an. Nachteile: zentraler Sperrverwalter kann zum Engpass des DDBMS werden, besonders bei einem Absturz der Sperrverwalter-Station („rien ne va plus“) Verletzung der lokalen Autonomie der Stationen, da auch lokale Transaktionen ihre Sperren bei der zentralisierten Sperrverwaltung anfordern müssen zentrale Sperrverwaltung i.a. nicht akzeptabel

Deadlocks in VDBMS Erkennung von Deadlocks (Verklemmungen) zentralisierte Deadlock-Erkennung dezentrale (verteilte) Deadlock-Erkennung Vermeidung von Deadlocks

„Verteilter“ Deadlock Schritt T1 T2 0. 1. 2. 6. BOT lockS(A) r(A) lockX(A)  S1 Schritt T1 T2 3. 4. 5. 7. lockS(B)  BOT lockX(B) w(B) S2

Timeout betreffende Transaktion wird zurückgesetzt und erneut gestartet  einfach zu realisieren Problem: richtige Wahl des Timeout-Intervalls: zu lang  schlechte Ausnutzung der Systemressourcen zu kurz  Deadlock-Erkennung, wo gar keine Verklemmung vorliegt

Zentralisierte Deadlock-Erkennung Stationen melden lokal vorliegende Wartebeziehungen an neutralen Knoten, der daraus globalen Wartegraphen aufbaut (Zyklus im Graphen → Deadlock)  sichere Lösung Nachteile: hoher Aufwand (viele Nachrichten) Entstehung von Phantom-Deadlocks (=nicht-existierende Deadlocks) durch „Überholen“ von Nachrichten im Kommunikationssystem

Dezentrale Deadlock-Erkennung lokale Wartegraphen an den einzelnen Stationen  Erkennen von lokalen Deadlocks Erkennung globaler Deadlocks: jeder lokale Wartegraph hat einen Knoten External, der stationenübergreifende Wartebeziehungen zu externen Subtransaktionen modelliert Zuordnung jeder Transaktion zu einem Heimatknoten, von wo aus externe Subtransaktionen auf anderen Stationen initiiert werden Die Kante External → Ti wird für jede „von außen“ kommende Transaktion Ti eingeführt. Die Kante Tj → External wird für jede von außen kommende Transaktion Tj dieser Station eingeführt, falls Tj „nach außen“ geht.

Beispiel: S1 Heimatknoten von T1, S2 Heimatknoten von T2 Wartegraphen: S1: External → T2 → T1 → External S2: External → T1 → T2 → External S2: External ↔ T1 ↔ T2 ↔ External T1 → T2 → T1 T2 → T1 → T2 Zur Reduzierung des Nachrichtenaufkommens wird der Pfad External → T1‘ → T2 ‘ → . . . → Tn ‘ → External nur weitergereicht, wenn T1‘ einen kleineren Identifikator als Tn‘ hat (= path pushing).

Deadlock-Vermeidung optimistische Mehrbenutzersynchronisation: nach Abschluss der Transaktionsbearbeitung wird Validierung durchgeführt Zeitstempel-basierende Synchronisation: Zuordnung eines Lese-/Schreib-Stempels zu jedem Datum  entscheidet, ob beabsichtigte Operation durchgeführt werden kann ohne Serialisierbarkeit zu verletzen oder ob Transaktion abgebrochen wird (abort)

Sperrbasierte Synchronisation wound/wait: nur jüngere Transaktionen warten auf ältere; fordert ältere Transaktion Sperre an, die mit der von der jüngeren Transaktion gehaltenen nicht verträglich ist, wird jüngere Transaktion abgebrochen wait/die: nur ältere Transaktionen warten auf jüngere; fordert jüngere Transaktion Sperre an, die mit der von der älteren Transaktion gehaltenen nicht kompatibel ist, wird jüngere Transaktion abgebrochen

Voraussetzungen für Deadlockvermeidungsverfahren Vergabe global eindeutiger Zeitstempel als Transaktionsidentifikatoren lokale Zeit Stations-ID lokale Uhren müssen hinreichend genau aufeinander abgestimmt sein

Synchronisation bei replizierten Daten Problem: Zu einem Datum A gibt es mehrere Kopien A1, A2, ..., An, die auf unterschiedlichen Stationen liegen. Eine Lesetransaktion erfordert nur eine Kopie, bei Änderungstransaktionen müssen aber alle bestehenden Kopien geändert werden.  hohe Laufzeit und Verfügbarkeitsprobleme

Quorum-Consensus Verfahren Ausgleich der Leistungsfähigkeit zwischen Lese- und Änderungstransaktionen  teilweise Verlagerung des Overheads von den Änderungs- zu den Lesetransaktionen indem den Kopien Ai eines replizierten Datums A individuelle Gewichte zugeordnet werden Lesequorum Qr(A) Schreibquorum Qw(A) Folgende Bedingungen müssen gelten: Qw(A) + Qw(A) > W(A) Qr(A) + Qw(A) > W(A)

Beispiel Station (Si) Kopie (Ai) Gewicht (wi) S1 A1 3 S2 A2 1 S3 A3 2

Zustände a) vor dem Schreiben eines Schreibquorums Station Kopie Gewicht Wert Versions# S1 A1 3 1000 1 S2 A2 S3 A3 2 S4 A4 b) nach dem Schreiben eines Schreibquorums Station Kopie Gewicht Wert Versions# S1 A1 3 1100 2 S2 A2 1 1000 S3 A3 S4 A4