Non-Repeatable Read

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 bei einem Wiki dazu eingesetzt werden, eine einfache Benutzerstatistik zu erstellen:

Transaktionsanfang
Selektiere alle Benutzernamen mit weniger als fünf eingestellten Artikeln (Aktion 1a)
Gib die Liste der faulen Benutzer aus
Selektiere alle Benutzerdatensätze mit weniger als fünf eingestellten Artikeln (Aktion 1b)
Gib für diese Benutzer eine genauere Aufschlüsselung aus (Alter des Kontos, genaue Anzahl der Artikel usw.)
Transaktionsende

Gleichzeitig könnte die folgende Transaktion Bestandteil der bei Einstellen eines neuen Artikels ablaufenden Operationen sein:

Transaktionsanfang
Füge neuen Artikel ein (Aktion 2a)
Erhöhe Anzahl der eingestellten Artikel des einstellenden Benutzers (Aktion 2b)
Transaktionsende

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:

Zeitpunkt Transaktion 1 Transaktion 2 Wirkung
1 Aktion 1a Aktion 2a Benutzer wird angezeigt: Der Artikelzähler steht nur auf 4
2 Aktion 2b Artikelzähler wird auf 5 erhöht
3 Aktion 1b Benutzer ist nicht enthalten: Er hat nicht mehr weniger als 5 Artikel eingestellt

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.

Abhilfe

Datenbanken bieten üblicherweise die Möglichkeit der Transaktionsisolation. Bei Isolation durch Serialisierung könnte der obige Ablauf beispielsweise wie folgt aussehen; die Leseoperation wird wiederholbar:

Zeitpunkt Transaktion 1 Transaktion 2 Wirkung
1 Aktion 1a Aktion 2a Benutzer wird angezeigt: Der Artikelzähler steht nur auf 4
2 Aktion 2b Benutzertabelle gesperrt: Transaktion muss warten
3 Aktion 1b Benutzer wird ausgegeben, da Zähler noch nicht erhöht
4 Aktion 2b Transaktion wird fortgeführt, Zähler wird erhöht

Siehe auch


Wikimedia Foundation.

Игры ⚽ Поможем решить контрольную работу

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

  • Isolation (Datenbank) — In der Informatik bezeichnet der Begriff Isolation die Trennung von Transaktionen auf eine Weise, dass eine laufende Transaktion nicht von einer parallel ablaufenden Transaktion durch Änderung der benutzten Daten in einen undefinierten Zustand… …   Deutsch Wikipedia

  • Isolation (database systems) — In database systems, isolation is a property that defines how/when the changes made by one operation become visible to other concurrent operations. Isolation is one of the ACID (Atomicity, Consistency, Isolation, Durability) properties.Isolation… …   Wikipedia

  • Уровни изолированности транзакций — Уровень изолированности транзакций значение, определяющее уровень, при котором в транзакции допускаются несогласованные данные, то есть степень изолированности одной транзакции от другой. Более высокий уровень изолированности повышает точность… …   Википедия

  • Уровень изолированности транзакций — значение, определяющее уровень, при котором в транзакции допускаются несогласованные данные, то есть степень изолированности одной транзакции от другой. Более высокий уровень изолированности повышает точность данных, но при этом может снижаться… …   Википедия

  • 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 bei einem Wiki dazu… …   Deutsch Wikipedia

  • Combat Assault Vehicle — Cover Art by Neil Nowatzki. CAV or Combat Assault Vehicle is a miniatures wargame by Reaper Miniatures. Contents 1 Story …   Wikipedia

  • Oracle (Datenbanksystem) — Oracle Entwickler Oracle Aktuelle Version 11g Release 2 (1. September 2009) Betriebssystem …   Deutsch Wikipedia

  • Snapshot isolation — In databases, snapshot isolation is a isolation mode into Microsoft SQL Server 2005. It is similar to Multiversion concurrency control (MVCC). It guarantees that all reads made in a transaction will see a consistent snapshot of the database, and… …   Wikipedia

  • Oracle (DBMS) — Oracle Datenbank Basisdaten Entwickler: Oracle Aktuelle Version: 11g (10. Juli 2007) …   Deutsch Wikipedia

  • Oracle Database — Oracle Datenbank Basisdaten Entwickler: Oracle Aktuelle Version: 11g (10. Juli 2007) …   Deutsch Wikipedia

Share the article and excerpts

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