Schreib-Lese-Konflikt

Schreib-Lese-Konflikt

Ein Schreib-Lese-Konflikt (auch Dirty Read) tritt in der Informatik auf, wenn von zwei gleichzeitig ablaufenden Transaktionen die eine Daten liest, die von der anderen geschrieben werden, jedoch noch nicht bestätigt (committed) sind.

Beispiel

Die folgende Transaktion könnte bei der Benutzeranmeldung in einem Wiki auftreten:

Transaktionsanfang
Füge neuen Benutzerdatensatz ein (Aktion 1a)
Selektiere alle gesperrten Benutzer mit derselben IP-Adresse (Aktion 1b)
Wenn diese IP-Adresse gebannt ist,
Rollback und Ausgabe einer Fehlermeldung
sonst
Commit und Ausgabe einer Erfolgsmeldung
Transaktionsende

Gleichzeitig könnte eine Funktion, mit der sich ein Benutzer eine Liste der angemeldeten Benutzer anzeigen lassen kann, die folgende Transaktion ausführen:

Transaktionsanfang
Selektiere alle Benutzerdatensätze (Aktion 2a)
Gib die gefundenen Benutzerdaten als bunte Webseite aus
Transaktionsende

Ohne Transaktionsisolation kann es nun auf die folgende Weise zu einem Schreib-Lese-Konflikt kommen, der dazu führen würde, dass auch ein eigentlich noch nicht existierender Datensatz ausgegeben wird:

Zeitpunkt Transaktion 1 Transaktion 2 Wirkung
1 Aktion 1a Benutzerdatensatz wird vorübergehend angelegt
2 Aktion 1b Sperrliste wird gelesen; Benutzer ist gesperrt
3 Aktion 2a Vorläufiger Benutzerdatensatz wird mit ausgegeben
4 Rollback Vorläufig angelegter Datensatz wird wieder entfernt

Abhilfe

Datenbanken bieten üblicherweise die Möglichkeit der Transaktionsisolation. Bei Isolation durch Serialisierung könnte der obige Ablauf beispielsweise wie folgt aussehen; der Schreib-Lese-Konflikt wird vermieden:

Zeitpunkt Transaktion 1 Transaktion 2 Wirkung
1 Aktion 1a Benutzerdatensatz wird vorübergehend angelegt
2 Aktion 1b Sperrliste wird gelesen; Benutzer ist gesperrt
3 Aktion 2a Tabelle gesperrt: Transaktion muss warten
4 Rollback Vorläufig angelegter Datensatz wird wieder entfernt
5 Aktion 2a Transaktion wird fortgeführt, vorläufiger Eintrag wird nicht mit ausgegeben

Siehe auch


Wikimedia Foundation.

Игры ⚽ Поможем сделать НИР

Schlagen Sie auch in anderen Wörterbüchern nach:

  • Dirty Read — Ein Schreib Lese Konflikt (auch Dirty Read) tritt in der Informatik auf, wenn von zwei gleichzeitig ablaufenden Transaktionen die eine Daten liest, die von der anderen geschrieben werden, jedoch noch nicht bestätigt (committed) sind. Beispiel Die …   Deutsch Wikipedia

  • Lost Update — Verlorenes Update (auch engl. Lost Update) bezeichnet in der Informatik einen Fehler, der bei mehreren parallelen Schreibzugriffen auf eine gemeinsam genutzte Information auftreten kann. Wenn zwei Transaktionen dieselbe Information verändern,… …   Deutsch Wikipedia

  • Verlorene Updates — Verlorenes Update (auch engl. Lost Update) bezeichnet in der Informatik einen Fehler, der bei mehreren parallelen Schreibzugriffen auf eine gemeinsam genutzte Information auftreten kann. Wenn zwei Transaktionen dieselbe Information verändern,… …   Deutsch Wikipedia

  • ACID (Informatik) — ACID, deutsch auch AKID, ist ein Akronym in der Informatik. Es beschreibt erwünschte Eigenschaften von Transaktionen in Datenbankmanagementsystemen (DBMS) und verteilten Systemen. Es steht für atomicity, consistency, isolation und durability. Man …   Deutsch Wikipedia

  • Laufbedingung — Dieser Artikel erläutert Race Condition in der Informatik, für die Race Condition in der Elektronik siehe Glitch (Elektronik). Als Race Condition oder Race Hazard (deutsch: Wettlaufsituation) werden in der Programmierung Konstellationen… …   Deutsch Wikipedia

  • Non-Repeatable Read — Nichtwiederholbares Lesen oder Non Repeatable Read bezeichnet in der Informatik ein Problem, das auftritt, wenn innerhalb einer Transaktion dieselbe Leseoperation nacheinander unterschiedliche Ergebnisse liefert. Beispiel Diese Transaktion könnte …   Deutsch Wikipedia

  • Race-Condition — Dieser Artikel erläutert Race Condition in der Informatik, für die Race Condition in der Elektronik siehe Glitch (Elektronik). Als Race Condition oder Race Hazard (deutsch: Wettlaufsituation) werden in der Programmierung Konstellationen… …   Deutsch Wikipedia

  • Race Hazard — Dieser Artikel erläutert Race Condition in der Informatik, für die Race Condition in der Elektronik siehe Glitch (Elektronik). Als Race Condition oder Race Hazard (deutsch: Wettlaufsituation) werden in der Programmierung Konstellationen… …   Deutsch Wikipedia

  • Race condition — Dieser Artikel erläutert Race Condition in der Informatik, für die Race Condition in der Elektronik siehe Glitch (Elektronik). Als Race Condition oder Race Hazard (deutsch: Wettlaufsituation) werden in der Programmierung Konstellationen… …   Deutsch Wikipedia

  • Wettlaufsituation — Dieser Artikel erläutert Race Condition in der Informatik, für die Race Condition in der Elektronik siehe Glitch (Elektronik). Als Race Condition oder Race Hazard (deutsch: Wettlaufsituation) werden in der Programmierung Konstellationen… …   Deutsch Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”