2011-11-20 8 views

Odpowiedz

16

Trudno było znaleźć informacje na ten temat. Jednak w pewnym momencie znalazłem oświadczenie, że wyjaśnił to jasno:

  • operacja atomowa daje izolację na poziomie operacji, podczas Serializability daje izolację na poziomie transakcji.

(zestawione z opisu dogłębnej found here)

Jako przykład:

enter image description here

Tutaj, A, B i C są trzy różne operacje uruchomione w tym samym czas. r (nazwa_zmiennej) oznacza, że ​​bieżąca transakcja uzyskuje dostęp do wartości wewnątrz nazwy zmiennej, a w (nazwa_zmiennej) oznacza, że ​​bieżąca transakcja zapisuje określoną wartość w nazwie zmiennej.

Teraz, aby utworzyć zlinearyzowaną historię tych wydarzeń, musimy upewnić się, że nie ma dwóch operacji w tym samym czasie. Operacja, która została rozpoczęta, podczas gdy inna uruchomiona już operacja powinna pojawić się za pierwszą operacją.

W tym przypadku:

Log1: A.r(x), B.r(X), B.r(Y), A.w(X), C.r(Y) 

Aby utworzyć szeregowane historię tych wydarzeń, trzeba oddzielić wszystkie operacje transakcji A, B i C, więc nie ma przekładane operacje z innych transakcji.

Z naszego przykładu może to spowodować:

Log2: A.r(x), A.w(x), B.r(X), B.r(Y), C.r(Y) 
+0

+1, jedyną rzeczą, że uczyniłby to lepsza odpowiedź byłaby referencje. –

+0

@jameslewis Dziękuję. Dodałem odnośnik do artykułu, który sprawił, że już to rozumiem. – Qqwy

Powiązane problemy