Timeline
Chat
Prospettiva

Unrepeatable read

errore nella gestione della concorrenza tra transazioni Da Wikipedia, l'enciclopedia libera

Remove ads

In informatica, con il termine unrepeateble read, o inconsistent analysis, si intende un errore nella gestione della concorrenza tra transazioni dovuta ad una dipendenza read -> write.

L'unrepeateble read è un'analisi incoerente di dati di un database da parte di una transazione causata da aggiornamenti prodotti da un'altra.

Definizione

Si è in presenza di unrepeateble read quando una transazione Ta legge un dato X con versione 0, denotato come X(0), e Tb ne produce una nuova versione X(1) la quale viene letta o scritta da Ta dopo il commit di Tb.

Esempio

Supponiamo che due transazioni Ta e Tb operino su record relativi a quantità di un materiale in magazzino. Ta somma le quantità presenti nel contenitore C1, C2 e C3. Tb vuole trasferire 1 pezzo di materiale dal contenitore C3 al contenitore C1. Ecco la situazione iniziale dei tre contenitori:

Ulteriori informazioni C1, C2 ...

Esempio di esecuzione con Unrepeatable Read (con Sum viene indicato la somma effettuata da Ta):

Ulteriori informazioni Tempo, Transazione Ta ...

Ta opera un'analisi incoerente dei dati e fornisce un risultato errato (11 invece che 12).

Remove ads

Bibliografia

  • Paolo Ciaccia, Dario Mario, Lezioni di basi di dati, 2013, Editrice Esculapio, ISBN 978-8874887187

Voci correlate

Loading related searches...

Wikiwand - on

Seamless Wikipedia browsing. On steroids.

Remove ads