看板 Grad-ProbAsk 關於我們 聯絡資訊
我查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)