我查wiki
http://en.wikipedia.org/wiki/Serializability
因為transaction都是同時進行
它定義是說若是執行的結果跟執行時間不重疊一樣的話
就是serilable,
順序不會影響執行結果
我理解是這樣的
不知道是不是要考這東西
我只有選A
: 雖然題目沒講 但是依照96 97 都有出
: 所以就假設是考TimeStamp-Based protocol 吧XDD
: ( 恐龍本 Synchronization 倒數幾節)
: 以下是我的答案QQ
: AC
: 原則是 每個operation需成功 滿足
: 若是Transaction 1 寫入變數A
: 則 TS(1) >= W-Timestamp(A) 且 TS(1) >= R-timestamp(A)
: 否則 rejeect
: 若是Transaction 1 讀取變數A
: 則 TS(1) >= W-Timestamp(A)
: 否則是reject
: 若所有opeations皆成功 就是可序列化
: 假設左到右有時間軸 ( 一單位時間, 假設1開始 )
: 假設每個交易的Timestamp是在第一個operation之時間
: 即 TS(1) = 1 , TS(2) = 2
: 變數的timestamp皆假設0開始
: (A)
: Time 1 2 3 4
: W-timestamp(A) 0 0 1 1
: R-timestamp(A) 1 1 1 1
: W-timestamp(B) 0 0 0 2
: R-timestamp(B) 0 2 2 2
: 所以serializable
: (B)
: Time 1 2 3 4
: W-timestamp(A) 0 2
: R-timestamp(A) 1 1
: W-timestamp(B) 0 0
: R-timestamp(B) 0 0
: time 3 因為TS(1) = 1 < 2 = W-timestamp(A) 所以reject
: 所以非serializable
: (C)
: Time 1 2 3 4
: W-timestamp(A) 0 0 0 2
: R-timestamp(A) 1 1 1 1
: W-timestamp(B) 0 2 0 0
: R-timestamp(B) 0 0 2 2
: 所以serializable
: (D)
: Time 1 2 3 4
: W-timestamp(A) 0 0
: R-timestamp(A) 1 1
: W-timestamp(B) 0 0
: R-timestamp(B) 0 2
: 因為 time 3 時 TS(1) = 1 < 2 = R-Timestamp(B) 所以拒絕
: 所以非Serializable
: (E)
: Time 1 2 3 4
: W-timestamp(A) 1 1 1
: R-timestamp(A) 0 2 2
: W-timestamp(B) 0 0 2
: R-timestamp(B) 0 0 0
: 因為 time 4 時 TS(1) = 1 < 2 = W-Timestamp(B) 所以拒絕
: 所以非Serializable
: 我只有對過市面上的解答 可是答案不一樣= =
: 所以放上來討論一下..
: 詳細的protocol要查一下書
: 我不會太會打詳細的教學...非常抱歉QQ
: 希望有做這題的大大們幫忙討論一下 感謝~~~
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 111.184.33.141
※ 編輯: KiroKu 來自: 111.184.33.141 (02/16 03:14)
※ 編輯: KiroKu 來自: 111.184.33.141 (02/16 03:20)