專利名稱:一種基于p2p在線信息聚合的副本存儲(chǔ)系統(tǒng)及方法
一種基于P2P在線信息聚合的副本存儲(chǔ)系統(tǒng)及方法技術(shù)領(lǐng)域
本發(fā)明屬于對等網(wǎng)絡(luò)(P2P)存儲(chǔ)技術(shù)領(lǐng)域,具體涉及一種基于P2P在線信息聚合的副本存儲(chǔ)系統(tǒng)及方法。
背景技術(shù):
P2P技術(shù)作為分布式系統(tǒng)的一個(gè)重要分支,它的特點(diǎn)是具有良好的可擴(kuò)展性,自治性,區(qū)別與傳統(tǒng)的C/S架構(gòu),系統(tǒng)中的節(jié)點(diǎn)既是服務(wù)提供者也是服務(wù)消費(fèi)者,這種對等網(wǎng)絡(luò)的特點(diǎn)降低了用戶對服務(wù)器的依賴,也充分的利用了網(wǎng)絡(luò)上閑散的資源,提高了資源利用率。
P2P存儲(chǔ)是P2P技術(shù)的一個(gè)具體應(yīng)用,它包括文件共享和文件存儲(chǔ)兩個(gè)方面,例如 Napster、Gnutella、Bittorrent、eDonkey 等屬于基于 P2P 的文件共享系統(tǒng),Past、OceanStoreXFS等屬于基于P2P的文件存儲(chǔ)系統(tǒng),目前比較流行的網(wǎng)盤也有一部分采用了P2P技術(shù)。
在P2P文件存儲(chǔ)系統(tǒng)中,為了保證存儲(chǔ)文件的可靠性和可用性,大多數(shù)系統(tǒng)都采用了副本機(jī)制,即存儲(chǔ)文件時(shí)系統(tǒng)會(huì)在該系統(tǒng)中所有在線節(jié)點(diǎn)中按照一定的策略選取一定數(shù)量的副本節(jié)點(diǎn),然后將文件在所有副本節(jié)點(diǎn)上都存儲(chǔ)一份,這種副本機(jī)制保證了存儲(chǔ)文件的可靠性和可用性。但是,由于P2P系統(tǒng)的強(qiáng)動(dòng)態(tài)性,系統(tǒng)中的節(jié)點(diǎn)頻繁的加入或退出系統(tǒng),導(dǎo)致副本節(jié)點(diǎn)個(gè)數(shù)會(huì)不斷減少,如果不采取策略維持副本節(jié)點(diǎn)的個(gè)數(shù),最終可能會(huì)導(dǎo)致所有的副本節(jié)點(diǎn)都已經(jīng)退出系統(tǒng),使得文件的可靠性和可用性受到嚴(yán)重影響。
為了解決P2P系統(tǒng)的高動(dòng)態(tài)性帶來的副本節(jié)點(diǎn)數(shù)減少的問題,當(dāng)前一些系統(tǒng)采用的是副本遷移機(jī)制,即如果某個(gè)副本節(jié)點(diǎn)退出該系統(tǒng)時(shí),會(huì)把存儲(chǔ)在它上面的文件遷移到系統(tǒng)中其它在線節(jié)點(diǎn)中,讓其它某個(gè)在線節(jié)點(diǎn)作為文件的副本節(jié)點(diǎn),這樣即使它退出了,文件的副本節(jié)點(diǎn)個(gè)數(shù)并沒有減少,保證了文件的可靠性和可用性。
但是為了提高文件可靠性和可用性的副本遷移機(jī)制會(huì)耗費(fèi)P2P存儲(chǔ)系統(tǒng)大量的帶寬,給系統(tǒng)的運(yùn)行帶來很大的壓力。因?yàn)镻2P系統(tǒng)具有高動(dòng)態(tài)性,副本節(jié)點(diǎn)會(huì)頻繁的退出系統(tǒng),而當(dāng)退出系統(tǒng)時(shí)它會(huì)將文件遷移到其它在線節(jié)點(diǎn)中,即頻繁的退出帶來頻繁的文件遷移,所以P2P存儲(chǔ)系統(tǒng)的大量帶寬會(huì)耗費(fèi)在這些頻繁的文件遷移上。發(fā)明內(nèi)容
本發(fā)明的目的在于,為克服上述問題,本發(fā)明提供一種基于P2P在線信息聚合的副本存儲(chǔ)系統(tǒng)及方法。
為實(shí)現(xiàn)上述目的,本發(fā)明提供一種基于P2P在線信息聚合的副本存儲(chǔ)方法,該方法用于選擇與本地節(jié)點(diǎn)同時(shí)在線概率高的鄰居節(jié)點(diǎn)作為文件副本存放節(jié)點(diǎn),所述方法包含:
步驟1,P2P存儲(chǔ)系統(tǒng)中的每個(gè)節(jié)點(diǎn)分別搜集其鄰居節(jié)點(diǎn)的歷史在線信息,該搜集節(jié)點(diǎn)依據(jù)歷史在線信息預(yù)測其未來在線信息。
步驟2,當(dāng)P2P存儲(chǔ)系統(tǒng)中的某個(gè)本地節(jié)點(diǎn)需要存儲(chǔ)文件副本時(shí),該本地節(jié)點(diǎn)利用其鄰居節(jié)點(diǎn)的歷史在線信息和未來在線信息獲取若干設(shè)定數(shù)目的與該本地節(jié)點(diǎn)同時(shí)在線的概率較高的鄰居節(jié)點(diǎn)存放文件副本。
其中,所述鄰居節(jié)點(diǎn)包含一級以上的鄰居節(jié)點(diǎn),所述的一級鄰居節(jié)點(diǎn)為某節(jié)點(diǎn)的鄰居節(jié)點(diǎn),二級鄰居節(jié)點(diǎn)為某節(jié)點(diǎn)的鄰居節(jié)點(diǎn)的鄰居節(jié)點(diǎn),依次類推可知任意級鄰居節(jié)點(diǎn)的含義。
上述技術(shù)方案中,所述步驟I進(jìn)一步包含如下子步驟:
步驟1-1,P2P存儲(chǔ)系統(tǒng)中的某節(jié)點(diǎn)搜集其鄰居節(jié)點(diǎn)的歷史在線信息,該搜集節(jié)點(diǎn)與其鄰居節(jié)點(diǎn)組成一個(gè)節(jié)點(diǎn)集。
步驟1-2,提取節(jié)點(diǎn)集中各節(jié)點(diǎn)歷史在線信息的特征向量。
步驟1-3,根據(jù)提取的特征向量對節(jié)點(diǎn)集進(jìn)行聚類,得到所述搜集節(jié)點(diǎn)的類簇,然后將該類簇的所有節(jié)點(diǎn)作為預(yù)測處理的訓(xùn)練集,從而預(yù)測所述搜集節(jié)點(diǎn)的未來在線信息。
其中,步驟1-1中:如果P2P存儲(chǔ)系統(tǒng)規(guī)模較小使某節(jié)點(diǎn)搜索得到的一級鄰居節(jié)點(diǎn)數(shù)目比較少時(shí),繼續(xù)搜集第二級鄰居節(jié)點(diǎn)的歷史信息,依次類推,直至累積搜索的鄰居節(jié)點(diǎn)數(shù)達(dá)到一定規(guī)模;如果P2P存儲(chǔ)系統(tǒng)規(guī)模較大時(shí)僅搜集第一級鄰居節(jié)點(diǎn)的歷史信息。
所述步驟1-2根據(jù)實(shí)際P2P存儲(chǔ)系統(tǒng)中P2P節(jié)點(diǎn)總體的上下線規(guī)律,設(shè)定特征向量的維度。
可選的,所述與該本地節(jié)點(diǎn)同時(shí)在線的概率較高的鄰居節(jié)點(diǎn)即找出在線行為與該本地節(jié)點(diǎn)最相似的若干節(jié)點(diǎn)作為副本存放節(jié)點(diǎn);其中,所述的相似性可通過歐式距離算法或連續(xù)在線時(shí)間最長算法確定。
可選的,所述步驟2中當(dāng)本地節(jié)點(diǎn)需要存儲(chǔ)文件副本時(shí):
本地節(jié)點(diǎn)首先判斷其鄰居節(jié)點(diǎn)表中節(jié)點(diǎn)的總個(gè)數(shù)是否小于需要的副本節(jié)點(diǎn)個(gè)數(shù),如果小于則需要遞歸搜集本地節(jié)點(diǎn)的第二級鄰居節(jié)點(diǎn)表,以此類推,經(jīng)過遍歷若干級鄰居節(jié)點(diǎn),最終使得搜集的鄰居節(jié)點(diǎn)的總個(gè)數(shù)至少等于副本節(jié)點(diǎn)數(shù),從搜集的所有鄰居節(jié)點(diǎn)中選擇需要的副本節(jié)點(diǎn)個(gè)數(shù)存放文件副本。
基于上述方法,本發(fā)明提供一種可選的基于P2P在線信息聚合的副本存儲(chǔ)系統(tǒng),該系統(tǒng)用于選擇與本地節(jié)點(diǎn)同時(shí)在線概率高的鄰居節(jié)點(diǎn)作為文件副本存放節(jié)點(diǎn),所述系統(tǒng)包含:
位于P2P存儲(chǔ)系統(tǒng)中的每個(gè)節(jié)點(diǎn)上的搜索和預(yù)測子系統(tǒng),該子系統(tǒng)搜集其所在節(jié)點(diǎn)的鄰居節(jié)點(diǎn)的歷史在線信息,依據(jù)歷史在線信息預(yù)測該節(jié)點(diǎn)的未來在線信息。
位于P2P存儲(chǔ)系統(tǒng)中的每個(gè)節(jié)點(diǎn)上的副本存放節(jié)點(diǎn)選擇子系統(tǒng),用于當(dāng)該子系統(tǒng)所在的節(jié)點(diǎn)有文件需要進(jìn)行副本存放時(shí),該本地節(jié)點(diǎn)利用其鄰居節(jié)點(diǎn)的歷史在線信息和未來在線信息獲取若干設(shè)定數(shù)目的與該本地節(jié)點(diǎn)同時(shí)在線的概率較高的鄰居節(jié)點(diǎn)存放文件副本。
其中,所述鄰居節(jié)點(diǎn)包含一級以上的鄰居節(jié)點(diǎn),所述的一級鄰居節(jié)點(diǎn)為某節(jié)點(diǎn)的鄰居節(jié)點(diǎn),二級鄰居節(jié)點(diǎn)為某節(jié)點(diǎn)的鄰居節(jié)點(diǎn)的鄰居節(jié)點(diǎn),依次類推可知多級鄰居節(jié)點(diǎn)的含義。
上述系統(tǒng)中,所述搜索和預(yù)測子系統(tǒng)進(jìn)一步包含:
歷史信息搜索模塊,用于搜集該模塊所在節(jié)點(diǎn)的鄰居節(jié)點(diǎn)的歷史在線信息。
特征向量提取模塊,用于提取各歷史在線信息的特征向量。和
基于聚類的預(yù)測模塊,利用提取的特征向量對鄰居節(jié)點(diǎn)進(jìn)行聚類,得到歷史信息搜索模塊所在節(jié)點(diǎn)的類簇,然后將類簇中的所有節(jié)點(diǎn)作為預(yù)測處理的訓(xùn)練集,從而預(yù)測出歷史信息搜索模塊所在節(jié)點(diǎn)的未來在線信息。
其中,所述的歷史信息搜索模塊能動(dòng)態(tài)調(diào)整搜索的鄰居節(jié)點(diǎn)的級數(shù),S卩如果P2P存儲(chǔ)系統(tǒng)規(guī)模較小使鄰居節(jié)點(diǎn)數(shù)目比較少時(shí),需依次搜索多級鄰居節(jié)點(diǎn);如果P2P存儲(chǔ)系統(tǒng)規(guī)模較大時(shí)僅搜集的第一級鄰居節(jié)點(diǎn)的歷史信息。
優(yōu)化的,所述基于聚類的預(yù)測模塊進(jìn)一步包含:
聚類器,用于利用提取的特征向量對鄰居節(jié)點(diǎn)進(jìn)行聚類,得到歷史信息搜索模塊所在節(jié)點(diǎn)的類簇,然后將類簇中的所有節(jié)點(diǎn)作為預(yù)測器的訓(xùn)練集輸入預(yù)測器;和
預(yù)測器,用于依據(jù)輸入的訓(xùn)練集預(yù)測歷史信息搜索模塊所在節(jié)點(diǎn)的未來在線信肩、O
可選的,所述特征向量提取模塊根據(jù)實(shí)際P2P存儲(chǔ)系統(tǒng)中用戶節(jié)點(diǎn)總體的上下線規(guī)律,設(shè)定特征向量的維度。
可選的,所述與該本地節(jié)點(diǎn)同時(shí)在線的概率較高的鄰居節(jié)點(diǎn)即找出在線行為與該本地節(jié)點(diǎn)最相似的若干節(jié)點(diǎn)作為副本存放節(jié)點(diǎn);
其中,所述的相似性可通過歐式距離算法或連續(xù)在線時(shí)間最長算法確定。
所述副本存放節(jié)點(diǎn)選擇子系統(tǒng)進(jìn)一步包含如下模塊:
判斷模塊,用于判斷本地節(jié)點(diǎn)的鄰居節(jié)點(diǎn)表中節(jié)點(diǎn)的總個(gè)數(shù)是否小于設(shè)定的副本節(jié)點(diǎn)個(gè)數(shù);如果小于則將結(jié)果反饋累加搜索模塊。
累加搜索模塊,當(dāng)收到判斷模塊的反饋信息時(shí)遞歸搜集本地節(jié)點(diǎn)的第二級鄰居節(jié)點(diǎn)表,以此類推,經(jīng)過遍歷若干級鄰居節(jié)點(diǎn),最終使得搜集的鄰居節(jié)點(diǎn)的總個(gè)數(shù)達(dá)到一定規(guī)模,繼而為副本選擇提供一個(gè)比較大的節(jié)點(diǎn)選擇空間。和
確定最終副本存放節(jié)點(diǎn)的模塊,用于從搜集的所有鄰居節(jié)點(diǎn)中選擇設(shè)定個(gè)數(shù)的副本節(jié)點(diǎn),存放文件副本。其中,所述第二級是指本地節(jié)點(diǎn)的鄰居節(jié)點(diǎn)的鄰居節(jié)點(diǎn)。
本發(fā)明提供一種基于P2P在線信息聚合的存儲(chǔ)策略,該策略包括P2P節(jié)點(diǎn)在線信息的預(yù)測策略以及基于預(yù)測信息的聚合存儲(chǔ)策略兩部分。P2P節(jié)點(diǎn)在線信息的預(yù)測策略負(fù)責(zé)搜集所有鄰居節(jié)點(diǎn)的歷史在線信息,并利用這些歷史在線信息對本節(jié)點(diǎn)的未來在線信息進(jìn)行預(yù)測,即預(yù)測該節(jié)點(diǎn)在未來某個(gè)時(shí)間段是否在線,預(yù)測使用的模型是Cluster-BasedPredictor (基于聚類的預(yù)測器);基于預(yù)測信息的聚合存儲(chǔ)策略部分負(fù)責(zé)當(dāng)本地節(jié)點(diǎn)存儲(chǔ)文件時(shí),搜集鄰居節(jié)點(diǎn)的在線信息,然后利用基于這些在線信息的副本選取策略,從它的所有鄰居節(jié)點(diǎn)中選出指定數(shù)量的副本節(jié)點(diǎn)進(jìn)行存儲(chǔ)。
與現(xiàn)有技術(shù)相比本發(fā)明的技術(shù)優(yōu)勢在于:由于副本選取的時(shí)候考慮到了節(jié)點(diǎn)的未來在線情況,使得本節(jié)點(diǎn)未來去取所存的文件時(shí),副本節(jié)點(diǎn)同時(shí)在線的可能性大大提高,從而提高了副本的可靠性和可用性。這種將文件存儲(chǔ)到與本地節(jié)點(diǎn)上下線行為類似的節(jié)點(diǎn)來提高可靠性和可用性的方法,避免了副本遷移方法帶來的大量帶寬的消費(fèi),使得P2P存儲(chǔ)性能得到了提升。
圖1-a為本發(fā)明實(shí)施例的基于P2P在線信息聚合的存儲(chǔ)策略的網(wǎng)絡(luò)結(jié)構(gòu)示意圖Ι-b為本發(fā)明的基于P2P在線信息聚合的存儲(chǔ)策略的流程圖2為本發(fā)明的基于P2P在線信息聚合的存儲(chǔ)策略中的Cluster-BasedPredictor結(jié)構(gòu)示意圖3為本發(fā)明的基于P2P在線信息聚合的存儲(chǔ)策略中節(jié)點(diǎn)在線信息預(yù)測的流程圖4為本發(fā)明的基于P2P在線信息聚合的存儲(chǔ)策略中基于節(jié)點(diǎn)預(yù)測信息的聚合存儲(chǔ)策略流程圖。
具體實(shí)施方式
下面結(jié)合附圖和具體實(shí)例對本發(fā)明的基于P2P在線信息聚合的存儲(chǔ)策略進(jìn)行詳細(xì)說明。
本發(fā)明提出一種應(yīng)用于P2P文件存儲(chǔ)系統(tǒng)的存儲(chǔ)策略,該策略在不使用副本遷移機(jī)制的前提下,保證了系統(tǒng)的可靠性和可用性,從而避免了頻繁的副本遷移,大大減少了P2P存儲(chǔ)系統(tǒng)的帶寬消耗,提高了系統(tǒng)性能。為實(shí)現(xiàn)上述目的,本發(fā)明提供一種基于P2P在線信息聚合的存儲(chǔ)策略。
本發(fā)明的特征在于:本發(fā)明提供的一種基于P2P在線信息聚合的存儲(chǔ)策略由P2P節(jié)點(diǎn)在線信息的預(yù)測策略以及基于預(yù)測信息的聚合存儲(chǔ)策略兩部分組成。其中所述P2P節(jié)點(diǎn)在線信息的預(yù)測負(fù)責(zé)搜集鄰居節(jié)點(diǎn)的歷史在線信息,并預(yù)測未來時(shí)刻節(jié)點(diǎn)是否在線,預(yù)測模型為Cluster-Based Predictor (基于聚類的預(yù)測器);所述基于預(yù)測信息的聚合存儲(chǔ)策略負(fù)責(zé)將搜集到的鄰居節(jié)點(diǎn)的在線信息進(jìn)行聚合,然后利用基于這些在線信息設(shè)計(jì)的副本選取策略,選取副本節(jié)點(diǎn)進(jìn)行存儲(chǔ)。
在本發(fā)明的存儲(chǔ)策略中,各個(gè)子策略的功能和處理方法如下:
I)所述P2P節(jié)點(diǎn)在線信息的預(yù)測策略:本地節(jié)點(diǎn)需要對它未來在線信息進(jìn)行預(yù)測,首先需要搜集本地節(jié)點(diǎn)的所有鄰居節(jié)點(diǎn)的歷史在線信息,然后對每個(gè)鄰居節(jié)點(diǎn)的歷史在線信息提取特征向量,最后利用Cluster-Based Predictor預(yù)測模型對本地節(jié)點(diǎn)的未來在線信息進(jìn)行預(yù)測。該子策略的優(yōu)勢為:
+利用鄰居節(jié)點(diǎn)的歷史在線信息作為預(yù)測器的訓(xùn)練集合,使得預(yù)測器的訓(xùn)練集合更加完備,彌補(bǔ)了只使用本地節(jié)點(diǎn)歷史在線信息作為訓(xùn)練集合的不足,提高了預(yù)測的準(zhǔn)確性;
今通過對鄰居節(jié)點(diǎn)進(jìn)行聚類,將本地節(jié)點(diǎn)所在類簇的所有鄰居節(jié)點(diǎn)作為預(yù)測器的訓(xùn)練集合,即從所有鄰居節(jié)點(diǎn)中篩選出和本地節(jié)點(diǎn)在線行為最相似的那些鄰居節(jié)點(diǎn)作為預(yù)測器的訓(xùn)練集,使得預(yù)測器訓(xùn)練集合更加有效,從而進(jìn)一步提高了預(yù)測的準(zhǔn)確性。
其中,所述的搜集本地節(jié)點(diǎn)的所有鄰居節(jié)點(diǎn)的歷史在線信息,可以根據(jù)P2P存儲(chǔ)系統(tǒng)的規(guī)模來選取鄰居節(jié)點(diǎn)遍歷的級數(shù)。如果P2P存儲(chǔ)系統(tǒng)規(guī)模較小導(dǎo)致本地節(jié)點(diǎn)的鄰居節(jié)點(diǎn)數(shù)目比較少時(shí),除了搜集這些第一級的鄰居節(jié)點(diǎn)外,還可以選擇搜集這些鄰居節(jié)點(diǎn)的鄰居節(jié)點(diǎn),即相對于本地節(jié)點(diǎn)的第二級鄰居節(jié)點(diǎn);如果P2P存儲(chǔ)系統(tǒng)規(guī)模較大,可以只搜集第一級鄰居節(jié)點(diǎn)。保證一定的鄰居節(jié)點(diǎn)數(shù)避免了小數(shù)量的不確定性,使得聚類效果更好。
所述的對每個(gè)鄰居節(jié)點(diǎn)的歷史在線信息提取特征向量(表征節(jié)點(diǎn)的上下線規(guī)律),需要根據(jù)實(shí)際的P2P存儲(chǔ)系統(tǒng)中節(jié)點(diǎn)總體表現(xiàn)出來的上下線規(guī)律來決定特征向量的維度。如果P2P存儲(chǔ)系統(tǒng)中節(jié)點(diǎn)總體表現(xiàn)出來以一天為周期的上下線規(guī)律,則可以將特征向量的維度設(shè)置為一天內(nèi)的歷史信息采樣個(gè)數(shù);如果是以2天或者一周等規(guī)律,可以將特征向量設(shè)置為2天或一周內(nèi)的歷史信息采樣個(gè)數(shù)。這種設(shè)定特征向量維度的方法,可以使得聚類的效果更好。
所述的利用Cluster-Based Predictor預(yù)測模型對本地節(jié)點(diǎn)的未來在線信息進(jìn)行預(yù)測,包括聚類器對鄰居節(jié)點(diǎn)聚類、以將本地節(jié)點(diǎn)所在類簇作為訓(xùn)練集合輸入預(yù)測器進(jìn)行預(yù)測兩個(gè)部分,如下所示:
■所述的聚類器對鄰居節(jié)點(diǎn)聚類,根據(jù)每個(gè)鄰居節(jié)點(diǎn)的特征向量,選擇一種聚類器進(jìn)行聚類,它將所有的鄰居節(jié)點(diǎn)進(jìn)行分類,每個(gè)類簇中的節(jié)點(diǎn)具有相似的上下線行為習(xí)慣;
■所述的將本地節(jié)點(diǎn)所在類簇作為訓(xùn)練集合輸入預(yù)測器進(jìn)行預(yù)測部分,將本地節(jié)點(diǎn)所在類簇的所有節(jié)點(diǎn)作為訓(xùn)練集合,完備了訓(xùn)練集合,提高了預(yù)測的準(zhǔn)確性。
2)所述的基于預(yù)測信息的聚合存儲(chǔ)策略:當(dāng)本地節(jié)點(diǎn)需要存儲(chǔ)文件時(shí),搜集所有鄰居節(jié)點(diǎn)的在線信息(這里的在線信息包括歷史在線信息和上面所述的利用歷史信息預(yù)測的未來在線信息),當(dāng)一級鄰居節(jié)點(diǎn)的個(gè)數(shù)比較少時(shí),可以繼續(xù)第二級的鄰居節(jié)點(diǎn),然后本地節(jié)點(diǎn)利用基于這些在線信息的副本選取策略,選取副本進(jìn)行存儲(chǔ),該子策略的優(yōu)勢在于:由于副本選取的時(shí)候考慮到了節(jié)點(diǎn)的未來在線情況,使得本節(jié)點(diǎn)未來去取所存的文件時(shí),副本節(jié)點(diǎn)同時(shí)在線的可能性大大提高,從而提高了副本的可靠性和可用性。這種將文件存儲(chǔ)到與本地節(jié)點(diǎn)上下線行為類似的節(jié)點(diǎn)來提高可靠性和可用性的方法,避免了副本遷移方法帶來的大量帶寬的消費(fèi),使得P2P存儲(chǔ)性能得到了提升。
下面結(jié)合附圖詳細(xì)解釋本發(fā)明的實(shí)施例。
如圖Ι-a所示,該圖為本發(fā)明的基于P2P在線信息聚合的存儲(chǔ)策略的結(jié)構(gòu)示意圖。如圖Ι-a所示,本發(fā)明的一種基于P2P在線信息聚合的存儲(chǔ)策略,包括P2P節(jié)點(diǎn)在線信息的預(yù)測、以基于預(yù)測信息的存儲(chǔ)策略兩個(gè)部分。其中所述P2P節(jié)點(diǎn)在線信息的預(yù)測負(fù)責(zé)搜集鄰居節(jié)點(diǎn)的歷史在線信息,然后對節(jié)點(diǎn)的未來在線信息進(jìn)行預(yù)測;所述的基于預(yù)測信息的存儲(chǔ)策略部分負(fù)責(zé)將搜集的鄰居節(jié)點(diǎn)的`在線信息聚合(包括歷史在線信息和預(yù)測的在線信息),然后利用基于這些在線信息的副本選擇策略,從所有鄰居節(jié)點(diǎn)中選取指定數(shù)量的副本節(jié)點(diǎn),最后將文件存儲(chǔ)到這些被選擇的副本節(jié)點(diǎn)中。
如圖l_b所示,該圖為本發(fā)明的基于P2P在線信息聚合的存儲(chǔ)策略的流程示意圖。本發(fā)明所述的一種基于P2P在線信息聚合的副本存儲(chǔ)方法,該方法用于選擇與本地節(jié)點(diǎn)同時(shí)在線概率高的鄰居節(jié)點(diǎn)作為文件副本存放節(jié)點(diǎn),所述方法包含:
步驟101,P2P存儲(chǔ)系統(tǒng)中的每個(gè)節(jié)點(diǎn)分別搜集其鄰居節(jié)點(diǎn)的歷史在線信息,該搜集節(jié)點(diǎn)依據(jù)歷史在線信息預(yù)測其未來在線信息。
步驟102,當(dāng)P2P存儲(chǔ)系統(tǒng)中的某個(gè)本地節(jié)點(diǎn)需要存儲(chǔ)文件副本時(shí),該本地節(jié)點(diǎn)利用其鄰居節(jié)點(diǎn)的歷史在線信息和未來在線信息獲取若干設(shè)定數(shù)目的與該本地節(jié)點(diǎn)同時(shí)在線的概率較高的鄰居節(jié)點(diǎn)存放文件副本。
其中,所述鄰居節(jié)點(diǎn)包含一級以上的鄰居節(jié)點(diǎn),所述的一級鄰居節(jié)點(diǎn)為某節(jié)點(diǎn)的鄰居節(jié)點(diǎn),二級鄰居節(jié)點(diǎn)為某節(jié)點(diǎn)的鄰居節(jié)點(diǎn)的鄰居節(jié)點(diǎn),依次類推可知任意級鄰居節(jié)點(diǎn)的含義。
所述步驟101可以由圖Ι-a的搜索和預(yù)測子系統(tǒng)完成,所述步驟102由圖l_a的副本存放節(jié)點(diǎn)選擇子系統(tǒng)。
如圖2所示,該圖為本發(fā)明的基于P2P在線信息聚合的存儲(chǔ)策略中Cluster-BasedPredictor結(jié)構(gòu)示意圖,如圖2所示,Cluster-Based Predictor的輸入是由搜集到的鄰居節(jié)點(diǎn)的歷史在線信息提取的特征向量,然后進(jìn)入聚類器進(jìn)行聚類,最后輸入預(yù)測器進(jìn)行預(yù)測,Cluster-Based Predictor預(yù)測模型跟其它預(yù)測模型不同的是在預(yù)測器前面添加了聚類器,它從所有鄰居節(jié)點(diǎn)中篩選出與本地節(jié)點(diǎn)行為相似的節(jié)點(diǎn)作為預(yù)測器的訓(xùn)練集合,使得訓(xùn)練集合更加有效,從而提高預(yù)測的準(zhǔn)確性。
如圖3所示,該圖為本發(fā)明的基于P2P在線信息聚合的存儲(chǔ)策略中某個(gè)節(jié)點(diǎn)在線信息預(yù)測的流程圖,如圖3所示,它的步驟如下:
I)搜集鄰居節(jié)點(diǎn)的歷史在線信息,當(dāng)鄰居節(jié)點(diǎn)數(shù)比較少的時(shí)候,可以繼續(xù)遍歷第二級鄰居節(jié)點(diǎn),保證一定的鄰居節(jié)點(diǎn)數(shù)目避免了小數(shù)量的不確定性,使得聚類效果更好;
2)對搜集到的各個(gè)鄰居節(jié)點(diǎn)歷史在線信息提取特征向量,特征向量的維度主要是要根據(jù)實(shí)際P2P存儲(chǔ)系統(tǒng)中節(jié)點(diǎn)總體上下線規(guī)律進(jìn)行設(shè)置,例如某個(gè)P2P存儲(chǔ)系統(tǒng)的在線信息采樣間隔為20分鐘,那么一天內(nèi)采樣點(diǎn)數(shù)為24*60/20 = 72,如果該系統(tǒng)節(jié)點(diǎn)總體的上下線規(guī)律為一天,那么特征向量的維度可以設(shè)置為72,如果上下線規(guī)律為2天則維度可以設(shè)置為144。維度確定過后,就可以進(jìn)行特征向量的提取了,如搜集到的鄰居節(jié)點(diǎn)的歷史在線信息的長度為7天(即采樣序列長度為7*72 = 504),則它的特征向量為統(tǒng)計(jì)這7天內(nèi)每天對應(yīng)時(shí)間點(diǎn)節(jié)點(diǎn)的上下線概率(設(shè)維度為72);
3)有了特征向量,就可以進(jìn)入Cluster-Based Predictor預(yù)測器進(jìn)行預(yù)測,Cluster-Based Predictor內(nèi)部包含聚類器和預(yù)測器,聚類器的目的是從所有鄰居節(jié)點(diǎn)中選出與本地節(jié)點(diǎn)行為相似的節(jié)點(diǎn)作為預(yù)測器的輸入,使得預(yù)測器訓(xùn)練集更加完備,從而提高預(yù)測的準(zhǔn)確性。例如預(yù)測器可以是K-Means等,預(yù)測器可以使用N-Gram等;
4)經(jīng)過基于聚類的預(yù)測模塊(Cluster-Based Predictor)預(yù)測模型預(yù)測后就可以得到該節(jié)點(diǎn)未來在線情況。
如圖4所示,該圖為本發(fā)明的基于P2P在線信息聚合的存儲(chǔ)策略中基于節(jié)點(diǎn)預(yù)測信息的聚合存儲(chǔ)策略流程圖,如圖4所示,它的步驟如下:
I)當(dāng)本地節(jié)點(diǎn)需要存儲(chǔ)文件時(shí),首先搜集所有鄰居節(jié)點(diǎn)的在線信息,這里的在線信息包括歷史在線信息以及由歷史在線信息預(yù)測的未來在線信息,當(dāng)鄰居節(jié)點(diǎn)數(shù)比較少時(shí),可以繼續(xù)遍歷搜集第二級鄰居節(jié)點(diǎn)的在線信息,保證一定數(shù)量的鄰居節(jié)點(diǎn)避免了小數(shù)量的不確定性,也使后面副本選擇的范圍更大;
2)有了鄰居節(jié)點(diǎn)的在線信息,就可以基于這些在線信息去選擇副本,例如若副本數(shù)為k,則可以利用在線信息從鄰居節(jié)點(diǎn)中找到在線時(shí)間最長(統(tǒng)計(jì)歷史在線信息中節(jié)點(diǎn)的在線時(shí)間)的前k個(gè)節(jié)點(diǎn)作為副本節(jié)點(diǎn);又或者可以找出在線行為最相似(計(jì)算特征向量的歐式距離,距離越小行為越相似)的k個(gè)節(jié)點(diǎn)作為副本節(jié)點(diǎn)等等;這些副本選擇策略選出來的副本具有如下特征:當(dāng)本地節(jié)點(diǎn)在線時(shí),那些相應(yīng)的副本節(jié)點(diǎn)也在線的概率很高。在這種情況下,本地節(jié)點(diǎn)取文件時(shí),所有副本節(jié)點(diǎn)都不在線的可能性很小,從而保證了存儲(chǔ)的可靠性和可用性;即為了提高數(shù)據(jù)副本的可靠性和可用性,本地節(jié)點(diǎn)的副本選取策略是基于所有鄰居節(jié)點(diǎn)的在線信息,這些副本的特征是當(dāng)本地節(jié)點(diǎn)在線時(shí),相應(yīng)的副本節(jié)點(diǎn)也在線的概率很高,所述歐式距離只是其中一種來找與本地節(jié)點(diǎn)行為相似的鄰居節(jié)點(diǎn)的方法,還有連續(xù)在線時(shí)間最長等方法也可以來表征鄰居節(jié)點(diǎn)與本地節(jié)點(diǎn)行為相似性,所以這里還是只要強(qiáng)調(diào)副本選擇策略是基于在線信息的就可以了。
3)最后,將文件存儲(chǔ)到2)選出的副本節(jié)點(diǎn)中。
本發(fā)明的一種基于P2P在線信息聚合的存儲(chǔ)策略,利用了鄰居節(jié)點(diǎn)的歷史在線信息對節(jié)點(diǎn)未來在線信息進(jìn)行預(yù)測,其中Cluster-Based Predictor預(yù)測模型中集合了聚類器和預(yù)測器,聚類器的目的是從所有鄰居節(jié)點(diǎn)中選出與本地節(jié)點(diǎn)行為相似的節(jié)點(diǎn)作為預(yù)測器的輸入,使得預(yù)測器訓(xùn)練集更加完備,從而提高預(yù)測的準(zhǔn)確性;然后當(dāng)本地節(jié)點(diǎn)需要存儲(chǔ)文件時(shí),搜集鄰居節(jié)點(diǎn)的在線信息(包括歷史和預(yù)測的在線信息),利用基于這些在線信息的副本選擇策略,選出副本節(jié)點(diǎn)進(jìn)行存儲(chǔ)。由于這些副本節(jié)點(diǎn)具有如下特征:當(dāng)本地節(jié)點(diǎn)在線時(shí),那些相應(yīng)的副本節(jié)點(diǎn)也在線的概率很高,所以當(dāng)本地節(jié)點(diǎn)去取文件時(shí),所有副本節(jié)點(diǎn)都不在線的可能性很小,從而保證了存儲(chǔ)的可靠性和可用性。本發(fā)明使得即使在沒有副本遷移的情況下,系統(tǒng)也能保證很高的可靠性和可用性,避免了頻繁副本遷移帶來的大量的帶寬消耗,提高了系統(tǒng)的性能。
最后所應(yīng)說明的是,以上實(shí)施例僅用以說明本發(fā)明的技術(shù)方案而非限制。盡管參照實(shí)施例對本發(fā)明進(jìn)行了詳細(xì)說明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解,對本發(fā)明的技術(shù)方案進(jìn)行修改或者等同替換,都不脫離本發(fā)明技術(shù)方案的精神和范圍,其均應(yīng)涵蓋在本發(fā)明的權(quán)利要求范圍當(dāng)中。
權(quán)利要求
1.一種基于P2P在線信息聚合的副本存儲(chǔ)方法,該方法用于選擇與本地節(jié)點(diǎn)同時(shí)在線概率高的鄰居節(jié)點(diǎn)作為文件副本存放節(jié)點(diǎn),所述方法包含: 步驟1,P2P存儲(chǔ)系統(tǒng)中的每個(gè)節(jié)點(diǎn)分別搜集其鄰居節(jié)點(diǎn)的歷史在線信息,該搜集節(jié)點(diǎn)依據(jù)歷史在線信息預(yù)測其未來在線信息; 步驟2,當(dāng)P2P存儲(chǔ)系統(tǒng)中的某個(gè)本地節(jié)點(diǎn)需要存儲(chǔ)文件副本時(shí),該本地節(jié)點(diǎn)利用其鄰居節(jié)點(diǎn)的歷史在線信息和未來在線信息獲取若干設(shè)定數(shù)目的與該本地節(jié)點(diǎn)同時(shí)在線的概率較高的鄰居節(jié)點(diǎn)存放文件副本; 其中,所述鄰居節(jié)點(diǎn)包含一級以上的鄰居節(jié)點(diǎn),所述的一級鄰居節(jié)點(diǎn)為某節(jié)點(diǎn)的鄰居節(jié)點(diǎn),二級鄰居節(jié)點(diǎn)為某節(jié)點(diǎn)的鄰居節(jié)點(diǎn)的鄰居節(jié)點(diǎn),依次類推可知任意級鄰居節(jié)點(diǎn)的含義。
2.根據(jù)權(quán)利要求1所述的基于P2P在線信息聚合的副本存儲(chǔ)方法,其特征在于,所述步驟I進(jìn)一步包含如下子步驟: 步驟1-1,P2P存儲(chǔ)系統(tǒng)中的某節(jié)點(diǎn)搜集其鄰居節(jié)點(diǎn)的歷史在線信息,該搜集節(jié)點(diǎn)與其鄰居節(jié)點(diǎn)組成一個(gè)節(jié)點(diǎn)集; 步驟1-2,提取節(jié)點(diǎn)集中各節(jié)點(diǎn)歷史在線信息的特征向量; 步驟1-3,根據(jù)提取的特征向量對節(jié)點(diǎn)集進(jìn)行聚類,得到所述搜集節(jié)點(diǎn)的類簇,然后將該類簇的所有節(jié)點(diǎn)作為預(yù)測處理的訓(xùn)練集,從而預(yù)測所述搜集節(jié)點(diǎn)的未來在線信息; 其中,步驟1-1中:如果P2P存儲(chǔ)系統(tǒng)規(guī)模較小使某節(jié)點(diǎn)搜索得到的一級鄰居節(jié)點(diǎn)數(shù)目比較少時(shí),繼續(xù)搜集第二級鄰居節(jié)點(diǎn)的歷史信息,依次類推,直至累積搜索的鄰居節(jié)點(diǎn)數(shù)達(dá)到一定規(guī)模; 如果P2P存儲(chǔ)系統(tǒng)規(guī)模較大時(shí)僅搜集第一級鄰居節(jié)點(diǎn)的歷史信息。
3.根據(jù)權(quán)利要求2所述的基于P2P在線信息聚合的副本存儲(chǔ)方法,其特征在于,所述步驟1-2根據(jù)實(shí)際P2P存儲(chǔ)系統(tǒng)中P2P節(jié)點(diǎn)總體的上下線規(guī)律,設(shè)定特征向量的維度。
4.根據(jù)權(quán)利要求1所述的基于P2P在線信息聚合的副本存儲(chǔ)方法,其特征在于,所述與該本地節(jié)點(diǎn)同時(shí)在線的概率較高的鄰居節(jié)點(diǎn)即找出在線行為與該本地節(jié)點(diǎn)最相似的若干節(jié)點(diǎn)作為副本存放節(jié)點(diǎn); 其中,所述的相似性可通過歐式距離算法或連續(xù)在線時(shí)間最長算法確定。
5.根據(jù)權(quán)利要求1或4所述的基于P2P在線信息聚合的副本存儲(chǔ)方法,其特征在于,所述步驟2中當(dāng)本地節(jié)點(diǎn)需要存儲(chǔ)文件副本時(shí): 本地節(jié)點(diǎn)首先判斷其鄰居節(jié)點(diǎn)表中節(jié)點(diǎn)的總個(gè)數(shù)是否小于需要的副本節(jié)點(diǎn)個(gè)數(shù),如果小于則需要遞歸搜集本地節(jié)點(diǎn)的第二級鄰居節(jié)點(diǎn)表,以此類推,經(jīng)過遍歷若干級鄰居節(jié)點(diǎn),最終使得搜集的鄰居節(jié)點(diǎn)的總個(gè)數(shù)至少等于副本節(jié)點(diǎn)數(shù),從搜集的所有鄰居節(jié)點(diǎn)中選擇需要的副本節(jié)點(diǎn)個(gè)數(shù)存放文件副本。
6.一種基于P2P在線信息聚合的副本存儲(chǔ)系統(tǒng),該系統(tǒng)用于選擇與本地節(jié)點(diǎn)同時(shí)在線概率高的鄰居節(jié)點(diǎn)作為文件副本存放節(jié)點(diǎn),所述系統(tǒng)包含: 位于P2P存儲(chǔ)系統(tǒng)中的每個(gè)節(jié)點(diǎn)上的搜索和預(yù)測子系統(tǒng),該子系統(tǒng)搜集其所在節(jié)點(diǎn)的鄰居節(jié)點(diǎn)的歷史在線信息 ,依據(jù)歷史在線信息預(yù)測該節(jié)點(diǎn)的未來在線信息;和 位于P2P存儲(chǔ)系統(tǒng)中的每個(gè)節(jié)點(diǎn)上的副本存放節(jié)點(diǎn)選擇子系統(tǒng),用于當(dāng)該子系統(tǒng)所在的節(jié)點(diǎn)有文件需要進(jìn)行副本存放時(shí),該本地節(jié)點(diǎn)利用其鄰居節(jié)點(diǎn)的歷史在線信息和未來在線信息獲取若干設(shè)定數(shù)目的與該本地節(jié)點(diǎn)同時(shí)在線的概率較高的鄰居節(jié)點(diǎn)存放文件副本; 其中,所述鄰居節(jié)點(diǎn)包含一級以上的鄰居節(jié)點(diǎn),所述的一級鄰居節(jié)點(diǎn)為某節(jié)點(diǎn)的鄰居節(jié)點(diǎn),二級鄰居節(jié)點(diǎn)為某節(jié)點(diǎn)的鄰居節(jié)點(diǎn)的鄰居節(jié)點(diǎn),依次類推可知多級鄰居節(jié)點(diǎn)的含義。
7.根據(jù)權(quán)利要求6所述的基于P2P在線信息聚合的副本存儲(chǔ)系統(tǒng),其特征在于,所述搜索和預(yù)測子系統(tǒng)進(jìn)一步包含: 歷史信息搜索模塊,用于搜集該模塊所在節(jié)點(diǎn)的鄰居節(jié)點(diǎn)的歷史在線信息; 特征向量提取模塊,用于提取各歷史在線信息的特征向量;和基于聚類的預(yù)測模塊,利用提取的特征向量對鄰居節(jié)點(diǎn)進(jìn)行聚類,得到歷史信息搜索模塊所在節(jié)點(diǎn)的類簇,然后將類簇中的所有節(jié)點(diǎn)作為預(yù)測處理的訓(xùn)練集,從而預(yù)測出歷史信息搜索模塊所在節(jié)點(diǎn)的未來在線信息; 其中,所述的歷史信息搜索模塊能動(dòng)態(tài)調(diào)整搜索的鄰居節(jié)點(diǎn)的級數(shù),即如果P2P存儲(chǔ)系統(tǒng)規(guī)模較小使鄰居節(jié)點(diǎn)數(shù)目比較少時(shí),需依次搜索多級鄰居節(jié)點(diǎn); 如果P2P存儲(chǔ)系統(tǒng)規(guī)模較大時(shí)僅搜集的第一級鄰居節(jié)點(diǎn)的歷史信息。
8.根據(jù)權(quán)利要求7所述的基于P2P在線信息聚合的副本存儲(chǔ)系統(tǒng),其特征在于,所述基于聚類的預(yù)測模塊進(jìn)一步包含: 聚類器,用于利用提取的特征向量對鄰居節(jié)點(diǎn)進(jìn)行聚類,得到歷史信息搜索模塊所在節(jié)點(diǎn)的類簇,然后將類簇中的所有節(jié)點(diǎn)作為預(yù)測器的訓(xùn)練集輸入預(yù)測器;和 預(yù)測器,用于依據(jù)輸入的訓(xùn)練集預(yù)測歷史信息搜索模塊所在節(jié)點(diǎn)的未來在線信息。
9.根據(jù)權(quán)利要求6所述的基于P2P在線信息聚合的副本存儲(chǔ)方法,其特征在于,所述與該本地節(jié)點(diǎn)同時(shí)在線的概率較高的鄰居節(jié)點(diǎn)即找出在線行為與該本地節(jié)點(diǎn)最相似的若干節(jié)點(diǎn)作為副本存放節(jié)點(diǎn); 其中,所述的相似性可通過歐式距離算法或連續(xù)在線時(shí)間最長算法確定。
10.根據(jù)權(quán)利要求6所述的基于P2P在線信息聚合的副本存儲(chǔ)方法,其特征在于,所述副本存放節(jié)點(diǎn)選擇子系統(tǒng)進(jìn)一步包含如下模塊: 判斷模塊,用于判斷本地節(jié)點(diǎn)的鄰居節(jié)點(diǎn)表中節(jié)點(diǎn)的總個(gè)數(shù)是否小于設(shè)定的副本節(jié)點(diǎn)個(gè)數(shù);如果小于則將結(jié)果反饋累加搜索模塊; 累加搜索模塊,當(dāng)收到判斷模塊的反饋信息時(shí)遞歸搜集本地節(jié)點(diǎn)的第二級鄰居節(jié)點(diǎn)表,以此類推,經(jīng)過遍 歷若干級鄰居節(jié)點(diǎn),最終使得搜集的鄰居節(jié)點(diǎn)的總個(gè)數(shù)達(dá)到一定規(guī)模,繼而為副本選擇提供一個(gè)比較大的節(jié)點(diǎn)選擇空間;和 確定最終副本存放節(jié)點(diǎn)的模塊,用于從搜集的所有鄰居節(jié)點(diǎn)中選擇設(shè)定個(gè)數(shù)的副本節(jié)點(diǎn),存放文件副本。
全文摘要
本發(fā)明提供一種基于P2P在線信息聚合的副本存儲(chǔ)方法及系統(tǒng),該方法用于選擇與本地節(jié)點(diǎn)同時(shí)在線概率高的鄰居節(jié)點(diǎn)作為文件副本存放節(jié)點(diǎn),所述方法包含P2P存儲(chǔ)系統(tǒng)中的每個(gè)節(jié)點(diǎn)分別搜集其鄰居節(jié)點(diǎn)的歷史在線信息,該搜集節(jié)點(diǎn)依據(jù)歷史在線信息預(yù)測其未來在線信息;當(dāng)P2P存儲(chǔ)系統(tǒng)中的某個(gè)本地節(jié)點(diǎn)需要存儲(chǔ)文件時(shí),該本地節(jié)點(diǎn)利用基于其鄰居節(jié)點(diǎn)的歷史在線信息和預(yù)測的未來在線信息獲取若干設(shè)定數(shù)目的與該本地節(jié)點(diǎn)同時(shí)在線的概率較高的鄰居節(jié)點(diǎn)存放文件副本;其中,所述鄰居節(jié)點(diǎn)包含一級以上的鄰居節(jié)點(diǎn),所述的一級鄰居節(jié)點(diǎn)為某節(jié)點(diǎn)的鄰居節(jié)點(diǎn),二級鄰居節(jié)點(diǎn)為某節(jié)點(diǎn)的鄰居節(jié)點(diǎn)的鄰居節(jié)點(diǎn)。本發(fā)明的存儲(chǔ)策略有效的提高P2P存儲(chǔ)系統(tǒng)的文件可靠性和可用性。
文檔編號H04L29/08GK103139226SQ20111037460
公開日2013年6月5日 申請日期2011年11月23日 優(yōu)先權(quán)日2011年11月23日
發(fā)明者王勁林, 宋軍, 尤佳莉, 蘇杭, 李曉林, 鄭鵬飛, 薛嬌, 呂陽 申請人:中國科學(xué)院聲學(xué)研究所, 北京中科華影傳媒技術(shù)有限公司