Citire irepetabilă

De la Wikipedia, enciclopedia liberă.
Salt la navigare Salt la căutare

În informatică , termenul citire irepetabilă sau analiză inconsecventă se referă la o eroare în gestionarea concurenței dintre tranzacții datorită unei dependențe de citire -> scriere .

Citirea irepetabilă este o analiză inconsecventă a datelor bazei de date printr-o tranzacție cauzată de actualizările produse de alta.

Definiție

Citirea irepetabilă apare atunci când o tranzacție Ta citește un X dat cu versiunea 0, notată ca X (0), iar Tb produce o nouă versiune X (1) care este citită de Ta după ce Tb este angajat.

Exemplu

Să presupunem că două tranzacții Ta și Tb operează pe înregistrări referitoare la cantitatea unui material în stoc. Ta însumează cantitățile prezente în containerul C1, C2 și C3. Tb vrea să transfere 1 bucată de material din containerul C3 în containerul C1. Iată situația inițială a celor trei containere:

C1 C2 C3
Cantitatea prezentă 4 5 3

Exemplu de execuție cu citire irepetabilă (Suma indică suma efectuată de Ta):

Vreme Tranzacție Ta Tranzacție Tb
t (0) citiți [C1] (Suma = 4)
t (1) citiți [C2] (Suma = 9)
t (2) citește [C3]
t (3) scrie [C3] (C3 = 2)
t (4) citește [C1]
t (5) scrie [C1] (C1 = 5)
t (6) comite
t (7) citiți [C3] (Suma = 11)

Ta efectuează o analiză inconsecventă a datelor și dă un rezultat incorect (11 în loc de 12).

Bibliografie

  • Paolo Ciaccia, Dario Mario, Lecții în baze de date, 2013, Editrice Esculapio, ISBN 978-8874887187

Elemente conexe