2013-12-11 195 views

回答

3

衝突序列化序列化超集,所以只是因爲日程衝突是序列化並不意味着它是序列化。如果時間表是可序列化的,則暗示此時間表是衝突序列化的。

與僅僅可序列化相比,它在計算上更容易確定是否存在可序列化的衝突。只需構建一個precedence graph。如果圖形是非循環的,那麼該圖形與圖形路徑描述的一些串行調度相沖突。

想象一下交易A B和C,都寫入同一頁面。 A寫,然後B,然後C,然後A再次。沒有可相互衝突的可序列化計劃。 A必須先行,因爲B和C在A之後有衝突。但A也必須繼續下去,因爲B和C在A之前有衝突。因此圖中的循環。

但僅僅因爲它不是可序列化的衝突並不意味着它不可序列化。例如,如果A的最後一次寫入與C的寫入完全相同,則ABC將是與原始寫入相同的串行時間表,因爲最後一次寫入並不是最終結果。

+0

如果Conf。可序列化是可序列化的子集,然後是每個conf。可序列化是可序列化的(按子集的定義)。例如。蘋果是水果的子集,所以每個蘋果都是水果,而不是相反(正如你在第一句話中聲稱的那樣)。你能修好/澄清一下嗎? – Drecker

0

衝突序列化是視圖序列化的子集。 「A計劃可以成爲衝突序列化,但無法查看序列化(如盲人寫的情況下)

0

衝突序列化是序列化的一個子集,因此僅僅因爲一個時間表是衝突序列化並意味着它是序列化。

見牛書數據庫管理系統2RD埃德Cha19.1.1 P541

每個衝突序列化的序列化調度。

可序列化,但不會衝突序列化的血清膽鹼酯酶獨樂是

T1 : R(A)  W(A) C 
T2 :  W(A) C 
T3 :     W(A) C 

這是不衝突序列化(通過優先圖),但是等效於串行化調度

T1 T2 T3 

因爲T3盲在兩個時間表寫入輸出。

相關問題