Kapitel 2: Synchronisation
|
|
|
- Katarina Gehrig
- vor 8 Jahren
- Abrufe
Transkript
1 Ludwig Maximilians Universität München Institut für Informatik Lehr und Forschungseinheit für Datenbanksysteme Skript zur Vorlesung Sommersemester 2005 Vorlesung: Christian Böhm Übungen: Elke Achtert, Peter Kunath Skript 2005 Christian Böhm Inhalt 1. Anomalien im Mehrbenutzerbetrieb 2. Serialisierbarkeit von Transaktionen 3. Sperrverfahren (Locking) 4. Behandlung von Verklemmungen 2 5. Synchronisation ohne Sperren
2 Inhalt 1. Anomalien im Mehrbenutzerbetrieb 2. Serialisierbarkeit von Transaktionen 3. Sperrverfahren (Locking) 4. Behandlung von Verklemmungen 3 5. Synchronisation ohne Sperren Synchronisation (Concurrency Control) Serielle Ausführung von Transaktionen ist unerwünscht, da die Leistungsfähigkeit des Systems beeinträchtigt ist (niedriger Durchsatz, hohe Wartezeiten) Mehrbenutzerbetrieb führt i.a. zu einer besseren Auslastung des Systems (z.b. Wartezeiten bei E/A Vorgängen können zur Bearbeitung anderer Transaktionen genutzt werden) Aufgabe der Synchronisation Gewährleistung des logischen Einbenutzerbetriebs, d.h. innerhalb einer TA ist ein Benutzer von den Aktivitäten anderer Benutzer nicht betroffen 4
3 Anomalien im Mehrbenutzerbetrieb Verloren gegangene Änderungen (Lost Updates) Zugriff auf schmutzige Daten (Dirty Read / Dirty Write) Nichtreproduzierbares Lesen (NonRepeatable Read) Phantomproblem Beispiel: Flugdatenbank Passagiere FlugNr LH745 LH745 LH745 BA932 BA932 Name Müller Meier Huber Schmidt Huber Platz 3A 6D 5C 9F 5C Gepäck Lost Updates 6 Änderungen einer Transaktion können durch Änderungen anderer Transaktionen überschrieben werden und dadurch verloren gehen Bsp.: Zwei Transaktionen T1 und T2 führen je eine Änderung auf demselben Objekt aus T1: UPDATE Passagiere SET Gepäck = Gepäck3 WHERE FlugNr = LH745 AND Name = Meier ; T2: UPDATE Passagiere SET Gepäck = Gepäck5 WHERE FlugNr = LH745 AND Name = Meier ; Mgl. Ablauf: T1 T2 read(passagiere.gepäck, x1); x1 := x13; write(passagiere.gepäck, x1); read(passagiere.gepäck, x2); x2 := x2 5; write(passagiere.gepäck, x2); In der DB ist nur die Änderung von T1 wirksam, die Änderung von T2 ist verloren gegangen Verstoß gegen Durability
4 Dirty Read / Dirty Write 7 Zugriff auf schmutzige Daten, d.h. auf Objekte, die von einer noch nicht abgeschlossenen Transaktion geändert wurden Bsp.: T1 erhöht das Gepäck um 3 kg, wird aber später abgebrochen T2 erhöht das Gepäck um 5 kg und wird erfolgreich abgeschlossen Mgl. Ablauf: T1 UPDATE Passagiere SET Gepäck = Gepäck3; T2 UPDATE Passagiere SET Gepäck = Gepäck5; COMMIT; ROLLBACK; Durch den Abbruch von T1 werden die geänderten Werte ungültig. T2 hat jedoch die geänderten Werte gelesen (Dirty Read) und weitere Änderungen darauf aufgesetzt (Dirty Write) Verstoß gegen ACID: Dieser Ablauf verursacht einen inkonsistenten DBZustand (Consistency) bzw. T2 muss zurückgesetzt werden (Durability) NonRepeatable Read Eine Transaktion sieht während ihrer Ausführung unterschiedliche Werte desselben Objekts Bsp.: T1 liest das Gepäckgewicht der Passagiere auf Flug BA932 zwei mal T2 bucht den Platz 3F auf dem Flug BA932 für Passagier Meier mit 5kg Gepäck Mgl. Ablauf: T1 SELECT Gepäck FROM Passagiere WHERE FlugNr = BA932 ; T2 INSERT INTO Passagiere VALUES (BA932, Meier, 3F, 5); COMMIT; SELECT Gepäck FROM Passagiere WHERE FlugNr = BA932 ; Die beiden SELECTAnweisungen von Transaktion T1 liefern unterschiedliche Ergebnisse, obwohl T1 den DBZustand nicht geändert hat Verstoß gegen Isolation 8
5 Phantomproblem 9 Ausprägung des nichtreproduzierbaren Lesens, bei der Aggregatfunktionen beteiligt sind Bsp.: T1 druckt die Passagierliste sowie die Anzahl der Passagiere für den Flug LH745 T2 bucht den Platz 7D auf dem Flug LH745 für Phantomas Mgl. Ablauf: T1 SELECT * FROM Passagiere WHERE FlugNr = LH745 ; SELECT COUNT(*) FROM Passagiere WHERE FlugNr = LH745 ; T2 INSERT INTO Passagiere VALUES (LH745, Phantomas, 7D, 2); COMMIT; Für Transaktion T1 erscheint Phantomas noch nicht auf der Passagierliste, obwohl er in der danach ausgegebenen Anzahl der Passagiere berücksichtigt ist Inhalt 1. Anomalien im Mehrbenutzerbetrieb 2. Serialisierbarkeit von Transaktionen 3. Sperrverfahren (Locking) 4. Behandlung von Verklemmungen Synchronisation ohne Sperren
6 Schedules (1) Die nebenläufige Bearbeitung von Transaktionen geschieht für den Benutzer transparent, d.h. als ob die Transaktionen (in einer beliebigen Reihenfolge) hintereinander ausgeführt werden Ein Schedule für eine Menge {T 1,, T n } von Transaktionen ist eine Folge von Aktionen, die durch Mischen der Aktionen der T i s entsteht, wobei die Reihenfolge innerhalb der jeweiligen Transaktion beibehalten wird. 11 Schedules (2) Ein serieller Schedule ist ein Schedule S von {T 1,, T n }, in dem die Aktionen der einzelnen Transaktionen nicht untereinander verzahnt sondern in Blöcken hintereinander ausgeführt werden. Ein Schedule S von {T 1,, T n } ist serialisierbar, wenn er dieselbe Wirkung hat wie ein beliebiger serieller Schedule von {T 1,, T n }. Nur serialisierbare Schedules dürfen zugelassen werden! 12
7 Beispiel serieller Schedule Beliebiger Schedule: T 1 A 1.1 A 1.2 A 1.3 A 1.4 A T T 3 A 3.1 A 3.2 Serieller Schedule: A T 1.1 A 1.2 A 1.3 A A 2.2 A 2.3 A 3.3 T 2 A 2.1 A 2.2 A 2.3 T 3 A 3.1 A 3.2 A Kriterium für Serialisierbarkeit (1) Mit Hilfe von Serialisierungsgraphen kann man prüfen, ob ein Schedule {T 1,, T n } serialisierbar ist: Die beteiligten Transaktionen {T 1,, T n } sind die Knoten des Graphen Die Kanten beschreiben die Abhängigkeiten der Transaktionen: Eine Kante T i T j wird eingetragen, falls im Schedule w i (x) vor r j (x) kommt: SchreibLeseAbhängigkeiten wr(x) r i (x) vor w j (x) kommt: LeseSchreibAbhängigkeiten rw(x) w i (x) vor w j (x) kommt: SchreibSchreibAbhängigkeiten ww(x) 14
8 Kriterium für Serialisierbarkeit (2) Ein Schedule ist serialisierbar, falls der Serialisierungsgraph zyklenfrei ist Einen zugehörigen seriellen Schedule erhält man durch topologisches Sortieren des Graphen Beispiel: S = (r 1 (x), r 2 (y), r 3 (z), w 3 (z), w 2 (y), w 1 (x), w 2 (y), r 1 (y), r 3 (x), w 1 (y)) rw(y), wr(y), ww(y) T 1 r(x) w(x) r(y) w(y) T 2 T 1 T 3 T 2 r(y) w(y) w(y) wr(x) T 3 r(z) w(z) r(x) t 15 Serialisierungsreihenfolge: (T 2, T 1, T 3 ) Beispiele nichtserialisierbare Schedules Lost Update: S=(r 1 (x), w 2 (x), w 1 (x)) T 1 T 2 r(x) w(x) w(x) Dirty Read: S=(w 1 (x), r 2 (x), w 1 (x)) T 1 T 2 Nonrepeatable Read: S=(r 1 (x), w 2 (x), r 1 (x)) T 1 T 2 w(x) w(x) r(x) r(x) r(x) w(x) 16
9 Techniken zur Synchronisation 17 Verwaltungsaufwand für Serialisierungsgraphen ist in der Praxis zu hoch. Deshalb: Andere Verfahren, die die Serialisierbarkeit gewährleisten Pessimistische Ablaufsteuerung (Locking) Konflikte werden vermieden, indem Transaktionen durch Sperren blockiert werden Nachteil: ggf. lange Wartezeiten Vorteil: I.d.R. nur wenig Rücksetzungen aufgrund von Synchronisationsproblemen nötig Standardverfahren Optimistische Ablaufsteuerung Transaktionen werden im Konfliktfall zurückgesetzt Transaktionen arbeiten bis zum COMMIT ungehindert. Anschließend erfolgt Prüfung (z.b. anhand von Zeitstempeln), ob ein Konflikt aufgetreten ist Nur geeignet, falls Konflikte zwischen Schreibern eher selten auftreten Inhalt 1. Anomalien im Mehrbenutzerbetrieb 2. Serialisierbarkeit von Transaktionen 3. Sperrverfahren (Locking) 4. Behandlung von Verklemmungen Synchronisation ohne Sperren
10 Grundbegriffe (1) Sperre (Lock) Temporäres Zugriffsprivileg auf einzelnes DBObjekt Anforderung einer Sperre durch LOCK, Freigabe durch UNLOCK LOCK / UNLOCK erfolgt atomar Sperrgranularität: Datenbank, DBSegment, Relation, Index, Seite, Tupel, Spalte, Attributwert Sperrenverwalter führt Tabelle für aktuell gewährte Sperren 19 Grundbegriffe (2) Legale Schedules Vor jedem Zugriff auf ein Objekt wird eine geeignete Sperre gesetzt. Keine Transaktion fordert eine Sperre an, die sie schon besitzt. Spätestens bei Transaktionsende werden alle Sperren zurückgegeben. Sperren werden respektiert, d.h. eine mit gesetzten Sperren unverträgliche Sperranforderung (z.b. exklusiver Zugriff auf Objekt x) muss warten. Bemerkungen Anfordern und Freigeben von Sperren sollte das DBMS implizit selbst vornehmen. Die Verwendung legaler Schedules garantiert noch nicht die Serialisierbarkeit. 20
11 ZweiPhasenSperrprotokoll (2PL) Einfachste und gebräuchlichste Methode, um ausschließlich serialisierbare Schedules zu erzeugen Merkmal: keine Sperrenfreigabe vor der letzten Sperrenanforderung einer Transaktion Ergebnis: Ablauf in zwei Phasen Wachstumsphase: Anforderungen der Sperren Schrumpfungsphase: Freigabe der Sperren # Sperren Wachstumsphase Schrumpfungsphase 21 BOT EOT Zeit Serialisierbarkeit ist gewährleistet, da Serialisierungsgraphen keine Zyklen enthalten können. Striktes ZweiPhasenSperrprotokoll (1) Problem des einfachen 2PL: Gefahr des kaskadierenden Rücksetzens im Fehlerfall Beispiel: 22 T 1 T 2 T 3 L(x) U(x) L(x) U(x) L(x) Commit U(x) Rollback Transaktion T 1 wird nach U(x) zurückgesetzt Transaktion T 2 hat schmutzig gelesen und muss auch zurückgesetzt werden Sogar die abgeschlossene Transaktion T 3 muss zurückgesetzt werden eklatanter Verstoß gegen die Dauerhaftigkeit (ACID) des COMMIT!
12 Striktes ZweiPhasenSperrprotokoll (2) Abhilfe durch striktes (oder strenges) ZweiPhasen Sperrprotokoll: Alle Sperren werden bis zum COMMIT gehalten COMMIT wird atomar (d.h. nicht unterbrechbar) ausgeführt # Sperren BOT EOT Zeit 23 RXSperrverfahren Bisher: kein paralleles Lesen oder Schreiben möglich Jetzt: Parallelität unter Lesern erlaubt 2 Arten von Sperren Lesesperren oder RSperren (read locks) Schreibsperren oder XSperren (exclusive locks) Verträglichkeit der Sperrentypen angeforderte Sperre R X bestehende Sperre R X 24
13 RUXSperrverfahren (1) Deadlockgefahr durch Sperrkonversionen (Umwandlung einer RSperre in eine XSperre) T 1 R 1 (y) X 1 (y) T 2 R 2 (y) X 2 (y) X 1 (y) muss auf Freigabe von R 2 (y) warten X 2 (y) muss auf Freigabe von R 1 (y) warten Lösung: UpdateSperren USperre für Lesen mit Änderungsabsicht Zur (späteren) Änderung des Objekts wird Konversion U X vorgenommen Erfolgt keine Änderung, kann Konversion U R durchgeführt werden (Zulassen anderer Leser) 25 RUXSperrverfahren (2) Verträglichkeit der Sperrentypen bestehende Sperre 26 angeforderte Sperre R U X R U X Kein Verhungern möglich, da spätere Leser keinen Vorrang haben Keine Konversionsverklemmung auf demselben Objekt möglich Verklemmungen bzgl. verschiedener Objekte bleiben möglich
14 RAXSperrverfahren Symmetrische Variante von RUX: Bei gesetzter ASperre wird weitere RSperre erlaubt Verträglichkeit der Sperrentypen angeforderte Sperre R A X bestehende Sperre R A X Beim Konvertierungswunsch A X Verhungern möglich Tradeoff zwischen höherer Parallelität und Verhungern 27 Hierarchische Sperrverfahren Sperrgranularität bestimmt Parallelität / Aufwand Sperrobjekte Granularität Aufwand Konfliktrate 28 DB DBSegment Tabelle Tupel Tradeoff grob fein gering hoch hoch gering Geringe Konfliktrate ermöglicht hohen Parallelitätsgrad Feine Granularität verursacht hohen Verwaltungsaufwand Lösung: variable Granularität durch hierarchische Sperren Kommerzielle DBS unterstützen zumeist 2stufige Objekthierarchie, z.b. SegmentSeite oder TabelleTupel
15 Hierarchische Sperrverfahren 29 Vorgehensweise bei hierarchischen Sperrverfahren: Anwendung eines beliebigen Sperrprotokolls (z.b. RX) auf der feingranularen Ebene (z.b. Tupel) Anwendung eines speziellen Protokolls (RIX) auf der grobgranularen Ebene (z.b. Relation) Ziele von RIX: Erkennung von Konflikten auf der RelationenEbene Zusätzlich: Effiziente Erkennung der Konflikte zwischen den beiden verschiedenen Ebenen Bei Anforderung einer Relationensperre soll vermieden werden, jedes einzelne Tupel auf eine Sperre zu überprüfen (wäre bei Tupelsperren erforderlich) Trotzdem maximale Nebenläufigkeit von TAs, die nur mit einzelnen Tupeln arbeiten. Hierarchische Sperren: Beispiel T1: T2: T3: T4: T5: XLock Tupel 30 RLock Relation RLock Tupel RLock Tupel XLock Tupel XLock Tupel XLock Tupel XLock Tupel Neues Tupel T2 kann (jeweils) mit T1, T3 oder T5 gleichzeitig arbeiten T3 und T4 können nicht mit T1 gleichzeitig arbeiten. Dies soll verhindert werden, ohne jedes einzelne Tupel auf Bestehen eines XLock zu überprüfen T2 und T4 können nicht gleichzeitig arbeiten, da sie unverträgliche Sperren auf demselben Tupel benötigen T1 und T5 können nicht gleichzeitig arbeiten (Phantomproblem!). Würden nur Tupelsperren verwendet, könnte dieser Konflikt nicht bemerkt werden
16 Hierarchisches Konzept: Intentionssperren 31 IRSperre (intention read): auf feinerer Granularitätsstufe existiert (mindestens) eine RSperre IXSperre (intention exclusive): auf feinerer Stufe XLock RIXSperre (RSperre IXSperre): volle Lesesperre und feinere Schreibsperre (sonst zu große Behinderung) Verträglichkeit der Sperrentypen: angeforderte Sperre R X IR IX RIX R bestehende Sperre X IR IX RIX Im markierten Bereich ist eine Überprüfung der Sperren auf der feingranul. Ebene zusätzlich erforderlich Beispiel 32 T1: T2: T3: T4: T5: RLock Relation angeforderte Sperre R X IR IX RIX IR RLock Tupel RLock Tupel R IX XLock Tupel bestehende Sperre X IR IX RIX XLock Tupel XLock Tupel IX XLock Tupel XLock Tupel IX Neues Tupel
17 MehrversionenSperren: RAC (1) Änderungen erfolgen in lokalen Kopien im TAPuffer ASperren zur Änderung erforderlich Bei COMMIT erfolgt Konvertierung von A C CSperre zeigt Existenz zweier gültiger Objektversionen V old und V new an CSperre wird erst freigegeben wenn letzter Leser fertig ist Zustand eines Objekts mit RLock: V old oder V new wird von ein oder mehreren TAs gelesen ALock: Objektversion wird im lokalen TAPuffer zu V new geändert, alle Leser sehen V old CLock: Objekt wurde per COMMIT geändert neue Leser sehen V new 33 alte Leser sehen V old MehrversionenSperren: RAC (2) 34 Verträglichkeit der Sperrentypen angeforderte Sperre R A C bestehende Sperre R A C Leseanforderungen werden nie blockiert Schreiber müssen bei gesetzter CSperre auf alle Leser der alten Version warten Höherer Aufwand für Datensicherheit durch parallel gültige Versionen Hoher Aufwand für Serialisierung (Abhängigkeitsbeziehungen prüfen)
18 Konsistenzstufen Serialisierbare Abläufe gewährleisten automatisch Korrektheit des Mehrbenutzerbetriebs, erzwingen aber u. U. lange Blockierungszeiten paralleler Transaktionen Kommerzielle DBS unterstützen deshalb häufig schwächere Konsistenzstufen als die Serialisierbarkeit unter Inkaufnahme von Anomalien Verschiedene Konzepte für Konsistenzstufen Definition über Sperrentypen ( Konsistenzstufen nach Jim Gray): Definition über Anomalien ( Isolation Levels in SQL92) 35 Konsistenzstufen nach J. Gray (1) Definition über die Dauer der Sperren: lange Sperren: werden bis EOT gehalten kurze Sperren: werden nicht bis EOT gehalten 36 Konsistenzstufe 0 Konsistenzstufe 1 Konsistenzstufe 2 Konsistenzstufe 3 Schreibsperre kurz lang lang lang Lesesperre kurz lang Konsistenzstufe 0 ohne Bedeutung, da Dirty Write und Lost Update möglich Konsistenzstufe 1 kein Dirty Write mehr, da Schreibsperren bis EOT Dirty Read möglich, da keine Lesesperren
19 Konsistenzstufen nach J. Gray (2) Konsistenzstufe 2 praktisch sehr relevant kein Dirty Read mehr, da Lesesperren NonRepeatable Read möglich, da zwischen zwei Lesevorgängen eine andere TA das Objekt ändern kann Lost Update möglich, da nur kurze Lesesperren (kann durch Cursor Stability verhindert werden) Konsistenzstufe 3 entspricht strengem 2PL, Serialisierbarkeit ist gewährleistet NonRepeatable Read und Lost Update werden verhindert Cursor Stability (Modifikation von Konsistenzstufe 2) Lesesperren bleiben solange bestehen, bis der Cursor zum nächsten Objekt übergeht (Mögliche) Änderungen am aktuellen Objekt können nicht verloren gehen Nachteil: Anwendungsprogrammierer hat Verantwortung für korrekte Synchronisation 37 Isolation Levels in SQL92 Je länger ein Read Lock bestehen bleibt, desto eher ist die Transaktion isoliert von anderen Definition der Isolation Levels über erlaubte Anomalien Isolation Level READ UNCOMMITTED READ COMMITTED REPEATABLE READ SERIALIZABLE Lost Update Dirty Read Lost Update ist immer ausgeschlossen SQLAnweisung NonRep. Read Phantom SET TRANSACTION ISOLATION LEVEL <level> 38 (Default <level> ist SERIALIZABLE)
20 Inhalt 1. Anomalien im Mehrbenutzerbetrieb 2. Serialisierbarkeit von Transaktionen 3. Sperrverfahren (Locking) 4. Behandlung von Verklemmungen Synchronisation ohne Sperren Verklemmung (Deadlock) Zwei Transaktionen warten gegenseitig auf die Freigabe einer Sperre Beispiel: L 1 (x), L 2 (y), L 1 (y), L 2 (x) 40 T 1 L 1 (x) L 1 (y) T 2 L 2 (y) L 2 (x) T 1 wartet auf Freigabe von y durch T 2 T 2 wartet auf Freigabe von x durch T 1 Voraussetzungen für das Auftreten von Verklemmungen (vgl. Betriebssysteme) Datenbankobjekte sind zugriffsbeschränkt Sperren auf bereits gelesenen oder geschriebenen Objekten sind nicht entziehbar TAs sperren nicht alle Objekte gleichzeitig, sondern fordern Sperren nach TAs sperren Objekte in beliebiger Reihenfolge TAs warten auf Sperrenfreigabe durch andere TAs, ohne selbst Sperren freizugeben
21 Erkennen und Auflösen von Deadlocks (1) TimeOut Strategie Falls eine TA innerhalb einer Zeiteinheit t keinen Fortschritt macht, wird sie als verklemmt betrachtet und zurückgesetzt t zu klein: TAs werden u. U. beim Warten auf Ressourcen abgebrochen t zu groß: Verklemmungszustände werden zu lange geduldet Wartegraphen Knoten des Wartegraphen sind TAs, Kanten sind die Wartebeziehungen Verklemmung liegt vor, wenn Zyklen im Wartegraph auftreten Zyklen können eine Länge > 2 haben (ist in der Praxis untypisch) Die Verwaltung von Wartegraphen ist für die Praxis zu aufwändig 41 Erkennen und Auflösen von Deadlocks (2) Strategien zur Auflösung von Verklemmungen durch Rücksetzen beteiligter TAs: Minimierung des Rücksetzaufwands: Wähle jüngste TA oder TA mit den wenigsten Sperren aus Maximierung der freigegebenen Ressourcen: Wähle TA mit den meisten Sperren aus, um die Gefahr weiterer Verklemmungen zu verkleinern Mehrfache Zyklen: Wähle TA aus, die an mehreren Zyklen beteiligt ist Vermeidung der Aushungerung (Starvation): Setze früher bereits zurückgesetzte TAs möglichst nicht noch einmal zurück 42
22 Vermeidung von Deadlocks durch Preclaiming (1) Preclaiming: alle Sperrenanforderungen werden zu Beginn einer TA gestellt # Sperren 43 BOT atomar! EOT Zeit Vorteile sehr einfache und effektive Methode zur Vermeidung von Deadlocks keine Rücksetzungen zur Auflösung von Deadlocks nötig in Verbindung mit strengem 2PL wird kaskadierendes Rücksetzen vermieden Vermeidung von Deadlocks durch Preclaiming (2) Nachteile benötigte Sperren sind bei BOT i. a. noch nicht bekannt, z.b. bei interaktiven TAs Fallunterscheidungen in TAs dynamischer Bestimmung der gesperrten Objekte z. T. Abhilfe durch Sperren einer Obermenge der tatsächlich benötigten Objekte: unnötige Ressourcenbelegung Einschränkung der Parallelität 44
23 Vermeidung von Deadlocks durch Zeitstempel (1) Konzept Jeder Transaktion T i wird zu Beginn ein Zeitstempel TS(T i ) zugeordnet (Time Stamp) Objekte tragen nach wie vor Sperren TAs warten nicht bedingungslos auf die Freigabe von Sperren In Abhängigkeit von den Zeitstempeln werden TAs im Konfliktfall zurückgesetzt Zwei Strategien, falls T i auf Sperre von T j trifft: woundwait und waitdie 45 Vermeidung von Deadlocks durch Zeitstempel (2) woundwait: T i fordere Sperre L(x) an. Jüngere TA T j, d.h. TS(T j ) > TS(T i ), hält bereits Sperre auf x: => T i läuft weiter, jüngere TA T j wird zurückgesetzt (wound) Ältere TA T j, d.h. TS(T j ) < TS(T i ), hält bereits Sperre auf x: => T i wartet auf Freigabe der Sperre durch ältere TA T j (wait) TS(T j ) > TS(T i ) T j T i L(x) wound L(x) TS(T j ) < TS(T i ) T j L(x) T i L(x) wait U(x) ältere TAs bahnen sich ihren Weg durch das System 46
24 Vermeidung von Deadlocks durch Zeitstempel (3) waitdie: T i fordere Sperre L(x) an. Jüngere TA T j, d.h. TS(T j ) > TS(T i ), hält bereits Sperre auf x: => T i wartet auf Freigabe der Sperre durch jüngere TA T j (wait) Ältere TA T j, d.h. TS(T j ) < TS(T i ), hält bereits Sperre auf x: => T i wird zurückgesetzt (die), ältere TA T j läuft weiter TS(T j ) > TS(T i ) L(x) T j T i L(x) wait U(x) TS(T j ) < TS(T i ) T j T i L(x) L(x) die 47 ältere TAs müssen zunehmend mehr warten Verhalten: es treten keine Deadlocks mehr auf Gelegentlich werden TAs zurückgesetzt, ohne dass tatsächlich ein Deadlock aufgetreten wäre Inhalt 1. Anomalien im Mehrbenutzerbetrieb 2. Serialisierbarkeit von Transaktionen 3. Sperrverfahren (Locking) 4. Behandlung von Verklemmungen Synchronisation ohne Sperren
25 Synchronisation ohne Sperren 49 Synchronisation mit Sperren pessimistische Annahme: Konflikte sind möglich und treten (oft) auf Vorgehen: Verhinderung von Konflikten Methode: Blockierung von Transaktionen reale Gefahr von Verklemmungen Sperrenverwaltung ist sehr aufwändig mögliche Leistungseinbußen durch lange Wartezeiten Nichtsperrende Synchronisation optimistische Annahme: Konflikte sind seltene Ereignisse Vorgehen: Auflösung von Konflikten Methode: Rücksetzen von Transaktionen keine Verklemmungen aufwändige Konfliktprävention wird eingespart mögliche Leistungseinbußen durch häufige Rücksetzungen Zeitstempel statt Sperren (1) Nicht nur Transaktionen, sondern auch Objekte O tragen Zeitstempel: readts(o): Zeitstempel der jüngsten TA, die das Objekt O gelesen hat. writets(o): Zeitstempel der jüngsten TA, die das Objekt O geschrieben hat. Prüfungen beim Lesezugriff von T i auf ein Objekt O: Falls TS(T i ) < writets(o): T i ist älter als die TA, die O geschrieben hat T i zurücksetzen Falls TS(T i ) writets(o): T i ist jünger als die TA, die O geschrieben hat T i darf O lesen, Lesemarke wird aktualisiert: readts(o) = max(ts(t i ), readts(o)) 50
26 Zeitstempel statt Sperren (2) Prüfungen beim Schreibzugriff von T i auf ein Objekt O: Falls TS(T i ) < readts(o): T i ist älter als TA, die O gerade gelesen hat => T i zurücksetzen Falls TS(T i ) < writets(o): T i ist älter als die TA, die O geschrieben hat => T i zurücksetzen Sonst: T i darf O schreiben, Schreibmarke wird aktualisiert: writets(o) = TS(T i ) 51 Zeitstempel statt Sperren (3) Beispiel 52 T 1 T 2 T 3 w(x) w(y) r(x) dirty! r(y) t 1 t 2 t 3 t 4 t 5 t 6 t 7 t 8 t 9 Seien writets(x), writets(y), readts(x) und readts(y) kleiner als t 1 t1: TS(T 1 ) = t 1 t2: TS(T 2 ) = t 2 t3: TS(T 3 ) = t 3 t4: write(x) in T 1 : Da TS(T 1 ) > readts(x) darf T 1 auf x schreiben, dann: writets(x) := t 1 t5: write(y) in T 3 : Da TS(T 3 ) > readts(y) darf T 3 auf y schreiben, dann: writets(y) := t 3 t6: keine Prüfung bei COMMIT von T 3 t7: read(x) in T 2 : Da TS(T 2 ) writets(x) darf T 2 auf x lesen, dann: readts(x) := t 2 t8: keine Prüfung bei COMMIT von T 2 (eigenes Problem mit dirty read siehe unten) t9: read(y) in T 1 : Da TS(T 1 ) < writets(y) wird T 1 zurückgesetzt t
27 Zeitstempel statt Sperren (4) Problem mit Dirty Read im Beispiel: T 2 liest x, obwohl T 1 noch kein COMMIT hatte geänderte, aber noch nicht festgeschriebene Daten müssen noch gegen Lesen bzw. Überschreiben gesichert werden (z.b. durch dirtybit) damit aber wieder Deadlocks möglich Auswirkungen Methode garantiert Serialisierbarkeit bis auf Dirty Read es treten keine Deadlocks auf (möglicherweise jedoch durch dirtybit) äquivalente serielle Reihenfolge entspricht den Zeitstempeln der TAs 53 Zeitstempel statt Sperren (5) Nachteil für lange TAs Rücksetzgefahr steigt mit Dauer der TA Verhungern von TAs durch wiederholtes Zurücksetzen wird nicht verhindert Bewertung Verwaltung der Objektmarken ist sehr aufwändig und nicht feingranularer als auf Seitenebene praktikabel Zeitstempel müssen für jedes Objekt verwaltet werden, während Sperren nur bei Zugriff auf Objekte angelegt werden 54
28 Optimistische Synchronisation (1) 55 Konzept Keine Konfliktprävention Konflikte werden erst bei COMMIT festgestellt Im Konfliktfall werden Transaktionen zurückgesetzt nahezu beliebige Parallelität, da TAs nicht blockiert werden Drei Phasen einer TA BOT Lesephase Validierungsphase Schreibphase EOT (Anforderung des COMMIT) Lesephase: eigentliche TAVerarbeitung, Änderungen nur im lokalen TAPuffer Validierungsphase: Prüfung, ob die abzuschließende TA mit nebenläufigen TAs in Konflikt geraten ist; im Konfliktfall wird die TA zurückgesetzt Schreibphase: nach erfolgreicher Validierung werden die Änderungen dauerhaft gespeichert Optimistische Synchronisation (2) Validierungstechniken Für jede Transaktion T i werden zwei Mengen geführt: RS(T i ): die von T i gelesenen Objekte (Read Set) WS(T i ): die von T i geschriebenen Objekte (Write Set) Konflikterkennung Konflikt zwischen T i und T j liegt vor, wenn WS(T i ) RS(T j ) Annahme: WS(Ti) RS(Ti), d.h. jedes Objekt wird vor dem Schreiben gelesen (neue Objekte müssen nicht in die Lesemenge eingetragen werden) Zwei Validierungsstrategien BackwardOriented Optimistic Concurrency Control (BOCC): Validierung nur gegenüber bereits beendeten TAs ForwardOriented Optimistic Concurrency Control (FOCC): Validierung nur gegenüber noch laufenden TAs 56 Bemerkungen Serialisierungsreihenfolge ist durch Validierungsreihenfolge gegeben Validierung und Schreiben muss ununterbrechbar durchgeführt werden
29 BOCC (1) Validierung von T i Wurde eines der während der Lesephase von T i gelesenen Objekte von einer anderen (bereits beendeten) Transaktion T j geändert? D.h. ReadSet RS(T i ) wird mit allen WriteSets WS(T j ) von Transaktionen T j verglichen, die während der Lesephase von T i validiert haben Algorithmus 57 VALID := true; for (alle während Ausführung von T i beendeten T j ) do if RS(T i ) WS(T j )<> then VALID := false; end; if VALID then Schreiphase(T i ); Commit (T i ); else Rollback(T i ); // Nothing to do BOCC (2) Beispiel T 1 T 2 T 3 r(y) w(x) w(y) V S Ablauf T 2 wird erfolgreich validiert, da es noch keine validierten TAs gibt T 3 wird erfolgreich validiert, da für y WS(T 3 ) RS(T 3 ) gilt: y WS(T 2 ) T 1 steht wegen x WS(T 2 ) in Konflikt mit T 2 und wird abgebrochen V S V: Validierung S: Schreibphase r(x) V 58 Zurücksetzen war unnötig, da T 1 bereits die aktuelle Version von x gelesen hat.
30 BOCC (3) Abhilfe: BOCC Objekte bekommen Änderungszähler oder Versionsnummern TAs werden nur zurückgesetzt, wenn sie tatsächlich veraltete Daten gelesen haben Nachteile für lange TAs Verhungern von Transaktionen wird nicht verhindert Anzahl der zu vergleichenden WriteSets steigt mit TADauer TAs mit großen ReadSets können in viele Konflikte geraten spätes Zurücksetzen erst bei der Validierung verursacht hohen Arbeitsverlust 59 FOCC (1) Validierung von T i Wurde eines der von T i geänderten Objekte von einer anderen (noch laufenden) Transaktion T j gelesen? D.h. WriteSet WS(T i ) wird mit allen ReadSets RS(T j ) von Transaktionen T j verglichen, die sich gerade in der Lesephase befinden Algorithmus VALID := true; for (alle laufenden T j ) do if WS(T i ) RS(T j )<> then VALID := false; end; if VALID then Schreiphase(T i ) ; commit (T i ); else löse Konfikt auf; 60
31 FOCC (2) 61 Bewertung Validierung muss nur von ändernden Transaktionen durchgeführt werden. die überflüssigen Rücksetzungen von BOCC werden vermieden überflüssige Rücksetzungen wegen der vorgegebenen SerialisierungsReihenfolge sind weiterhin möglich mehr Freiheiten bei der Konfliktauflösung: beliebige TA kann abgebrochen werden, z.b. KillAnsatz: die noch laufenden TAs werden abgebrochen. DieAnsatz: die validierende TA wird abgebrochen ( stirbt ). Verhindern von Verhungerung: z.b. Anzahl der Rücksetzungen einer TA beachten. FOCC (3) Beispiel V: Validierung S: Schreibphase T 1 T 2 T 3 r(y) w(x) w(y) V S Ablauf: T 2 wird erfolgreich validiert, da x noch von keiner TA gelesen wurde. T 3 wird erfolgreich validiert, da y von keiner (noch) laufenden TA gelesen wurde. T 1 ist eine reine LeseTA und muss nicht validiert werden. V S r(x) V 62 Hätte T 2 das Objekt y auch geändert, so wäre der Konflikt mit T 3 bei der Validierung von T 2 erkannt worden, und eine der beiden TAs hätte abgebrochen werden müssen
32 Abschließende Bemerkungen Qualitätsmerkmale von Synchronisationsverfahren Effektivität: Serialisierbarkeit, Vermeidung von Anomalien Parallelitätsgrad (Blockierung nebenläufiger TAs) Verklemmungsgefahr Häufigkeit von Rücksetzungen; Vermeidung überflüssiger Rücksetzungen Benachteiligung bestimmter (z.b. langer) TAs ( Verhungern ) durch lange Blockierungen oder häufige Rücksetzungen Verwaltungsaufwand für die Synchronisation (Sperren, Zeitstempel, ) Praktische Bewertung Oft Implementierungsprobleme für andere Granulate als DBSeiten Kombinationen der Verfahren möglich (z.b. Optimistic Locking, IMS Fast Path) Synchronisation von Indexstrukturen als eigenes Problem nahezu alle kommerziellen DBS setzen auf Sperrverfahren 63
Kapitel 3 Synchronisation
LUDWIG- MAXIMILIANS- UNIVERSITY MUNICH DEPARTMENT INSTITUTE FOR INFORMATICS DATABASE Skript zur Vorlesung: Datenbanksysteme II Sommersemester 2014 Kapitel 3 Synchronisation Vorlesung: PD Dr. Peer Kröger
Eigenschaften von TAs: ACID-Prinzip
Transaktionsparadigma Definition: Transaktion ununterbrechbare Folge von DML-/DDL-Befehlen begin transaction --- end transaction begin: meist implizit mit ersten Datenbankzugriff end: commit (work) oder
TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Dr. Thomas Neumann
TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Dr. Thomas Neumann Blatt Nr. 2 Übung zur Vorlesung Einsatz und Realisierung von Datenbanksystemen im SoSe15 Moritz Kaufmann ([email protected])
Datenbanksysteme 2009
Datenbanksysteme 2009 Vorlesung vom 30.06.09 Kapitel 14: Mehrbenutzersynchronisation Oliver Vornberger Institut für Informatik Universität Osnabrück Multiprogramming Zeitachse Einbenutzer betrieb T1 T2
Transaktionskonzept Eine Transaktion ist eine Folge von Operationen mit folgenden ACID Eigenschaften: Atomicity: Es werden alle Operationen oder gar k
Transaktionsverwaltung 1. Schnellkurs: Serialisierbarkeit, Isolationslevel, Synchronisationsverfahren, Savepoints, Logging, Implementierungsaspekte! Harder, Rahm Buch 2. Erweiterte Transaktionskonzepte!
TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Dr. Thomas Neumann
TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Dr. Thomas Neumann Blatt Nr. 13 Übung zur Vorlesung Grundlagen: Datenbanken im WS14/15 Harald Lang ([email protected]) http://www-db.in.tum.de/teaching/ws1415/grundlagen/
Beispielszenarien. 12. Transaktionen. ACID-Eigenschaften. Transaktion
12. Transaktionen Beispielszenarien Transaktionsbegriff Probleme im Mehrbenutzerbetrieb Serialisierbarkeit Sperrprotokolle zur Synchronisation Isolationsebenen in SQL Platzreservierung für Flüge quasi
TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Alfons Kemper, Ph.D.
TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Alfons Kemper, Ph.D. Blatt Nr. 2 Übung zur Vorlesung Einsatz und Realisierung von Datenbanksystemen im SoSe14 Moritz Kaufmann ([email protected])
Prioritäten/Zeitstempel-Verfahren
Prioritäten/Zeitstempel-Verfahren Grundlegende Idee: Falls einer Transaktion T k eine Sperre nicht gewährt wird, weil eine andere Transaktion T i sie hält, besteht Deadlockgefahr. Also bekommt jede Transaktion
Prioritäten/Zeitstempel-Verfahren. WAIT-DIE und WOUND-WAIT-Strategien
Prioritäten/Zeitstempel-Verfahren Grundlegende Idee: Falls einer Transaktion T k eine Sperre nicht gewährt wird, weil eine andere Transaktion T i sie hält, besteht Deadlockgefahr. Also bekommt jede Transaktion
Mehrbenutzersynchronisation
Mehrbenutzersynchronisation Ausführung der drei Transaktionen T 1, T 2 und T 3 : (a) im Einzelbetrieb und Zeitachse T 1 T 2 T 3 (b) im (verzahnten) Mehrbenutzerbetrieb (gestrichelte Linien repräsentieren
Synchronisation in Datenbanksystemen in a nutshell
Synchronisation in Datenbanksystemen in a nutshell 1. Modell für nebenläufige Transaktionen und Korrektheitskriterium Transaktionsmodell: Folgen von Lese und Schreiboperationen abgeschlossen durch c=commit.
8. Transaktionsverarbeitung. Architektur von Datenbanksystemen I
8. Transaktionsverarbeitung Architektur von Datenbanksystemen I Einordnung ARCHITEKTUR VON DATENBANKSYSTEMEM I - Key/Value Store - Row Store - Column Store - Data Compression - Transaction Processing -
2. Synchronisation in DBS: Grundlagen, Sperrverfahren
2. Synchronisation in DBS: Grundlagen, Sperrverfahren Anomalien im Mehrbenutzerbetrieb Serialisierbarkeit Zweiphasen-Sperrprotokolle Konsistenzstufen von Transaktionen Hierarchische Sperrverfahren Deadlock-Behandlung
Kapitel 8: Transaktionen
Ludwig Maximilians Universität München Institut für Informatik Lehr- und Forschungseinheit für Datenbanksysteme Skript zur Vorlesung Wintersemester 2006/2007 Vorlesung: Dr. Peer Kröger Übungen: Karsten
Übungen zur Vorlesung. Datenbanken I. WS 2002/2003 Blatt 4 MUSTERLÖSUNG
Prof. Dr. S. Böttcher Adelhard Türling Übungen zur Vorlesung Datenbanken I WS 2002/2003 Blatt 4 MUSTERLÖSUNG Aufgabe 4.1: Bestimmen Sie zu den folgenden Transaktions-Schedules, ob diese (konflikt-) serialisierbar
Übungen zur Vorlesung. Mobile und Verteilte Datenbanken. WS 2008/2009 Blatt 4. Lösung
Dr. rer. nat. Sven Groppe Übungen zur Vorlesung Mobile und Verteilte Datenbanken WS 2008/2009 Blatt 4 Lösung Aufgabe 1: Bestimmen Sie zu den folgenden Transaktions-Schedules, ob diese (konflikt-) serialisierbar
Transaktionsmanagement - Einführung. Prof. Dr. T. Kudraß 1
Transaktionsmanagement - Einführung Prof. Dr. T. Kudraß 1 Einführung Nebenläufige Ausführung von Benutzerprogrammen wesentlich für gute Performance des DBMS Weil Plattenzugriffe häufig und relativ langsam
Mehrbenutzersynchronisation
Kapitel 10 Mehrbenutzersynchronisation 381 / 520 Mehrbenutzersynchronisation Alle TAs strikt seriell (also nacheinander) auszuführen ist sicher, aber langsam Oft werden Systemressourcen nicht voll ausgenutzt,
Mehrbenutzersynchronisation
Kapitel 13 Mehrbenutzersynchronisation 13.1 Multiprogramming Unter M ultiprogramming versteht man die nebenläufige, verzahnte Ausführung mehrerer Programme. Abbildung 13.1 zeigt exemplarisch die dadurch
Mehrbenutzersynchronisation
Mehrbenutzer Synchronisation KonfliktKategorien Serialisierung Historien Sperrungen Verklemmungen Optimistische Synchronisation Synchronisation in SQL Mehrbenutzersynchronisation Ausführung der drei Transaktionen,
Software-Engineering und Datenbanken
Software-Engineering und Datenbanken Transaktionskonzepte 1 Der Transaktionsbegriff Eine Transaktion ist eine Folge von Operationen, die die Datenbank von einem konsistenten Zustand in einen neuen überführen.
Mehrbenutzer-Synchronisation
Mehrbenutzer-Synchronisation Konflikt-Kategorien Serialisierung Historien Sperrungen Verklemmungen Optimistische Synchronisation Synchronisation in SQL Kapitel 11 1 Mehrbenutzersynchronisation Ausführung
Transaktionen. Concurrency Management in MS SQL Server
Transaktionen Concurrency Management in MS SQL Server Transaktionen in SQL Server SQL Server bietet die Möglichkeit, eine Reihe von Datenbankoperationen (Änderungen) in einem logischen Vorgang zu gruppieren
Mehrbenutzersynchronisation
Mehrbenutzersynchronisation VU Datenbanksysteme vom 4.11. 2015 Reinhard Pichler Arbeitsbereich Datenbanken und Artificial Intelligence Institut für Informationssysteme Technische Universität Wien Nebenläufigkeit
Transaktionsverarbeitung und Nebenläufigkeitskontrolle. Jim Gray ( )
Transaktionsverarbeitung und Nebenläufigkeitskontrolle Jim Gray (1944-2007) Transaktionsverwaltung Beispiel einer typischen Transaktion in einer Bankanwendung: 1. Lese den Kontostand von A in die Variable
Mehrbenutzer-Synchronisation
MehrbenutzerSynchronisation KonfliktKategorien Serialisierung Historien Sperrungen Verklemmungen Optimistische Synchronisation Synchronisation in SQL Mehrbenutzersynchronisation Ausführung der drei Transaktionen,
Konfliktgraph. Satz und Definition
9. Transaktionsverwaltung 9.2. Mehrbenutzerkontrolle Seite 1 Konfliktgraph Der Konfliktgraph von S ist ein gerichteter Graph KG(S) = (V, E), wobei V die Menge aller Transaktionen in S und E die Menge der
Kommunikation und Datenhaltung
Kommunikation und Datenhaltung Transaktionsverwaltung Überblick über den Datenhaltungsteil Motivation und Grundlagen Architektur von Datenbanksystemen Datenbankanfragen Relationenmodell und Relationenalgebra
Grundlagen von Datenbanken. Referentielle Aktionen, Sichten, Serialisierbarkeit und Locking
Grundlagen von Datenbanken Referentielle Aktionen, Sichten, Serialisierbarkeit und Locking SQL DDL: Referentielle Aktionen (1/3) Potentielle Gefährdung der referentiellen Integrität durch Änderungsoperationen
1 Referentielle Aktionen
1 Referentielle Aktionen Betrachten Sie das folgende Datenbankschema: Person(Vorname, Nachname, DOB, Wohnort, Lieblingsfilm Film.IMDb-ID, Videothek Videothek.VID) Film(IMDb-ID, Titel, (ProduzentVN, ProduzentNN)
Serialisierbarkeit von Historien: Minimalanforderung bzgl. "akzeptabler" Synchronisation
Rücksetzbarkeit Serialisierbarkeit von Historien: Minimalanforderung bzgl. "akzeptabler" Synchronisation von Transaktionen zusätzliche Forderung: lokale Rücksetzbarkeit von Historien, d.h. Jede Transaktion
... T n T 1 T 2 T 3. Transaktions-Manager. Daten-Manager. Recovery-Manager Puffer-Manager. Datenbank
Techniken der Schedule-Realisierung T 1 T 2 T 3.... T n Isolations-Eigenschaft wird durch den Scheduler sichergestellt. Aufgabe: : Koordination des Ablaufs konkurrierender Transaktionen so, dass deren
Vorlesung Datenbanksysteme Univ.-Prof. Dr. Günther Specht. Universität Innsbruck Institut für Informatik Datenbanken und Informationssysteme (DBIS)
Synchronisation paralleler Transaktionen Kapitel X Vorlesung Datenbanksysteme Univ.-Prof. Dr. Günther Specht Universität Innsbruck Institut für Informatik Datenbanken und Informationssysteme (DBIS) Vorlesungsinhalt
Einführung - Anomalien beim ungeschützten und konkurrierenden Zugriff von Lesern und Schreibern auf gemeinsame Daten
Synchronisation 0 Einführung - Anomalien beim ungeschützten und konkurrierenden Zugriff von Lesern und Schreibern auf gemeinsame Daten - Synchronisation von Transaktionen: Grundbegriffe und Modellannahmen
Datenbanken: Transaktionskonzept und Concurrency Control
Wesentlich für das Arbeiten mit Datenbanken sind konsistente Datenbestände! Folgerung: es muss sichergestellt werden, dass Datenmanipulationen von Benutzern immer in einem erneut konsistenten Zustand der
Datenbanken 1. Sommersemester Übung 8
Datenbanken 1 Sommersemester 2017 Übung 8 (v3.0-9.6.2017) Übersicht Aufgabe 1: Einfache Transaktionen Model (Lock/Unlock) Aufgabe 2: 2-Phasen-Sperrprotokoll (Two phase locking) Aufgabe 3: 2-Phasen-Sperrprotokoll
Datenintegrität und Transaktionskonzept
und Transaktionskonzept 1. / Datenkonsistenz 1 Mögliche Gefährdung der : Missachtung von Konsistenzbedingungen ("Semantische Integrität") Inkorrekte Verweise auf Datensätze in verschiedenen Tabellen ("Referentielle
Datenbanken: Ablaufpläne und Serialisierbarkeit
Theoretische Konzepte zur Abarbeitung parallel arbeitender Transaktionen Definition: (Ablaufplan, Schedule) Ein Ablaufplan S ist die verschränkte Anordnung bzw. Ausführung der Einzeloperationen einer Menge
DB I S. 1 Referentielle Aktionen [10 P.] Gegeben sei folgende Datendefinition:
1 Referentielle Aktionen Gegeben sei folgende Datendefinition: [10 P.] CREATE TABLE Wissenschaftler( SVNr int PRIMARY KEY, Vorname varchar(25) NOT NULL, Nachname varchar(25) NOT NULL, Gehalt int NOT NULL
1 Transaktionen in SQL. 2 Was ist eine Transaktion. 3 Eigenschaften einer Transaktion. PostgreSQL
1 Transaktionen in SQL Um Daten in einer SQL-Datenbank konsistent zu halten, gibt es einerseits die Möglichkeit der Normalisierung, andererseits sog. Transaktionen. 2 Was ist eine Transaktion Eine Transaktion
Transaktionen und Synchronisation konkurrierender Zugriffe
Transaktionen und Synchronisation konkurrierender Zugriffe Fragestellungen Aufgaben des Transaktionsmanagers Aktivieren von Transaktionen entsprechend den Anforderungen von Anwendungsprogrammen. Dabei
7. Transaktionsverwaltung
7. Transaktionsverwaltung Motivation Transaktionen erlauben Bündelung von Operationen und gelten als wichtigster Beitrag des Bereichs Datenbanken zur Informatik; sie werden heute auch außerhalb von Datenbanksystemen
Datenbankadministration
Datenbankadministration 11. Synchronisation AG DBIS University of Kaiserslautern, Germany Karsten Schmidt [email protected] (Vorlage TU-Dresden) Wintersemester 2008/2009 Transaktion Transaktion
Lösung zum 2. Übungsblatt VBS
UNIVERSITÄT ULM Fakultät für Informatik Verteilte Systeme Prof. Dr. Peter Schulthess Ralph Göckelmann Stefan Frenz Lösung zum 2. Übungsblatt VBS Aufgabe 1: Schnappschussgewinnung a) Welche Bedingungen
Der Scheduler. 9. Transaktionsverwaltung. Zustände einer Transaktion. Transaktionsoperationen
9. Transaktionsverwaltung Der Scheduler Architektur der Transaktionsverwaltung Sperrende und nicht-sperrende Verfahren Transaktionen in SQL-Systemen Transaktionsmonitore T 1 T T 2 n Transaktions- Manager
Koordination des Mehrbenutzerbetriebs 9. Koordination des Mehrbenutzerbetriebs
9. Mehrbenutzerbetrieb: DBS bedient gleichzeitig mehrere Benutzer Benutzer arbeiten zwar unabhängig voneinander, können aber die gleiche Relation oder sogar den gleichen Datensatz bearbeiten! Aktivität
Datenbanken 1. Sommersemester Übung 8
Datenbanken 1 Sommersemester 2017 Übung 8 (v2.0-9.6.2017) Übersicht Aufgabe 1: Einfache Transaktionen Model (Lock/Unlock) Aufgabe 2: 2-Phasen-Sperrprotokoll (Two phase locking) Aufgabe 3: 2-Phasen-Sperrprotokoll
2.3 View Serialisierbarkeit
2.3 View Serialisierbarkeit Das Problem, dass tote Aktionen bei FSSR ausgeklammert werden, lässt sich beheben, wenn man die Gleichheit der Reads-From-Relation eines gegebenen Schedules mit einem seriellen
Kapitel 3 Teil 2 Synchronisation - Algorithmen I
Kapitel 3 Teil 2 Synchronisation - Algorithmen I Inhalt: Pessimistische Scheduler, optimistische Scheduler, hybride Scheduler Scheduling-Algorithmen Scheduler (1) Entwurf von Scheduling-Algorithmen (Scheduler)
Fakultät für Informatik & Wirtschaftsinformatik DB & IS II SS Transaktionen & ACID. Dr. Christian Senger Transaktionen & ACID 1
Transaktionen & ACID Dr. Christian Senger Transaktionen & ACID 1 PC Architekturen Kein Mehrbenuzterbetrieb Recovery? Benutzerabbrüche? PC Lokale Datenbank PC PC PC PC PC PC-System DBMS PC PC PC PC Internet
Tag 4 Inhaltsverzeichnis
Tag 4 Inhaltsverzeichnis Normalformen Problem Formen (1-4) Weitere Formen Transaktionen Synchronisationsprobleme Überblick Autocommit Locking Savepoints Isolation levels Übungen RDB 4-1 Normalformen Problematik
2. Synchronisation in DBS: Grundlagen, Sperrverfahren
2. Synchronisation in DBS: Grundlagen, Sperrverfahren Anomalien im Mehrbenutzerbetrieb Serialisierbarkeit ZweiphasenSperrprotokolle Konsistenzstufen von Transaktionen Hierarchische Sperrverfahren DeadlockBehandlung
Kapitel 5 Mehrversionen-CC. MVCC: Annahmen & Eigenschaften
Kapitel 5 Mehrversionen-CC Bisher sind wir immer von der Grundannahme ausgegangen, dass jedes Datenobjekt x nur in einer Version vorliegt. Die Konsequenz daraus war, dass durch jedes Schreiben der Wert
Kapitel 12 Integrität der Datenbank
Kapitel 12 Integrität der Datenbank 12 Integrität der Datenbank 12 Integrität der Datenbank...1 12.1 Aspekte des Integritätsproblems...3 12.2 Semantische Integrität...4 12.3 Das Konzept der Transaktion...6
Datenbanken und Informationssysteme
Datenbanken und Informationssysteme Serialisierbarkeit Burkhardt Renz Fachbereich MNI TH Mittelhessen Wintersemester 2015/16 Übersicht Serialisierbarkeit 2-Phasen-Sperrprotokoll (2PL) Verklemmungen Modell
Teil II Concurrency Control. Kapitel 2 Serialisierbarkeitstheorie
Teil II Concurrency Control Kapitel 2: Serialisierbarkeitstheorie Korrektheitskriterien Kapitel 3: Konservative Concurrency Control-Protokolle Kapitel 4: Optimistische Concurrency Control-Protokolle Kapitel
Aufgabe 10.1: Lösung:
1 Aufgabe 10.1: Lösung: Aus Konfliktserialisierbarkeit folgt allgemeine Serialisierbarkeit. Bleibt zu zeigen, dass jetzt auch aus Serialisierbarkeit Konfliktserialisierbarkeit folgt, falls die Transaktionen
Isolationsstufen für Transaktionen. Dr. Karsten Tolle
Isolationsstufen für Transaktionen Dr. Karsten Tolle Probleme bei Transaktionen Gewährleistung der Isolation Sperren kein Lost Update Read 1 (Accounts[13]) Read 2 (Accounts[13]) Write 2 (Accounts[13],101.000)
Grundlagen von Datenbanken SS Synchronisation paralleler Transaktionen
Grundlagen von Datenbanken SS 2010 9. Synchronisation paralleler Transaktionen Prof. Dr. Stefan Böttcher Universität Paderborn Agenda: Grundlagen von Datenbanken - SS 2010 - Prof. Dr. Stefan Böttcher Folie
Übungen zu Datenbanksysteme
Institut für Informatik Universität Osnabrück, 30.06.2009 Prof. Dr. Oliver Vornberger http://www-lehre.inf.uos.de/ dbs Dipl.-Math. Patrick Fox Abgabe bis 06.07.2009, 12:00 Uhr Aufgabe 10.1 (35 Punkte)
5. Transaktionsverarbeitung
5. Transaktionsverarbeitung 5.1. Einführung Viele Anwendungsprogramme / interaktive Benutzer arbeiten gleichzeitig (konkurrierend) auf gemeinsamer Datenbank (mit den gleichen Daten). Notwendigkeit: Abwicklung
Datenbanksysteme Technische Grundlagen Transaktions-Konzept, Mehrbenutzer-Synchronisation, Fehlerbehandlung
Datenbanksysteme Technische Grundlagen Transaktions-Konzept, Mehrbenutzer-Synchronisation, Fehlerbehandlung Prof. Dr. Manfred Gruber FH München Transaktions-Konzept (1) Beispiel: op 1 BOT op 2 read(k 1
Transaktionsverwaltung
Transaktionsverwaltung VL Datenbanksysteme Ingo Feinerer Arbeitsbereich Datenbanken und Artificial Intelligence Institut für Informationssysteme Technische Universität Wien Transaktionsverwaltung Transaktionen:
Transaktionen in Praxis. Dr. Karsten Tolle Vorl
Transaktionen in Praxis Dr. Karsten Tolle Vorl. 13.06.2017 Probleme bei Transaktionen Lost Update und Inconsistent Retrieval Sichtweise vom Benutzer Auszug aus SQL 92 1) P1 ("Dirty read"): SQL-transaction
Übung Datenbanksysteme I Transaktionen, Selektivität, XML
Übung Datenbanksysteme I G-3.1.09, Campus III Hasso Plattner Institut Übersicht Übungsthemen Transaktionen Selektivität XML Chart 2 Wiederholung Transaktionen Eine Transaktion ist eine Folge von Operationen
Konflikte. Konflikt-Äquivalenz von Read/Write-Plänen, Konflikt-Serialisierbarkeit
Konflikte Zwei Transaktionen liegen im Konflikt, wenn sie ein Objekt o gemeinsam nutzen, wobei mindestens eine der Transaktionen in o schreibt. Für eine Menge von Transaktionen T kann man nun alle Konflikte
Concurrency Control. Prof. Dr. T. Kudraß 1. Korrektheitskriterium: Serialisierbarkeit. Zwei Schedules sind konfliktäquivalent wenn gilt:
Concurrency Control Prof. Dr. T. Kudraß 1 Korrektheitskriterium: Serialisierbarkeit Zwei Schedules sind konfliktäquivalent wenn gilt: Sie enthalten genau die gleichen Transaktionen (und damit auch Aktionen)
