日本免费全黄少妇一区二区三区-高清无码一区二区三区四区-欧美中文字幕日韩在线观看-国产福利诱惑在线网站-国产中文字幕一区在线-亚洲欧美精品日韩一区-久久国产精品国产精品国产-国产精久久久久久一区二区三区-欧美亚洲国产精品久久久久

雙重?cái)?shù)據(jù)庫的維護(hù)( 四 )


DBMPA不能分辨是處理器DBMPB沒有聽到刪除的消息 , 還是聽到了但已經(jīng)收到了一個(gè)
重新創(chuàng)建的請求 , 這個(gè)請求處理器DBMPA并不知道 。為了使得處理器DBMPA能解決這
種情況 , 我們在所有的入口加入另一個(gè)時(shí)間戳:入口創(chuàng)建的時(shí)間戳 。因而在上面的例子中 ,
處理器DBMPA能夠比較賦值和被刪除實(shí)體的創(chuàng)建時(shí)間戳 。最遲的創(chuàng)建時(shí)間戳被保留 。這
樣 , 無論什么時(shí)候一個(gè)帶有過時(shí)的時(shí)間戳的修改操作都將被忽略 。
現(xiàn)在我們用一個(gè)五元組來描述入口和修改操作:
E::=(S,V,F,CT,T)
S是選擇項(xiàng)
V是相關(guān)的值
F是刪除/未刪除的標(biāo)志
CT是創(chuàng)建時(shí)間戳
T是最近一次修改的時(shí)間戳
注重一個(gè)修改操作的元素F,CT,T的值唯一的標(biāo)示修改操作的類型 。因而只是成為一個(gè)
選擇項(xiàng)的新的入口的五元組 , 而不是修改的類型 , 需要通信:
F未刪除 , CT=T=>創(chuàng)建
F未刪除 , CT賦值
F刪除=>刪除
上面描述的機(jī)制處理分布式數(shù)據(jù)庫的所有的操作 , 保證所有拷貝的一致性 。一個(gè)處理器
DBMP只要收到處理器DBMP的啟動修改的請求 , 該處理器DBMP對數(shù)據(jù)庫的修改將生效 。
這個(gè)機(jī)制的低效在于被刪除的入口不從數(shù)據(jù)庫中直接移除 。下面將討論答應(yīng)被刪除的入
口“垃圾收集“的方法 。
被刪除入口的移除
這個(gè)問題的基本限制是一個(gè)處理器DBMP直到?jīng)]有收到任何相同的選擇項(xiàng)(S)的賦值或
過時(shí)的創(chuàng)建時(shí)間戳(CT)的賦值才刪除入口 。假如操作失敗 , 則無法區(qū)分同一個(gè)選擇項(xiàng)S
的過時(shí)的賦值和新創(chuàng)建入口的賦值 。為了能夠做到這一點(diǎn) , 每個(gè)處理器DBMP必須知道是
否所有其它的處理器DBMP已經(jīng)知道刪除入口的消息 。為了實(shí)現(xiàn)它 , 每個(gè)處理器DBMP在
聽到刪除消息的時(shí)候能夠通知其它的處理器DBMP , 假如這些通知按照修改操作的正常順
序傳送的話 , 那么每個(gè)處理器DBMP收到一個(gè)通知時(shí)能夠確信發(fā)送方處理器DBMP已經(jīng)傳
送了賦值給被刪除的入口 , 標(biāo)記它為刪除 , 并且將不再產(chǎn)生任何新的賦值 。利用這種方式跟
蹤和交換每個(gè)獨(dú)立的被刪除的入口要比一般的要求具體復(fù)雜得多 。
考慮到簡單性 , 讓每個(gè)處理器DBMP按先后次序傳遞它的所有修改 。我們使得所有的
處理器DBMP保存一張由從其它的每個(gè)處理器DBMP接收到的上次修改的時(shí)間戳組成的
表 。任何一個(gè)處理器DBMP , 例如處理器DBMPA保證已經(jīng)收到了所有的由另外一個(gè)處理
器DBMP例如處理器DBMPB引起的修改 , 這張表在處理器DBMPA中的拷貝 , 擁有早于
或等于處理器DBMPB的入口的時(shí)間戳 。假如這張表在處理器DBMP之間交換 , 那么所有
的處理器DBMP將有第二張N*N(N=處理器DBMP的數(shù)量)的表 , 入口(I,J)將是處理器
DBMPI從處理器DBMPJ接收到的上次修改的時(shí)間戳 。因而當(dāng)在處理器DBMPA的這張表
的第K列的所有入口晚于或等于被刪除入口的時(shí)間戳?xí)r , 處理器DBMPA能夠移除一個(gè)被
處理器DBMPK所引起刪除的入口 。當(dāng)一個(gè)處理器DBMP收到一個(gè)刪除修改 , 除了進(jìn)行操
作 , 確認(rèn)收到了 , 還應(yīng)該發(fā)送它的最遲時(shí)間戳的表給所有其它處理器DBMP , 這是通過一
個(gè)按修改操作信息的正常順序排列的時(shí)間戳信息來發(fā)送的 。
我們可以通過減少交換信息的數(shù)量和表的尺寸這個(gè)方法來進(jìn)行的改進(jìn) , 使得DBMP只是
交換第一張表(由從其它的處理器DBMP接收到的上次修改的時(shí)間戳構(gòu)成)中最過時(shí)的入
口 。這些將被保存在1*N的表中 , 替換N*N的表 。一個(gè)DBMP假如正在接收時(shí)間戳等于或

推薦閱讀