2018-12-05
閱讀量:
1977
怎么理解沖突序列化?
串行調(diào)度具有較少的資源利用率和較低的吞吐量。為了改進(jìn)它,兩個更多的事務(wù)同時運行。但是事務(wù)的并發(fā)性可能導(dǎo)致數(shù)據(jù)庫的不一致。為避免這種情況,我們需要檢查這些并發(fā)計劃是否可序列化。
沖突可序列化:如果可以通過交換非沖突操作將計劃轉(zhuǎn)換為串行計劃,則計劃稱為沖突可序列化。
沖突操作:如果所有條件滿足,則稱兩個操作沖突:
- 它們屬于不同的交易
- 它們在相同的數(shù)據(jù)項上運行
- 至少其中一個是寫操作
示例: -
- 沖突操作對(R 1(A),W 2(A))因為它們屬于同一數(shù)據(jù)項A上的兩個不同事務(wù),其中一個是寫操作。
- 類似地,(W 1(A),W 2(A))和(W 1(A),R 2(A))對也是矛盾的。
- 另一方面,(R 1(A),W 2(B))對是非沖突的,因為它們對不同的數(shù)據(jù)項進(jìn)行操作。
- 類似地,((W 1(A),W 2(B))對是非沖突的。
- 請考慮以下時間表:
如果Oi和Oj是事務(wù)中的兩個操作并且Oi<Oj(Oi在Oj之前執(zhí)行),則同樣的順序也將在時間表中跟隨。使用此屬性,我們可以獲得計劃S1的兩個事務(wù):
可能的串行調(diào)度是:T1-> T2或T2-> T1
- >? 在S1中交換非沖突操作 s R 2(A)和R 1(B),時間表變?yōu)椋?/p>






評論(0)


暫無數(shù)據(jù)
推薦帖子
0條評論
0條評論
0條評論
0條評論