本發(fā)明屬于數(shù)據(jù)復(fù)制
技術(shù)領(lǐng)域:
:,尤其涉及一種基于Chord網(wǎng)絡(luò)模型的改進(jìn)數(shù)據(jù)復(fù)制方法。
背景技術(shù):
::在過(guò)去的幾年里,P2P網(wǎng)絡(luò)已經(jīng)成為關(guān)注的焦點(diǎn),已經(jīng)成為構(gòu)建大規(guī)模分布式應(yīng)用的范例。P2P網(wǎng)絡(luò)是一種分布式網(wǎng)絡(luò),打破了傳統(tǒng)的Client/Server(C/S)模式,網(wǎng)絡(luò)中每個(gè)節(jié)點(diǎn)地位都是對(duì)等的,沒(méi)有中心化的服務(wù)器,不存在系統(tǒng)瓶頸,每個(gè)節(jié)點(diǎn)既充當(dāng)客戶端又充當(dāng)服務(wù)器,因而具有很高的資源利用率。P2P網(wǎng)絡(luò)分為非結(jié)構(gòu)化和結(jié)構(gòu)化網(wǎng)絡(luò)。以Gnutella為代表的非結(jié)構(gòu)化P2P網(wǎng)絡(luò),不存在目錄服務(wù)器,解決了單點(diǎn)瓶頸問(wèn)題,不存在單一故障點(diǎn)。然而其缺點(diǎn)也是明顯的:采用洪泛機(jī)制加重了網(wǎng)絡(luò)通信負(fù)擔(dān),其查詢機(jī)制在系統(tǒng)規(guī)模擴(kuò)大時(shí)不具有可擴(kuò)展性;另外,由于查詢報(bào)文被限制在特定的范圍內(nèi),所以并不能保證一定可以找到網(wǎng)絡(luò)中存在的目的數(shù)據(jù)。結(jié)構(gòu)化P2P網(wǎng)絡(luò)實(shí)現(xiàn)了節(jié)點(diǎn)之間在應(yīng)用層的互連,然而當(dāng)節(jié)點(diǎn)故障時(shí)如何保證數(shù)據(jù)的可用性成為必須要解決的問(wèn)題。在節(jié)點(diǎn)失效情況下保證數(shù)據(jù)可用性最基本和必要的手段,就是要對(duì)存儲(chǔ)的數(shù)據(jù)做一定的冗余。沒(méi)有冗余的數(shù)據(jù),節(jié)點(diǎn)故障后,其上的數(shù)據(jù)必然無(wú)法恢復(fù)。DHT網(wǎng)絡(luò)中,需要找到一個(gè)最合適的節(jié)點(diǎn)集合來(lái)存放冗余數(shù)據(jù),以達(dá)到最好的數(shù)據(jù)持久性。不適當(dāng)?shù)墓?jié)點(diǎn)組合將可能極大地消耗系統(tǒng)帶寬,甚至威脅系統(tǒng)中數(shù)據(jù)的持久性。例如,將數(shù)據(jù)的多個(gè)副本放在一個(gè)錯(cuò)誤相關(guān)的節(jié)點(diǎn)集合上,即節(jié)點(diǎn)集合中的節(jié)點(diǎn)可能由于區(qū)域斷網(wǎng)或斷電而同時(shí)離線。這樣即便有多個(gè)數(shù)據(jù)副本,也容易出現(xiàn)數(shù)據(jù)不可用的情況。為了更好地支持對(duì)P2P網(wǎng)絡(luò)的擴(kuò)展,更好地管理和維護(hù)在P2P網(wǎng)絡(luò)各個(gè)節(jié)點(diǎn)的信息,提供更高效和快速的查詢下載服務(wù),P2P網(wǎng)絡(luò)由無(wú)序向有序發(fā)展,由非結(jié)構(gòu)化向結(jié)構(gòu)化發(fā)展,許多研究小組在設(shè)計(jì)和擴(kuò)展的查找機(jī)制方面做了大量地研究工作,提出了Chord[Stoica,Ion,Morris,Robert,Karger,David,Kaashoek,M.Frans,&Balakrishnan,Hari.(2003).Chord:ascalablepeer-to-peerlookupserviceforinternetapplications.IEEE/ACMTransactionsonNetworking,11(4),149-160]、Pastry、CAN和Tapestry等用于構(gòu)建結(jié)構(gòu)化P2P的DHT。這些系統(tǒng)已經(jīng)被證明是在大規(guī)模分布式環(huán)境下[Lakshman,A.,&Malik,P.(2010).Cassandra:adecentralizedstructuredstoragesystem.AcmSigopsOperatingSystemsReview,44(2),35-40],數(shù)據(jù)存儲(chǔ)和檢索有效并且可擴(kuò)展的很好的方法。各種DHT的實(shí)現(xiàn)算法,不論是Chord,Pastry還是其它,其最直接的目標(biāo)就是以最快的速度來(lái)定位到期望的節(jié)點(diǎn),并不關(guān)心資源數(shù)據(jù)是如何冗余存儲(chǔ)的,只是從算法層面研究資源的取得。為了在P2P網(wǎng)絡(luò)中提高數(shù)據(jù)可用性,現(xiàn)有文獻(xiàn)的數(shù)據(jù)復(fù)制方法。在路徑復(fù)制方法中,副本被存儲(chǔ)在所有轉(zhuǎn)發(fā)該請(qǐng)求消息的節(jié)點(diǎn)中。這樣大大增加了節(jié)點(diǎn)的負(fù)載。DHash的實(shí)現(xiàn)應(yīng)用了葉子復(fù)制方法,將數(shù)據(jù)副本存儲(chǔ)在r/2個(gè)后繼節(jié)點(diǎn)和(r/2)-1個(gè)前繼節(jié)點(diǎn)中,其中r為復(fù)制因子,也就是網(wǎng)絡(luò)中數(shù)據(jù)的副本個(gè)數(shù)。協(xié)作文件系統(tǒng)的實(shí)現(xiàn)應(yīng)用了后繼復(fù)制方法,這種方法將數(shù)據(jù)副本存儲(chǔ)在根節(jié)點(diǎn)的r-1個(gè)后繼節(jié)點(diǎn)中。由于除非查找節(jié)點(diǎn)已經(jīng)有數(shù)據(jù)的副本,否則搜索請(qǐng)求通常被路由給根節(jié)點(diǎn),所以這種方法并沒(méi)有最小化搜索路徑。RelaxDHT[Legtchenko,S.,Monnet,S.,Sens,P.,&Muller,G.(2012).Churn-resilientreplicationstrategyforpeer-to-peerdistributedhash-tables.AcmTransactionsonAutonomous&AdaptiveSystems,7(2),439-447]提出了另外一種復(fù)制策略,比傳統(tǒng)DHT協(xié)議對(duì)高churn有更好的容忍性。它的目的在于當(dāng)DHT中仍然可以得到所需數(shù)目的副本時(shí),避免數(shù)據(jù)塊遷移,但是它將副本存儲(chǔ)在P2P網(wǎng)絡(luò)中根節(jié)點(diǎn)附近的節(jié)點(diǎn),節(jié)點(diǎn)區(qū)域性失效時(shí)會(huì)造成數(shù)據(jù)不可得。對(duì)稱復(fù)制方法,將r個(gè)標(biāo)識(shí)符與目標(biāo)聯(lián)系在一起。這種方法將由通過(guò)特定的方法計(jì)算得到的所有選擇為標(biāo)識(shí)符。這種方法的優(yōu)點(diǎn)是每個(gè)副本節(jié)點(diǎn)是知道不同副本標(biāo)識(shí)符的,因此可以維護(hù)它們。文獻(xiàn)[BenGuirat,F.,&Filali,I.(2013).Anefficientdatareplicationapproachforstructuredpeer-to-peersystems.InternationalConferenceonTelecommunications(pp.1-5)]提出了前繼復(fù)制方法,將數(shù)據(jù)副本存儲(chǔ)在根節(jié)點(diǎn)的r-1個(gè)前繼節(jié)點(diǎn)中,這種方法的優(yōu)點(diǎn)與后繼復(fù)制和葉子復(fù)制相比減少了搜索請(qǐng)求所經(jīng)過(guò)的跳數(shù)。前繼復(fù)制和RelaxDHT有同樣的問(wèn)題,將副本存儲(chǔ)在根節(jié)點(diǎn)附近的節(jié)點(diǎn),較多節(jié)點(diǎn)失效時(shí)會(huì)造成數(shù)據(jù)不可得。綜上所述,在P2P網(wǎng)絡(luò)中,由于節(jié)點(diǎn)的失效會(huì)導(dǎo)致節(jié)點(diǎn)上保存的信息資源丟失,從而大大影響到網(wǎng)絡(luò)的可靠性。先前提到的復(fù)制方法大多將副本存儲(chǔ)在根節(jié)點(diǎn)附近的節(jié)點(diǎn),在節(jié)點(diǎn)區(qū)域性故障時(shí),并不能有效保證數(shù)據(jù)可用性。而本發(fā)明將副本存儲(chǔ)在網(wǎng)絡(luò)中相對(duì)較為分散的節(jié)點(diǎn)可以提高數(shù)據(jù)可用性。技術(shù)實(shí)現(xiàn)要素:本發(fā)明的目的在于提供一種基于Chord網(wǎng)絡(luò)模型的改進(jìn)數(shù)據(jù)復(fù)制方法,旨在解決在P2P網(wǎng)絡(luò)中,由于節(jié)點(diǎn)的失效會(huì)導(dǎo)致節(jié)點(diǎn)上保存的信息資源丟失,從而大大影響到網(wǎng)絡(luò)的可靠性的問(wèn)題。本發(fā)明是這樣實(shí)現(xiàn)的,一種基于Chord網(wǎng)絡(luò)模型的改進(jìn)數(shù)據(jù)復(fù)制方法,所述基于Chord網(wǎng)絡(luò)模型的改進(jìn)數(shù)據(jù)復(fù)制方法將復(fù)制數(shù)據(jù)到持有節(jié)點(diǎn)的前繼節(jié)點(diǎn)中,從而減少定位被請(qǐng)求數(shù)據(jù)的跳數(shù)。在該方法中,數(shù)據(jù)被復(fù)制到Chord覆蓋網(wǎng)(rid-2k-1)%2m,(k=1,2...r)的節(jié)點(diǎn)中,其中rid為根節(jié)點(diǎn)id,k為副本數(shù)目。這樣,副本節(jié)點(diǎn)較為分散,但也有規(guī)律可尋,當(dāng)局部副本節(jié)點(diǎn)故障時(shí),其它部分依然有數(shù)據(jù)可得,增加了數(shù)據(jù)可用性。算法1描述了本文提出的數(shù)據(jù)復(fù)制機(jī)制。每個(gè)節(jié)點(diǎn)維護(hù)r-1個(gè)通過(guò)計(jì)算得出的副本節(jié)點(diǎn),replicateList。根節(jié)點(diǎn)n將數(shù)據(jù)復(fù)制到每個(gè)屬于replicateList的節(jié)點(diǎn)中。復(fù)制程序通過(guò)旨在更新副本key值的updateReplicas過(guò)程實(shí)現(xiàn)。為了更好地理解我們的方法,不失一般性,我們以key2的復(fù)制為例來(lái)進(jìn)一步闡述,如圖3所示。假設(shè)節(jié)點(diǎn)2為根節(jié)點(diǎn),當(dāng)m=4,rid=2,k=4時(shí),副本存儲(chǔ)在(2-21-1)%24、(2-22-1)%24、(2-23-1)%24、(2-24-1)%24,也就是標(biāo)識(shí)符為1、0、14和10的節(jié)點(diǎn)中。為了維護(hù)網(wǎng)絡(luò)結(jié)構(gòu)和key遷移,我們考慮到兩種更新策略,基礎(chǔ)更新和定期更新?;A(chǔ)更新策略在節(jié)點(diǎn)加入或離開(kāi)網(wǎng)絡(luò)時(shí)啟用。比如說(shuō)在節(jié)點(diǎn)n離開(kāi)時(shí),數(shù)據(jù)必須已經(jīng)從節(jié)點(diǎn)n成功遷移到它的前繼n。這個(gè)過(guò)程在改進(jìn)的復(fù)制方法中需要更新successorList。我們這里必須強(qiáng)調(diào)基礎(chǔ)更新算法根據(jù)復(fù)制方法自適應(yīng)的。比如說(shuō),在后繼復(fù)制方法中,當(dāng)節(jié)點(diǎn)n離開(kāi)網(wǎng)絡(luò)時(shí),n的后繼存儲(chǔ)n負(fù)責(zé)的key并更新replicatedKeys列表(見(jiàn)算法1)。定期更新機(jī)制被定期觸發(fā),目的在于在churn環(huán)境下保持復(fù)制因子。有兩個(gè)目標(biāo),第一,每個(gè)節(jié)點(diǎn)定期聯(lián)系所有它的副本節(jié)點(diǎn)來(lái)保證它們正確維護(hù)合適的副本(updateReplicas)。第二,每個(gè)節(jié)點(diǎn)保證自己只維護(hù)自己負(fù)責(zé)的key(verifReplicas)。因此,為了確保副本是最新的,它聯(lián)系所有副本key的后繼。本發(fā)明具有如下優(yōu)點(diǎn):1)本發(fā)明由于將副本存儲(chǔ)在根節(jié)點(diǎn)前繼相對(duì)分散的節(jié)點(diǎn),而Chord模型搜索算法是順時(shí)針進(jìn)行的,和現(xiàn)有前繼復(fù)制、葉子復(fù)制和后繼復(fù)制相比,有更少的平均查找跳數(shù),搜索效率更高。2)現(xiàn)有前繼復(fù)制、葉子復(fù)制和后繼復(fù)制都是將副本存儲(chǔ)在根節(jié)點(diǎn)附近的節(jié)點(diǎn)上,當(dāng)節(jié)點(diǎn)區(qū)域性故障時(shí),容易出現(xiàn)副本集體失效,不可得現(xiàn)象。而本發(fā)明將副本存儲(chǔ)在Chord模型相對(duì)分散的節(jié)點(diǎn)中,當(dāng)節(jié)點(diǎn)區(qū)域性故障時(shí),其它區(qū)域仍然有數(shù)據(jù)可得,提高了數(shù)據(jù)可用性。本發(fā)明針對(duì)Chord模型提出一種數(shù)據(jù)復(fù)制方法來(lái)保證數(shù)據(jù)可用性,并和現(xiàn)有主要數(shù)據(jù)復(fù)制方法進(jìn)行比較。仿真結(jié)果顯示,在節(jié)點(diǎn)區(qū)域性故障時(shí),本發(fā)明的方法勝于其它方法。本發(fā)明將數(shù)據(jù)副本存儲(chǔ)在根節(jié)點(diǎn)前繼相對(duì)分散的節(jié)點(diǎn)集合上,這樣即使某個(gè)區(qū)域節(jié)點(diǎn)全部故障,別的區(qū)域依然有數(shù)據(jù)副本可供使用。為了驗(yàn)證本發(fā)明的有用性,本發(fā)明對(duì)現(xiàn)有的前繼復(fù)制、后繼復(fù)制和本發(fā)明提出的方法進(jìn)行了大量的比較實(shí)驗(yàn)。我們假設(shè)系統(tǒng)初始由N個(gè)節(jié)點(diǎn)構(gòu)成。每次實(shí)驗(yàn)由初始載入階段開(kāi)始。隨后,在仿真階段節(jié)點(diǎn)可以在系統(tǒng)中進(jìn)行l(wèi)ookup查詢。每個(gè)key被復(fù)制r(復(fù)制因子)次。在仿真期間,8個(gè)區(qū)域中不同區(qū)域的節(jié)點(diǎn)會(huì)隨機(jī)故障。例如,在N=1024個(gè),故障區(qū)域數(shù)cn=2時(shí),會(huì)有1024×(2/8)=256個(gè)節(jié)點(diǎn)故障,然后統(tǒng)計(jì)三種方法的查找平均跳數(shù)和失敗率。實(shí)驗(yàn)結(jié)果顯示,當(dāng)副本數(shù)增加時(shí),平均跳數(shù)減少,這是因?yàn)椴檎页晒Φ母怕屎途W(wǎng)絡(luò)中可用的副本數(shù)是成正比的。我們提出的復(fù)制方法平均跳數(shù)比前繼復(fù)制高,比后繼復(fù)制低。而查找失敗率隨著失效區(qū)域數(shù)增加而增加,這是由于失效節(jié)點(diǎn)可能存儲(chǔ)所查找的數(shù)據(jù)。前繼復(fù)制和后繼復(fù)制方法查找失敗率曲線幾乎重合,而我們的方法失敗率遠(yuǎn)遠(yuǎn)低于這兩種方法??傊?,我們的方法在查找平均跳數(shù)并沒(méi)有另外兩種方法高很多的情況下,大大降低了在局部區(qū)域故障時(shí)查找數(shù)據(jù)的失敗率。就解決節(jié)點(diǎn)區(qū)域性故障而言,本發(fā)明的數(shù)據(jù)復(fù)制方法遠(yuǎn)遠(yuǎn)優(yōu)于其他方法,而且也有很好的查找效率(查找成功平均跳數(shù)和后繼復(fù)制比并沒(méi)有明顯差距)。附圖說(shuō)明圖1是本發(fā)明實(shí)施例提供的基于Chord網(wǎng)絡(luò)模型的改進(jìn)數(shù)據(jù)復(fù)制方法流程圖。圖2是本發(fā)明實(shí)施例提供的Chord模型示意圖。圖3是本發(fā)明實(shí)施例提供的基于Chord模型的數(shù)據(jù)復(fù)制示意圖。圖4是本發(fā)明實(shí)施例提供的后繼復(fù)制方法示意圖。圖5是本發(fā)明實(shí)施例提供的前繼復(fù)制方法示意圖。圖6是本發(fā)明實(shí)施例提供的改進(jìn)的復(fù)制方法示意圖。圖7是本發(fā)明實(shí)施例提供的不同副本個(gè)數(shù)下查找成功平均跳數(shù)示意圖。圖8是本發(fā)明實(shí)施例提供的不同個(gè)數(shù)區(qū)域節(jié)點(diǎn)失效的查找失敗率示意圖。具體實(shí)施方式為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合實(shí)施例,對(duì)本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說(shuō)明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。下面結(jié)合附圖對(duì)本發(fā)明的應(yīng)用原理作詳細(xì)的描述。1問(wèn)題描述本發(fā)明根據(jù)現(xiàn)有的數(shù)據(jù)復(fù)制方法,在Chord模型基礎(chǔ)上提出一種在局部節(jié)點(diǎn)故障時(shí)增加數(shù)據(jù)可用性的復(fù)制方法。1.1模型建立圖2是Chord模型的一個(gè)例子,有6個(gè)節(jié)點(diǎn),每個(gè)節(jié)點(diǎn)存儲(chǔ)一個(gè)資源集合。其中key被分配給在標(biāo)識(shí)符空間中標(biāo)識(shí)符等于或者大于的第一個(gè)節(jié)點(diǎn)。該節(jié)點(diǎn)稱為的后繼,由表示。例如,在圖2中,和都是節(jié)點(diǎn)3,則key1,2和3將會(huì)被存儲(chǔ)在該節(jié)點(diǎn)。Chord用一致性散列,以更高的概率保證peers間的負(fù)載均衡。為了完成一次操作,查詢沿著chord環(huán)轉(zhuǎn)發(fā),尋找fingertable中節(jié)點(diǎn)標(biāo)識(shí)符大于或等于的,最接近節(jié)點(diǎn)標(biāo)識(shí)符的節(jié)點(diǎn)。1.2數(shù)據(jù)復(fù)制方法為了利用Chord的查詢路由機(jī)制,復(fù)制數(shù)據(jù)到持有節(jié)點(diǎn)的前繼節(jié)點(diǎn)中,從而減少定位被請(qǐng)求數(shù)據(jù)的跳數(shù)。在本發(fā)明中,數(shù)據(jù)被復(fù)制到Chord覆蓋網(wǎng)的節(jié)點(diǎn)中,其中為根節(jié)點(diǎn)id,k為副本數(shù)目。這樣,副本節(jié)點(diǎn)較為分散,但也有規(guī)律可尋,當(dāng)局部副本節(jié)點(diǎn)故障時(shí),其它部分依然有數(shù)據(jù)可得,增加了數(shù)據(jù)可用性。如圖3所示,假設(shè)節(jié)點(diǎn)2為根節(jié)點(diǎn),當(dāng)m=4,rid=2,k=4時(shí),副本存儲(chǔ)在(2-21-1)%24、(2-22-1)%24、(2-23-1)%24、(2-24-1)%24,也就是標(biāo)識(shí)符為1、0、14和10的節(jié)點(diǎn)中。1.3已有方法的故障情形分析與改進(jìn)研究本發(fā)明根據(jù)標(biāo)識(shí)符順序,將Chord模型中的節(jié)點(diǎn)分為8個(gè)區(qū)域,假設(shè)故障區(qū)域數(shù)。1.3.1后繼復(fù)制方法如圖4所示,假設(shè)節(jié)點(diǎn)11執(zhí)行l(wèi)ookup(2)的請(qǐng)求,。節(jié)點(diǎn)11由在Fingertable中尋找2的前繼開(kāi)始,也就是節(jié)點(diǎn)15。根據(jù)Chord路由算法,在節(jié)點(diǎn)15執(zhí)行相同的查找過(guò)程,在節(jié)點(diǎn)15的Fingertable中查找2的前繼,也就是節(jié)點(diǎn)1。節(jié)點(diǎn)1再轉(zhuǎn)發(fā)請(qǐng)求給節(jié)點(diǎn)2,也就是存儲(chǔ)被請(qǐng)求資源的節(jié)點(diǎn)。節(jié)點(diǎn)11發(fā)起的lookup(2)通過(guò)3跳到達(dá)successor(2)。故障區(qū)域是隨機(jī)挑選的,假設(shè)剛好是區(qū)域1、區(qū)域2和區(qū)域3,則存儲(chǔ)資源2的節(jié)點(diǎn)全部故障,在該網(wǎng)絡(luò)中資源2是不可用的。1.3.2前繼復(fù)制方法如圖5所示,該方法和后繼復(fù)制相比減少了2跳。當(dāng)有3個(gè)區(qū)域故障時(shí),假設(shè)剛好是區(qū)域7、區(qū)域8和區(qū)域1,則存儲(chǔ)資源2的節(jié)點(diǎn)全部故障,在該網(wǎng)絡(luò)中資源2不可用。1.3.3改進(jìn)的數(shù)據(jù)復(fù)制方法如圖6所示,本發(fā)明和后繼復(fù)制相比減少了1跳,和前繼復(fù)制相比增加了1跳。前兩種復(fù)制方法副本存儲(chǔ)比較集中,在同樣數(shù)目副本的情況下,該方法副本分散在4個(gè)區(qū)域內(nèi),當(dāng)隨便3個(gè)區(qū)域發(fā)生故障時(shí)依然有數(shù)據(jù)可得。下面結(jié)合仿真對(duì)本發(fā)明的應(yīng)用效果作詳細(xì)的描述。1仿真結(jié)果與算法比較1.1仿真結(jié)果仿真基于omnet++,對(duì)不同副本數(shù)和故障區(qū)域數(shù)進(jìn)行仿真,比較前繼復(fù)制、后繼復(fù)制和本發(fā)明方法查找平均跳數(shù)和查找失敗率。平均跳數(shù)定義為:其中為第i條查找成功的消息經(jīng)過(guò)的跳數(shù),為查找成功的消息數(shù)。查找失敗率定義為:仿真過(guò)程中使用的參數(shù)如下表所示:表1仿真參數(shù)設(shè)置參數(shù)取值標(biāo)識(shí)符長(zhǎng)度(m)10節(jié)點(diǎn)(N)1024副本數(shù)(r)4、6、8、10、12、14、16查詢消息數(shù)(L)102400故障區(qū)域數(shù)()1、2、3、4、51.2算法比較網(wǎng)絡(luò)模型基于Chord模型,是由麻省理工學(xué)院于2001年提出來(lái)的,之后被廣泛采用,成為P2P的四大算法之一。本發(fā)明將模型中所有節(jié)點(diǎn)按標(biāo)識(shí)符序號(hào)分為8個(gè)區(qū)域,統(tǒng)計(jì)在不同副本數(shù)下三種復(fù)制方法查找的平均跳數(shù)和不同故障區(qū)域數(shù)狀況下查找失敗率。本發(fā)明解決的問(wèn)題是在節(jié)點(diǎn)區(qū)域性故障時(shí),怎樣存儲(chǔ)副本可以提高數(shù)據(jù)可用性。前繼復(fù)制和后繼復(fù)制并沒(méi)有考慮到這個(gè)問(wèn)題。下面從查找成功平均跳數(shù)和查找失敗率兩方面比較本發(fā)明的方法以及前繼復(fù)制和后繼復(fù)制算法。1.2.1平均跳數(shù)圖7為cn=3時(shí),不同副本個(gè)數(shù)下查找平均跳數(shù)。和預(yù)想的一樣,當(dāng)副本數(shù)增加時(shí),平均跳數(shù)減少,這是因?yàn)椴檎页晒Φ母怕屎途W(wǎng)絡(luò)中可用的副本數(shù)是成正比的。本發(fā)明提出的復(fù)制方法平均跳數(shù)比前繼復(fù)制高,比后繼復(fù)制低。1.2.2失敗率圖8為r=10時(shí),不同個(gè)數(shù)區(qū)域節(jié)點(diǎn)失效的查找失敗率。如圖所示,查找失敗率隨著失效區(qū)域數(shù)增加而增加,這是由于失效節(jié)點(diǎn)可能存儲(chǔ)所查找的數(shù)據(jù)。前繼復(fù)制和后繼復(fù)制方法查找失敗率曲線幾乎重合,而本發(fā)明的方法失敗率遠(yuǎn)遠(yuǎn)低于這兩種方法??傊景l(fā)明的方法在查找平均跳數(shù)并沒(méi)有另外兩種方法高很多的情況下,大大降低了在局部區(qū)域故障時(shí)查找數(shù)據(jù)的失敗率。本發(fā)明在Chord模型基礎(chǔ)上提出一種在局部節(jié)點(diǎn)故障時(shí)增加數(shù)據(jù)可用性的復(fù)制方法。為了應(yīng)對(duì)節(jié)點(diǎn)區(qū)域性故障,本發(fā)明將數(shù)據(jù)副本存儲(chǔ)在根節(jié)點(diǎn)前繼相對(duì)分散的節(jié)點(diǎn)集合上,這樣即使某個(gè)區(qū)域節(jié)點(diǎn)全部故障,別的區(qū)域依然有數(shù)據(jù)副本可供使用。為了驗(yàn)證本發(fā)明的有用性,本發(fā)明對(duì)現(xiàn)有的前繼復(fù)制、后繼復(fù)制和本發(fā)明提出的方法進(jìn)行了大量的比較實(shí)驗(yàn)。以上對(duì)于平均查找效率和失敗率統(tǒng)計(jì)的實(shí)驗(yàn)結(jié)果顯示,就解決節(jié)點(diǎn)區(qū)域性故障而言,本發(fā)明的數(shù)據(jù)復(fù)制方法遠(yuǎn)遠(yuǎn)優(yōu)于其他方法,而且也有很好的查找效率(查找成功平均跳數(shù)和后繼復(fù)制比并沒(méi)有明顯差距)。以上所述僅為本發(fā)明的較佳實(shí)施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換和改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。當(dāng)前第1頁(yè)1 2 3 當(dāng)前第1頁(yè)1 2 3