專利名稱::基于dht的p2p系統(tǒng)中獲得高可用數(shù)據(jù)冗余的方法
技術(shù)領(lǐng)域:
:本發(fā)明涉及一種基于DHT的P2P系統(tǒng)中高可用數(shù)據(jù)冗余機制,這種數(shù)據(jù)冗余策略在各種網(wǎng)絡(luò)環(huán)境中均較傳統(tǒng)冗余策略更節(jié)省網(wǎng)絡(luò)帶寬,并且冗余度適中(不高于9.4)。當(dāng)節(jié)點平均可用性低于0.7和文件請求率相對于節(jié)點擾動頻率較低時,該策略的優(yōu)越性尤為突出?;旌鲜讲呗圆粌H在動態(tài)性低的網(wǎng)絡(luò)環(huán)境中表現(xiàn)良好,而且在高度動態(tài)的網(wǎng)絡(luò)中性能卓越。二
背景技術(shù):
:隨著互聯(lián)網(wǎng)和網(wǎng)絡(luò)計算技術(shù)的迅猛發(fā)展,一類基于分布式哈希表(DHT)的對等計算系統(tǒng)應(yīng)運而生。DHT是一種分布式存儲方法。在不需要服務(wù)器的情況下,每個客戶端負(fù)責(zé)一個小范圍的路由,并負(fù)責(zé)存儲一小部分?jǐn)?shù)據(jù),從而實現(xiàn)整個DHT網(wǎng)絡(luò)的尋址和存儲。DHT提供了一種確定性的對象定位服務(wù),并已有諸多應(yīng)用。在不能保證節(jié)點100%可用的情況下,要實現(xiàn)數(shù)據(jù)文件的高可用性,則需要某種數(shù)據(jù)冗余策略。目前g用于基于DHT的P2P系統(tǒng)的數(shù)據(jù)冗余策略主要有兩種復(fù)制(replication)和分片冗余(erasurecoding)。在以往的應(yīng)用中,復(fù)制和奇偶校驗冗余機制(parityscheme)(如RAID)是兩種常用的實現(xiàn)數(shù)據(jù)高可用性的冗余機制。前者會引入極高的冗余度;后者適應(yīng)環(huán)境動態(tài)性的能力較差,在高動態(tài)性的網(wǎng)絡(luò)環(huán)境中難以保證數(shù)據(jù)的可用性。分片冗余克服了復(fù)制冗余度高的缺點。它將數(shù)據(jù)對象分割成m片,再編碼成《片(n〉w)。我們將r-"/m定義為編碼冗余度。以冗余度r編碼意味著編碼后占用的存儲空間是原始數(shù)據(jù)的r倍。分片冗余最重要的特性是只要獲得任意m個不同的分片就能重構(gòu)原文件,而且這m個分片的體積之和與原文件大致相等。例如,當(dāng)編碼冗余度為^=4,原數(shù)據(jù)分割為m-M片,則編碼后為"=^片,所需存儲空間增大到原先的4倍。復(fù)制和RAID可以看作是分片冗余的特例。冗余度為4的復(fù)制系統(tǒng)相當(dāng)于(m=7,w=4)的分片冗余;1、4和5級的RAID用分片冗余分別表示為(w-,"=2),(w=《w=5),(w=《??=5;)0三
發(fā)明內(nèi)容本發(fā)明目的是提出了一種混合式的數(shù)據(jù)冗余策略,一種基于DHT的P2P系統(tǒng)中獲得高可用數(shù)據(jù)冗余的方法,它既像復(fù)制策略那樣共享用戶下載的文件以供后續(xù)的下載,又利用分片冗余維持文件的可用性。這種混合式的數(shù)據(jù)冗余策略在各種網(wǎng)絡(luò)環(huán)境中均能較傳統(tǒng)冗余策略更節(jié)省網(wǎng)絡(luò)帶寬,并且冗余度適中。為了實現(xiàn)上述目的,本發(fā)明的技術(shù)方案是基于DHT的P2P系統(tǒng)中獲得高可用數(shù)據(jù)冗余的方法,其特征是采用混合式的獲得數(shù)據(jù)冗余的方法,該方法包括以下步驟:1、對P2P系統(tǒng)中原文件進(jìn)行分片冗余ErasureCoding編碼;2、將編碼得到的分片分配到P2P系統(tǒng)的相應(yīng)節(jié)點儲存;3、用戶提出下載要求并進(jìn)行所有節(jié)點査詢;4、用戶從有用文件的節(jié)點下載文件并將部分文件保存作為副本;5、重復(fù)步驟3直到服務(wù)停止;6、結(jié)束。觀察目前的P2P文件共享系統(tǒng),一方面,發(fā)現(xiàn)熱點文件的下載次數(shù)相當(dāng)多,無需維護(hù),其可用性自動保持在較高水平,這說明了混合式的數(shù)據(jù)冗余策略的可行性。另一方面,從計算機硬件的發(fā)展趨勢看,存儲器的發(fā)展速度大大高于帶寬的發(fā)展速度,相對于存儲資源來說,帶寬資源變得越來越貧乏,表明了研究更加有效的節(jié)省帶寬的數(shù)據(jù)冗余策略的必要性。本發(fā)明的有益效果本發(fā)明與現(xiàn)有技術(shù)相比,其顯著優(yōu)點是,在各種網(wǎng)絡(luò)環(huán)境中均較傳統(tǒng)冗余策略更節(jié)省網(wǎng)絡(luò)帶寬,并且冗余度適中(不高于9.4)。當(dāng)節(jié)點平均可用性低于0.7和文件請求率相對于節(jié)點擾動頻率較低時,該策略的優(yōu)越性尤為突出。混合式方法或策略不僅在動態(tài)性低的網(wǎng)絡(luò)環(huán)境中表現(xiàn)良好,而且在高度動態(tài)的網(wǎng)絡(luò)中性能卓越。它既像復(fù)制策略那樣共享用戶下載的文件以供后續(xù)的下載,又利用分片冗余維持文件的可用性。這種混合式的數(shù)據(jù)冗余策略在各種網(wǎng)絡(luò)環(huán)境中均能較傳統(tǒng)冗余策略更節(jié)省網(wǎng)絡(luò)帶寬,并且冗余度適中。四,圖1是混合式的數(shù)據(jù)冗余策略的執(zhí)行流程;圖2是文件可用性為0.999時,復(fù)制策略、分片冗余策略和混合式策略三種策略所需冗余度理論值隨節(jié)點平均可用性變化的情況。圖3是文件可用性為0.999時,復(fù)制策略、分片冗余策略和混合式策略的冗余度隨節(jié)點平均可用性變化的情況。圖4是文件可用性為0.999時,復(fù)制策略、分片冗余策略和混合式策略的維護(hù)帶寬占用率隨節(jié)點平均可用性變化的情況。圖5是文件可用性為0.999(圖5a),節(jié)點平均可用性為0.807時(圖5b),復(fù)制策略、分片冗余策略和混合式策略的維護(hù)帶寬占用率和維護(hù)中文件傳輸數(shù)量隨節(jié)點生命期內(nèi)平均文件請求率變化的情況。五具體實施例方式混合式策略既像復(fù)制策略那樣共享用戶下載的文件以供后續(xù)的下載,又利用分片冗余維持文件的可用性。混合式策略自動將下載的文件視為共享文件,以供隨后的下載;當(dāng)修復(fù)某文件可用性水平時,指定任何一個儲存該文件完整副本的節(jié)點生成并分發(fā)新分片即可。一方面,混合式策略像復(fù)制策略那樣共享用戶下載的文件以供后續(xù)的下載,節(jié)省了網(wǎng)絡(luò)帶寬;另一方面,增加相同的可用性,分片冗余策略產(chǎn)生的新數(shù)據(jù)的體積比復(fù)制策略少,即分片冗余策略需要傳送的數(shù)據(jù)較少,混合式策略利用這一特性進(jìn)一步節(jié)省了網(wǎng)絡(luò)帶寬。使用混合式策略時的文件可用性和冗余度可由如下方法推出。首先,我們假設(shè)同一節(jié)點不存放同一文件的副本和分片,可以存放多個不同文件的副本和分片,并且系統(tǒng)中不存在重復(fù)的分片。文件的可用性o可根據(jù)概率計算出來,即至少獲得一個完整的副本或n個分片中的任意m個的概率?;蛘咄ㄟ^7減去所有副本都無法得到且沒有足夠的分片重構(gòu)原文件(可用分片數(shù)不足m個)的概率<formula>seeoriginaldocumentpage4</formula>(1)這里,h為完整副本的個數(shù)?;旌鲜讲呗缘娜哂喽瓤捎莎B加復(fù)制和分片冗余的兀余度得到<formula>seeoriginaldocumentpage4</formula>(2)這里,δa(h)是關(guān)于h的函數(shù),其值和分片冗余需要達(dá)到的可用性水平a'的對應(yīng)關(guān)系如表1所示。<table><row><column>a</column><column>δa</column></row><table><table><row><column>0.800</column><column>0.84</column></row><row><column>0.900</column><column>1.28</column></row><row><column>0.990</column><column>2.48</column></row><row><column>0.995</column><column>2.81</column></row><row><column>0.998</column><column>2.88</column></row><row><column>0.999</column><column>3.10</column></row><table>表1.文件可用性和正態(tài)分布標(biāo)準(zhǔn)差對照表a'可由(1)式推出:<formula>seeoriginaldocumentpage5</formula>從(2)式看出冗余度與w和完整副本的個數(shù)/z有關(guān),而與《無關(guān)。給定/z,當(dāng)m增大時,冗余度降低,但系統(tǒng)的復(fù)雜度增加、下載延遲增大。分片冗余策略的兩個新分片再生策略依然適用于混合式策略,并且第二條策略在混合式策略中優(yōu)越性更加顯圖2展示了復(fù)制策略、分片冗余策略和混合式策略為達(dá)到文件可用性為0.999所需冗余度理論值隨節(jié)點平均可用性變化的情況?;旌鲜讲呗缘娜哂喽惹€有兩個因素決定節(jié)點平均可用性p和完整副本的個數(shù)A。對任意給定/z值,都有一條與之相對應(yīng)的曲線。由圖可見,當(dāng)節(jié)點平均可用性一定時,分片冗余策略的冗余度最??;除了當(dāng)節(jié)點平均可用性極高時,混合式策略的冗余度略高于分片冗余策略,但大大低于復(fù)制策略。步驟2至4的具體步驟是(2、將編碼得到的分片分配到P2P系統(tǒng)的相應(yīng)節(jié)點儲存;3、用戶提出下載要求并進(jìn)行所有節(jié)點査詢;4、用戶從有用文件的節(jié)點下載文件并將部分文件保存作為副本;)每個節(jié)點周期性地將其儲存的文件和分片的標(biāo)識符注冊到M個分散且相互獨立的索引節(jié)點。節(jié)點通過兩種索引査找文件文件副本索引和文件分片索引。當(dāng)某節(jié)點請求文件rf時,它首先隨機查詢一個或多個^的索引節(jié)點。如果査詢過的索引節(jié)點未能提供足夠的文件副本和分片位置信息,則繼續(xù)隨機査詢其他索引節(jié)點。如果所有索引節(jié)點都不能提供足夠的文件副本和分片位置信息,該節(jié)點將等待一段時間(例如10ms),后重做查詢操作,直到査詢超時。若找到完整文件副本,則下載該副本;否則,節(jié)點轉(zhuǎn)而下載足夠的分片并重構(gòu)原文件。用戶下載的文件自動作為共享文件以供后續(xù)的下載。各索引節(jié)點周期性地維護(hù)在其上注冊的文件和分片的可用性。若文件rf的可用性低于要求水平,則指定某一個儲存該文件完整副本的節(jié)點生成并分發(fā)新分片到隨機選擇的節(jié)點。若當(dāng)前系統(tǒng)中沒有完整的副本,首先等待一段時間(例如10ms),若有節(jié)點下載分片并重構(gòu)原文件,則指定該節(jié)點修復(fù)丟失的冗余度;否則,索引節(jié)點需要自己下載分片,重構(gòu)原文件,再生成足夠的新分片。實驗表明幾乎所有文件都至少有一個副本存在于系統(tǒng)中,所以混合式策略沒有必要像分片冗余策略那樣指定主節(jié)點保存文件的永久副本。這樣,混合式策略節(jié)省了維護(hù)主節(jié)點所需的網(wǎng)絡(luò)帶寬。我們在p2psim上實現(xiàn)了上述三種數(shù)據(jù)冗余策略。模擬的網(wǎng)絡(luò)環(huán)境包含1024個節(jié)點。各節(jié)點交替離開和重新加入網(wǎng)絡(luò),相鄰事件的時間間隔呈指數(shù)分布。當(dāng)節(jié)點失效或離開,其上的所有文件、分片和索引均被丟棄。每次有節(jié)點加入網(wǎng)絡(luò),都會使用不同的IP和DHT標(biāo)識符。對文件的訪問請求按照Zipf-like分布,將文件按訪問頻率從高到低排列,第f個文件的訪問頻率和l/P成正比,這里設(shè)置a為0.74。我們設(shè)計了兩套實驗變化節(jié)點平均可用性和變化用戶請求頻率。在變化節(jié)點平均可用性實驗中,節(jié)點平均可用性變化范圍為30%到90%,其它條件不變。在變化用戶請求頻率實驗中,節(jié)點生命期內(nèi)平均文件請求數(shù)變化范圍為2到20,其它條件不變。每組實驗運行模擬器時間6小時,只收集后半段模擬時間的數(shù)據(jù)。每組實驗重復(fù)5次,結(jié)果取平均值。設(shè)置111=7,這是CFS中使用的重構(gòu)原文件所需分片數(shù)。設(shè)置文件可用性為0.999,這是目前大多數(shù)網(wǎng)絡(luò)服務(wù)所能達(dá)到的可用性。圖3展示了復(fù)制策略、分片冗余策略和混合式策略三種冗余策略在達(dá)到文件可用性0.999的情況下,冗余度隨節(jié)點平均可用性變化的曲線。圖3中分片冗余策略的冗余度曲線與圖2中的大體一致。但圖3中復(fù)制策略的冗余度曲線卻與圖2中的相差甚遠(yuǎn),尤其是當(dāng)節(jié)點平均可用性大于0.6時。這是因為分片冗余策略不共享用戶下載的文件,僅在緩存中保留一個分片,受用戶下載行為的影響小;但復(fù)制策略完全共享用戶下載的文件,網(wǎng)絡(luò)中文件副本的數(shù)量隨用戶的下載而增多。同時,節(jié)點平均可用性越高,系統(tǒng)中文件副本的丟失率就越低。過多的副本殘留在系統(tǒng)中,造成了復(fù)制策略的冗余度沒有隨節(jié)點平均可用性提高而明顯下降。由圖3可見,雖然節(jié)點平均可用性由0.3變化到0.9,但混合式策略的冗余度變化并不明顯,徘徊在8.5到9.4之間。當(dāng)節(jié)點的擾動強烈時,即節(jié)點平均可用性低時,系統(tǒng)中的文件副本較少,混合式策略主要利用分片冗余來節(jié)省存儲空間。當(dāng)節(jié)點平均可用性高時,混合式策略的冗余度不降且升,其原因與復(fù)制策略相似過多的副本殘留在系統(tǒng)中。這些多余的冗余文件或分片不會對系統(tǒng)的穩(wěn)定性造成危害,隨著時間的推移,多余的文件和分片會被節(jié)點逐漸置換出緩存。由圖4可見,當(dāng)節(jié)點平均可用性高于0.47時,復(fù)制策略比分片冗余策略更節(jié)省維護(hù)帶寬;當(dāng)節(jié)點平均可用性低于0.47時,分片冗余策略消耗的維護(hù)帶寬較復(fù)制策略少。復(fù)制策略通過共享用戶下載的文件來減輕維護(hù)操作的負(fù)擔(dān)。當(dāng)節(jié)點平均可用性較高時,復(fù)制策略在節(jié)約維護(hù)帶寬方面非常有效,原因在于,依賴于用戶的下載行為大部分文件的可用性被自動維持在目標(biāo)水平。但在高度動態(tài)的網(wǎng)絡(luò)環(huán)境中,節(jié)點頻繁地加入和離開,使用戶的下載的速度無法彌補文件副本和分片的丟失。在這種情況下,分片冗余策略的優(yōu)勢就顯現(xiàn)出來消耗同樣的網(wǎng)絡(luò)帶寬,分片冗余策略比復(fù)制策略更能提高文件可用性水平;換言之,提高同樣的文件可用性水平,分片冗余策略比復(fù)制策略需要更少的帶寬。圖4最大的作用是顯示了,在節(jié)省維護(hù)帶寬方面,混合式策略具有最好的整體效果。混合式策略既像復(fù)制策略那樣共享用戶下載的文件以供后續(xù)的下載,又利用分片冗余維持文件的可用性。當(dāng)節(jié)點平均可用性高于0.7時,由于絕大部分文件的可用性被自動維持在目標(biāo)水平,故復(fù)制策略和混合式策略消耗的維護(hù)帶寬大致相等。當(dāng)節(jié)點平均可用性低于0.7時,混合式策略的優(yōu)越性就顯現(xiàn)出來了?;旌鲜讲呗詢?yōu)于分片冗余策略的原因在于其一,共享用戶下載的文件以節(jié)省維護(hù)帶寬;其二,無需維護(hù)主節(jié)點。圖5所示的節(jié)點平均可用性為0.807,這是在一般的公司和高校中我們能夠觀察到的網(wǎng)絡(luò)狀況。由圖5(a)可見,文件請求率越高,維護(hù)帶寬占用率越低。維護(hù)帶寬占用率是一個關(guān)于維護(hù)帶寬和文件下載服務(wù)帶寬的相對指標(biāo),圖5(b)展示了維護(hù)帶寬的絕對值。由圖5(b)可見,隨著平均文件請求率的提高,復(fù)制策略和混合式策略用于維持文件可用性傳輸?shù)奈募?shù)目明顯減少,但分片冗余策略的曲線卻僅在小范圍內(nèi)波動。這一現(xiàn)象證明了共享用戶下載的文件以供后續(xù)的下載能夠有效降低維護(hù)帶寬開銷。圖5(b)還表明,當(dāng)文件請求率較低時,混合式策略在節(jié)省維護(hù)帶寬方面優(yōu)于其他兩種冗余策略。當(dāng)文件請求率大于10時,復(fù)制策略和混合式策略維護(hù)帶寬占用率非常接近,并且貼近水平坐標(biāo)軸,這是因為依賴于用戶的大量下載行為使大部分文件的可用性自動維持在目標(biāo)水平。權(quán)利要求1、基于DHT的P2P系統(tǒng)中獲得高可用數(shù)據(jù)冗余的方法,其特征是采用混合式的獲得數(shù)據(jù)冗余的方法,該方法包括以下步驟1)、對P2P系統(tǒng)中原文件進(jìn)行分片冗余ErasureCoding編碼;2)、將編碼得到的分片分配到P2P系統(tǒng)的相應(yīng)節(jié)點儲存;3)、用戶提出下載要求并進(jìn)行所有節(jié)點查詢;4)、用戶從有用文件的節(jié)點下載文件并將部分文件保存作為副本;5)、重復(fù)步驟3)直到服務(wù)停止;6)、結(jié)束。2、根據(jù)權(quán)利要求1所述的一種基于DHT的P2P系統(tǒng)中獲得高可用數(shù)據(jù)冗余方法,其特征是步驟2)至4)的具體步驟是每個節(jié)點周期性地將其儲存的文件和分片的標(biāo)識符注冊到M個分散且相互獨立的索引節(jié)點;節(jié)點通過兩種索引査找文件文件副本索引和文件分片索引;當(dāng)某節(jié)點請求文件d時,它首先隨機査詢一個或多個d的索引節(jié)點;如果査詢過的索引節(jié)點未能提供足夠的文件副本和分片位置信息,則繼續(xù)隨機査詢其他索引節(jié)點;如果所有索引節(jié)點都不能提供足夠的文件副本和分片位置信息,該節(jié)點將等待一段時間后重做査詢操作,直到査詢超時;若找到完整文件副本,則下載該副本,否則,節(jié)點轉(zhuǎn)而下載足夠的分片并重構(gòu)原文件;用戶下載的文件自動作為共享文件以供后續(xù)的下載;各索引節(jié)點周期性地維護(hù)在其上注冊的文件和分片的可用性,若文件的可用性低于要求水平,則指定某一個儲存該文件完整副本的節(jié)點生成并分發(fā)新分片到隨機選擇的節(jié)點;若當(dāng)前系統(tǒng)中沒有完整的副本,首先等待一段時間,若有節(jié)點下載分片并重構(gòu)原文件,則指定該節(jié)點修復(fù)丟失的冗余度;否則,索引節(jié)點需要自己下載分片,重構(gòu)原文件,再生成足夠的新分片。3、根據(jù)權(quán)利要求1所述的一種基于DHT的P2P系統(tǒng)中高可用數(shù)據(jù)冗余機制,其特征是在系統(tǒng)運行中,通過以下公式計算當(dāng)前文件的可用性其中"為文件的可用性,p為節(jié)點的平均可用性,A為完整副本數(shù)量,附為文件可恢復(fù)所需最小分片數(shù)量,W為系統(tǒng)中總的分片數(shù)量;混合式策略的冗余度可由疊加復(fù)制和分片冗余的冗余度得到<formula>seeoriginaldocumentpage2</formula>全文摘要本發(fā)明公開了一種基于DHT的P2P系統(tǒng)中獲得高可用數(shù)據(jù)冗余機制方法,該方法包括以下步驟1.對原文件進(jìn)行ErasureCoding編碼;2.將編碼得到的分片分配到相應(yīng)節(jié)點儲存;3.用戶提出下載要求并進(jìn)行查詢;4.用戶下載文件并將部分文件保存作為副本;5.重復(fù)步驟3直到服務(wù)停止;6.結(jié)束。本發(fā)明與現(xiàn)有技術(shù)相比,其顯著優(yōu)點是兼具傳統(tǒng)的復(fù)制策略和分片冗余策略的優(yōu)點。實現(xiàn)起來十分簡單,并且在各種網(wǎng)絡(luò)環(huán)境中均能較傳統(tǒng)冗余策略更節(jié)省網(wǎng)絡(luò)帶寬,并且冗余度適中。文檔編號H04L12/54GK101175011SQ200710135028公開日2008年5月7日申請日期2007年11月2日優(yōu)先權(quán)日2007年11月2日發(fā)明者帆吳,李宏興,邱彤慶,陳貴海申請人:南京大學(xué)