Transaktionsmanagement - MVCC-Protokoll
This is a modal window.
The media could not be loaded, either because the server or network failed or because the format is not supported.
Formal Metadata
Title |
| |
Title of Series | ||
Number of Parts | 93 | |
Author | ||
License | CC Attribution 4.0 International: You are free to use, adapt and copy, distribute and transmit the work or content in adapted or unchanged form for any legal purpose as long as the work is attributed to the author in the manner specified by the author or licensor. | |
Identifiers | 10.5446/64680 (DOI) | |
Publisher | ||
Release Date | ||
Language |
Content Metadata
Subject Area | ||
Genre | ||
Abstract |
| |
Keywords |
Datenbanken30 / 93
3
16
19
20
28
32
39
40
41
49
52
54
58
62
66
70
74
81
83
86
00:00
Database transactionSynchronizationValidationDatabase transactionRollback (data management)RobotEDTReading (process)NoSQL-DatenbanksystemDatabase transactionTimestampRollback (data management)SynchronizationVersion <Informatik>Reading (process)ValidationImplementationConcurrency patternORACLSValidity (statistics)Process (computing)Revision controlResultantObject (grammar)CASE <Informatik>Image resolutionFinite-state machinePhase transitionNumberVideoconferencingComputer animation
02:12
Database transactionValidationVersion <Informatik>Object (grammar)MathematicsRevision controlXMLProgram flowchart
02:36
ValidationReading (process)Database transactionObject (grammar)MathematicsNumberCASE <Informatik>Revision controlReading (process)Computer animation
02:55
Reading (process)ValidationValidationDatabase transactionValidity (statistics)NumberReading (process)Revision controlObject (grammar)Program flowchart
03:16
ValidationReading (process)Database transactionRevision controlMathematicsComputer animation
03:28
Reading (process)Version <Informatik>Program flowchart
03:33
Reading (process)Database transactionValidity (statistics)Computer animation
03:37
Reading (process)ValidationValidationDatabase transactionRevision controlTimestampProcedural programmingSynchronizationProgram flowchart
03:42
SynchronizationDatabase transactionValidationVersion <Informatik>ORACLSDeadlockValidationConcurrency patternSynchronizationDatabase transactionImplementationMultiplication signProcess (computing)Integrated development environmentValidity (statistics)Revision controlConcurrency (computer science)MathematicsPhase transitionGame controllerComputer animation
Transcript: German(auto-generated)
00:05
Hallo, in diesem Video geht es um die optimistische Synchronisation. Bei der optimistischen Synchronisation werden Zeitstempel verwendet, um Konflikte zwischen Transaktionen aufzulesen, wenn das Commit durchgeführt werden soll.
00:21
Die Grundidee ist eine rückgewärtsorientierte Validierung. Das heißt, es wird am Ende der Transaktion geprüft, ob ein Konflikt zu bereits abgeschlossenen Transaktionen auftritt. Wenn ein Konflikt auftritt, erfolgt ein Rollback. Wenn kein Konflikt auftritt, dann kann das Ergebnis der Transaktion geschrieben werden.
00:44
Das heißt, es folgt nach der Verdelierphase eine Schreibphase. Damit sind keine Sperren erforderlich zur Synchronisation der Transaktion. Und die Verarbeitung der Transaktion erfolgt erst nach dem Commit-Zeitpunkt. Allerdings ist es beim Ende der Transaktion noch nicht sicher,
01:04
ob die Transaktion auch geschrieben werden kann. Zudem ist nicht ausgeschlossen, dass auch ein kaskadierendes, zurücksetzten Weitereintransaktion erforderlich ist, um wieder einen konsistenten Zustand herzustellen. Optimistische Synchronisationsverfahren werden beispielsweise von Oracle eingesetzt
01:25
und einigen NoSQL-Datenbanken. Zum Erkennen von Änderungen werden entweder Zeitstempel genutzt oder eine Versionierung durchgeführt. Eine Implementierung ist das Multi-Version Concurrency Control-Protokoll.
01:40
Dabei wird eine Versionierung genutzt. Jedes Datenobjekt erhält also eine Versionsnummer. Bei jeder Schreiboperation erhöht sich die Versionsnummer. Am Ende der Transaktion wird dann geprüft, ob alle Datenobjekte, die gelesen worden sind, noch in der ursprünglichen Version vorliegen.
02:02
Ist das nicht der Fall, dann wird die Transaktion abgebrochen und ein Rollback durchgenommen. Nehmen wir als Beispiel die Situation eines Dirty Reads. Dafür liest die Transaktion 1 das Objekt A mit der Version 1 und ändert dies und schreibt dieses Objekt.
02:20
Parallel liest die Transaktion 2 auch das Objekt in der Version 1 und schreibt auch, macht aber jetzt schon ein Commit. Bei der anschließenden Validierung wird geprüft, ob Änderungen auf dem Objekt A vorhanden sind. Berücksichtigt werden nur die Änderungsoperationen,
02:40
die auch durch ein Commit abgeschlossen sind. Das ist bei der Änderung der ersten Transaktion nicht der Fall. Damit hat sich die Versionsnummer des Objekts nicht geändert seit dem Lesenzugriff der Transaktion 2. Die Validierung kann somit erfolgreich durchgeführt werden und das geänderte Objekt erhält die Versionsnummer 2.
03:02
Wenn die Transaktion 1 jetzt ein Commit macht, dann schlägt die Validierung fehl, weil die Versionsnummer jetzt 2 ist und nicht mehr 1. Die Transaktion 1 muss abgebrochen werden. Dadurch wird die Dirty Read-Anomalie vermieden. Wenn stattdessen durch die Transaktion 1 zunächst das Commit durchgeführt wird,
03:25
dann kann die Änderung der ersten Transaktion erfolgreich validiert werden und die Änderung in die Version 2 überführt werden. In diesem Fall schlägt dann die zweite Transaktion fehl bei der Validierung und die zweite Transaktion muss abgebrochen werden.
03:43
Die optimistische Synchronisation kann mittels Zeitstempelverfahren oder Versionierungen durchgeführt werden. Dabei wird die Transaktion erst zum Commit-Zeitpunkt verarbeitet. Dabei erfolgt eine rückwärtsorientierte Validierung. Das heißt, es wird geprüft, ob Konflikte aufgetreten sind.
04:04
Wenn keine Konflikte aufgetreten sind, dann erfolgt eine Schreibphase und die Änderungen werden übernommen. Eine Implementierung ist das Multi-Version Concurrency Control-Protokoll. Dieses wird beispielsweise auch von Oracle oder auch von CouchDB eingesetzt.
04:24
Optimistische Synchronisationsverfahren haben den Vorteil, dass keine Sperren und Deadlocks gesetzt werden. Damit sind diese Verfahren auch gut geeignet für lang andauernde Transaktionen, beispielsweise im mobilen und im verteilten Umfeld.