Nichtwiederholbares LesenNichtwiederholbares Lesen oder Non-Repeatable Read bezeichnet in der Informatik ein Problem, das auftritt, wenn innerhalb einer Transaktion die gleiche Leseoperation nacheinander unterschiedliche Ergebnisse liefert. BeispielDiese Transaktion könnte bei einem Wiki dazu eingesetzt werden, eine einfache Benutzerstatistik zu erstellen:
Gleichzeitig könnte die folgende Transaktion Bestandteil der bei Einstellen eines neuen Artikels ablaufenden Operationen sein:
Wenn ein Benutzer sich nun die Statistik anzeigen lässt, während ein anderer Benutzer gleichzeitig seinen fünften neuen Artikel einstellt, kann es zu dem folgenden Ablauf kommen. Hierbei würde der einstellende Benutzer lediglich in der Liste der faulen Benutzer angezeigt, bei der genaueren Aufschlüsselung (Ergebnis von Aktion 1b) würde er aber fehlen:
Je nach Umsetzung in der Software ist dies eine ernstzunehmende Fehlerquelle, da sich die Software beispielsweise darauf verlassen könnte, für alle zu Beginn gelesenen Benutzer weitere Informationen zu erhalten und nicht mit fehlenden Daten für einen Benutzer umgehen könnte. AbhilfeDatenbanken bieten üblicherweise die Möglichkeit der Transaktionsisolation. Bei Isolation durch Serialisierung könnte der obige Ablauf beispielsweise wie folgt aussehen; die Leseoperation wird wiederholbar:
Siehe auch |