2011-11-20 57 views

回答

16

很難找到關於此主題的信息。但是,在某些時候,我發現一條聲明清楚地說明了這一點:

  • Linearizability在操作級別提供隔離,而Serializability在事務級別提供隔離。

(從深入描述found here總結)作爲一個例子:

enter image description here

在此,A,B和C是在相同的運行三個不同的交易時間。 r(varname)表示當前事務正在訪問varname中的值,而w(varname)則表示當前事務正在varname中寫入某個值。

現在,爲了創建這些事件的線性化歷史,我們必須確保沒有兩個操作同時發生。在另一個操作已經開始時已經開始的操作應該出現在第一個操作的後面。

在這種情況下:

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

要創建這些事件的序列化的歷史,一個必須進行的交易A,B和C的所有操作分開,以便有其他事務沒有交錯操作。

從我們的示例中,這可能會導致:

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

+1,只有將使它更好的答案是引用的東西。 –

+0

@jameslewis謝謝。我已經添加了一篇引用,讓我在之前理解了這篇文章。 – Qqwy

相關問題