两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

一種分布式自適應(yīng)編碼存儲方法

文檔序號:7747501閱讀:160來源:國知局
專利名稱:一種分布式自適應(yīng)編碼存儲方法
技術(shù)領(lǐng)域
本發(fā)明涉及一種信息安全存儲領(lǐng)域的編碼存儲方法,特別涉及一種分布式自適應(yīng) 編碼存儲方法。
背景技術(shù)
在以數(shù)據(jù)為中心的信息時代,特別是近年來,數(shù)據(jù)呈現(xiàn)爆炸式增長,如何安全有效 的以較低存儲空間獲得數(shù)據(jù)的安全可用性是存儲領(lǐng)域面臨的重大問題。以較低的冗余度 安全可靠地保存數(shù)據(jù)是存儲領(lǐng)域在新世紀(jì)提出的挑戰(zhàn)性問題之一,如何提高存儲系統(tǒng)的可 持續(xù)容災(zāi)能力也成為業(yè)界研究的重點。目前,為提高系統(tǒng)的可靠性或性能,主要是采用復(fù)制 的方案,但是在大規(guī)模分布式系統(tǒng)中有效地實現(xiàn)共享數(shù)據(jù)的一致性是復(fù)制技術(shù)所面臨的主 要難題。同時,為提高系統(tǒng)的可靠性,對文件的多份復(fù)制大大提高了數(shù)據(jù)的冗余度,對于大 數(shù)據(jù)量存儲來講,大大的提高了數(shù)據(jù)的存儲成本,同時專用存儲設(shè)備較為昂貴,且不容易擴 展。

發(fā)明內(nèi)容
針對現(xiàn)有技術(shù)存在的問題,本發(fā)明的主要目的在于提供一種冗余度低,且適用于 存儲節(jié)點個數(shù)不確定的對等網(wǎng)絡(luò)或者自組織網(wǎng)絡(luò)中。為實現(xiàn)上述目的,本發(fā)明提供了一種分布式自適應(yīng)編碼存儲方法,應(yīng)用于分布式 系統(tǒng)中,該分布式自適應(yīng)編碼存儲方法包括如下步驟(1)檢測分布式系統(tǒng)中存儲節(jié)點的個數(shù);(2)根據(jù)系統(tǒng)中存儲節(jié)點的個數(shù)進行自適應(yīng)調(diào)整碼字,對需要存儲的文件進行自 適應(yīng)編碼;(3)將編碼后的文件按節(jié)點個數(shù)進行等分;(4)將等分后的文件以統(tǒng)一的文件封裝格式封裝成文件塊,各文件塊均包含編碼 塊、信息塊和校驗塊,所述編碼塊中包含碼字信息;(5)將封裝后的文件塊存儲至系統(tǒng)中的各節(jié)點;(6)當(dāng)某一節(jié)點發(fā)出文件需求請求,則檢測在線存儲節(jié)點并判斷節(jié)點是否完整;(7)若節(jié)點完整,則將所有在線存儲節(jié)點的信息塊發(fā)送至文件請求節(jié)點,按順序重 組獲得原文件;(8)若節(jié)點不完整,則利用仍在活動的在線存儲節(jié)點的文件塊譯碼獲取缺失的信 息塊,將譯碼出缺失的信息塊和現(xiàn)有的信息塊按順序重組獲得原文件;在存儲節(jié)點對丟失 的信息塊進行恢復(fù)后,再次利用自適應(yīng)編碼方法進行二次編碼和文件封裝以重新恢復(fù)丟失 的文件塊,并將重新恢復(fù)的文件塊按順序存儲在仍在活動的在線存儲節(jié)點上。其中,上述分布式自適應(yīng)編碼存儲方法的步驟之一“根據(jù)系統(tǒng)中存儲節(jié)點的個數(shù) 進行自適應(yīng)調(diào)整碼字,對需要存儲的文件進行自適應(yīng)編碼”具體包括如下步驟(1)分布式系統(tǒng)中存儲節(jié)點的個數(shù)為m,構(gòu)造一個參數(shù)為(n-t,n_l,t,(n_t) Xt/(n-1))的糾刪碼,使其碼字之間距離相等,即構(gòu)造參數(shù)為(n-t,n-1, t,(n-t) Xt/(n-1)) 的矩陣各行的數(shù)值為1的個數(shù)相等,各列的數(shù)值為1的個數(shù)也相等的碼字,保存為碼字 信息,其中n彡m,n>t,具體包括如下步驟①令n = m;②在1與n之間尋找t,使得 (n-t) Xt/(n-1)整除成立,且t興l,t興n ;③若不存在t使得(n_t) X t/(n_l)整除成立, 則讓n = n+l,并返回上述步驟②,直至存在t使得(n-t)Xt/(n-l)整除成立;④計算使得 f{t) 二 V(, _ I)2 + (“ - 02取最小值時的t,即此時n,t為所選擇參數(shù);⑤將(n-t) X (n-1)矩 陣A的第0列至第t-1列的所有元素賦值為1,其他元素賦值為0 ;⑥對列t彡j < n-1,計 算矩陣A第j列的數(shù)值為1的個數(shù),如果第j列的數(shù)值為1的個數(shù)小于(n-t) Xt/(n-l),必
然3aUj, = 1使得第j'列中數(shù)值為1的數(shù)量大于(n-t) Xt/(n-l),其中0彡j'
<n-l,且j'辛j,則賦值=1,aU], = 0 ;⑦重復(fù)上述步驟⑥,直到矩陣A每列中1的 個數(shù)均等于(n-t) Xt/(n-1);(2)將構(gòu)造出的矩陣A上的點隨機劃分為t個所含元素數(shù)相等的集合隊…Dh,校
驗塊可由如下公式得出 氣j = 式如n’s i = n-t…n-1,j = 0…n-1,其中,dHn_t),s為與 集合Di_(n_t)中的元素對應(yīng)的矩陣A中的點。上述分布式自適應(yīng)編碼存儲方法中涉及的編碼塊,除碼字信息外,還包括數(shù)據(jù)塊 大小、編碼塊大小、信息塊大小、校驗塊大小、數(shù)據(jù)塊標(biāo)號、擴展信息和分組信息,其中數(shù)據(jù) 塊大小等于編碼塊大小、數(shù)據(jù)塊大小和校驗塊大小之和,利用編碼塊大小、數(shù)據(jù)塊大小和校 驗塊大小可以分別獲取文件塊中的編碼塊、數(shù)據(jù)塊和校驗塊。上述分布式自適應(yīng)編碼存儲方法的步驟之一“若節(jié)點不完整,則利用仍在活動的 在線存儲節(jié)點的文件塊譯碼獲取缺失的信息塊”有多種實現(xiàn)方式如下第一種實現(xiàn)方式包括如下步驟(1)將所有在線存儲節(jié)點的文件塊發(fā)送至文件請求節(jié)點;(2)根據(jù)文件塊編碼塊中的碼字信息和校驗塊譯碼獲取缺失的信息塊。第二種實現(xiàn)方式包括如下步驟(1)檢測文件請求節(jié)點與各在線存儲節(jié)點間的網(wǎng)絡(luò)連接情況;(2)判斷文件請求節(jié)點與各在線存儲節(jié)點間網(wǎng)絡(luò)連接情況是否差別較大;(3)若判斷結(jié)果為否,則將所有在線存儲節(jié)點的文件塊發(fā)送至文件請求節(jié)點,根據(jù) 文件塊編碼塊中的碼字信息和校驗塊譯碼獲取缺失的信息塊;(4)若判斷結(jié)果為是,則計算恢復(fù)缺失信息塊所需的最少文件塊個數(shù)p,選出與文 件請求節(jié)點網(wǎng)絡(luò)連接最優(yōu)的P個在線存儲節(jié)點,將這P個最優(yōu)在線存儲節(jié)點的文件塊發(fā)送 至文件請求節(jié)點,根據(jù)文件塊編碼塊中的碼字信息和校驗塊譯碼獲取缺失的信息塊。第三種實現(xiàn)方式包括如下步驟(1)計算恢復(fù)缺失信息塊所需的最少文件塊個數(shù)p ;(2)檢測文件請求節(jié)點與各在線存儲節(jié)點間的網(wǎng)絡(luò)連接情況,并判斷文件請求節(jié) 點與各在線存儲節(jié)點間網(wǎng)絡(luò)連接情況是否差別較大;(3)若判斷結(jié)果為否,選出任意p個在線存儲節(jié)點,將這p個在線存儲節(jié)點的文 件塊發(fā)送至文件請求節(jié)點,根據(jù)文件塊編碼塊中的碼字信息和校驗塊譯碼獲取缺失的信息塊;(4)若判斷結(jié)果為是,選出與文件請求節(jié)點網(wǎng)絡(luò)連接最優(yōu)的p個在線存儲節(jié)點,將 這P個最優(yōu)在線存儲節(jié)點的文件塊發(fā)送至文件請求節(jié)點,根據(jù)文件塊編碼塊中的碼字信息 和校驗塊譯碼獲取缺失的信息塊。另外,當(dāng)判斷節(jié)點不完整后,若存在缺失信息塊的文件數(shù)量不止一個,可利用仍在 活動的在線存儲節(jié)點分別對存在缺失信息塊的文件進行恢復(fù),此時該負(fù)責(zé)對某一存在缺失 信息塊的文件進行恢復(fù)的在線存儲節(jié)點即為文件請求節(jié)點。上述分布式自適應(yīng)編碼存儲方法中涉及的步驟之一“根據(jù)文件塊編碼塊中的碼字 信息和校驗塊譯碼獲取缺失的信息塊”,當(dāng)存儲節(jié)點損壞的數(shù)量< t/2即可對缺失的信息塊 進行完全恢復(fù),該步驟具體包括如下步驟(1)將文件請求節(jié)點接收的所有文件塊中的校驗塊的狀態(tài)初始標(biāo)記為“可用”;(2)隨機選擇一個狀態(tài)為“可用,,的校驗塊\ j,檢查其所校驗的信息塊是否被刪 除,若其中沒有信息塊被刪除,則將該校驗塊的狀態(tài)標(biāo)記為“無用”,若其中有且僅有一個信 息塊被刪除,則同樣將該校驗塊的狀態(tài)標(biāo)記為“無用”,且該被刪除的信息塊由如下公式恢
復(fù)<',/= ,jd丨命0J 其中 i-(n-t)乒 i',s y,i = n-t…n-1,j = 0-n-l ;(3)重復(fù)步驟(2),直到所有校驗塊的狀態(tài)標(biāo)記為“無用”。本發(fā)明相對于現(xiàn)有技術(shù),(1)由于利用編碼方法實現(xiàn)文件的持久可用性存儲,以較 低的冗余度實現(xiàn)容災(zāi)節(jié)點數(shù)較高的存儲效果,且隨著存儲節(jié)點的增加,容災(zāi)能力也能隨之 提高;(2)由于使用的編碼方法可根據(jù)分布式系統(tǒng)中存儲節(jié)點的個數(shù)進行自適應(yīng)調(diào)整,存 儲節(jié)點之間具有等同的獲得文件的能力和權(quán)限,提高了系統(tǒng)的可擴展性和自適應(yīng)性,可適 用于存儲節(jié)點數(shù)高度不確定的對等網(wǎng)絡(luò)或自組織網(wǎng)絡(luò)中;(3)由于存儲節(jié)點具有自組織特 性,當(dāng)有存儲節(jié)點發(fā)生損毀時,系統(tǒng)可自動根據(jù)需求,利用剩余的在線存儲節(jié)點按照節(jié)點計 算及存儲負(fù)載均衡的原則,進行文件恢復(fù)和數(shù)據(jù)遷移,以實現(xiàn)系統(tǒng)的可持續(xù)容災(zāi)能力。


圖1為本發(fā)明分布式自適應(yīng)編碼存儲方法存儲過程的流程2為按照本發(fā)明分布式自適應(yīng)編碼存儲方法存儲到系統(tǒng)中的示意3為本發(fā)明分布式自適應(yīng)編碼存儲方法中的文件塊示意4為本發(fā)明分布式自適應(yīng)編碼存儲方法文件獲取過程第一實施例流程5為本發(fā)明分布式自適應(yīng)編碼存儲方法文件獲取過程第二實施例流程6為本發(fā)明分布式自適應(yīng)編碼存儲方法文件獲取過程第三實施例流程7為本發(fā)明分布式自適應(yīng)編碼存儲方法節(jié)點完整時文件獲取示意8為本發(fā)明分布式自適應(yīng)編碼存儲方法節(jié)點損毀時文件獲取第一實施例示意 9為本發(fā)明分布式自適應(yīng)編碼存儲方法節(jié)點損毀時文件獲取第二實施例示意 圖
具體實施例方式下面結(jié)合附圖,詳細(xì)說明本發(fā)明的具體實施方式
。本發(fā)明分布式自適應(yīng)編碼存儲方法應(yīng)用于分布式系統(tǒng)中,包括文件的存儲過程及 文件的獲取過程。下面結(jié)合圖1-圖3,詳細(xì)說明本發(fā)明分布式自適應(yīng)編碼存儲方法的文件存儲過 程。如圖1所示,該文件存儲過程主要包括如下步驟S11、檢測分布式系統(tǒng)中存儲節(jié)點的個數(shù),如圖2所示,為一個分布式系統(tǒng),存在m 個存儲節(jié)點通過計算機網(wǎng)絡(luò)相連接;S12、根據(jù)系統(tǒng)中存儲節(jié)點的個數(shù)進行自適應(yīng)調(diào)整碼字,對需要存儲的文件進行自 適應(yīng)編碼,具體包括如下步驟(1)分布式系統(tǒng)中存儲節(jié)點的個數(shù)為m,構(gòu)造一個參數(shù)為(n-t,n_l,t,(n_t) Xt/ (n-1))的糾刪碼,使其碼字之間距離相等,即構(gòu)造參數(shù)為(n-t,n-1, t,(n-t) X t/(n-1)) 的矩陣各行的數(shù)值為1的個數(shù)相等,各列的數(shù)值為1的個數(shù)也相等的碼字,保存為碼字 信息,其中n彡m,n > t,具體包括如下步驟①令n = m ;②在1與n之間尋找t,使得 (n-t) Xt/(n-l)整除成立,且t興l,t興n ;③若不存在t使得(n_t) Xt/(n-l)整除成立, 則讓n = n+1,并返回上述步驟②,直至存在t使得(n-t) Xt/(n-l)整除成立;④計算使得 /⑴= r)2取最小值時的t,即此時n,t為所選擇參數(shù);⑤將(n-t) X (n-1)矩 陣A的第0列至第t-1列的所有元素賦值為1,其他元素賦值為0 ;⑥對列t彡j < n-1,計 算矩陣A第j列的數(shù)值為1的個數(shù),如果第j列的數(shù)值為1的個數(shù)小于(n-t) Xt/(n-l),必
然二=使得第j'列中數(shù)值為!的數(shù)量大于(1!-0\^(11-1),其中0彡_]_'
<n-l,且j'辛j,則賦值=1,aU], = 0 ;⑦重復(fù)上述步驟⑥,直到矩陣A每列中1的 個數(shù)均等于(n-t) Xt/(n-1);(2)將構(gòu)造出的矩陣A上的點隨機劃分為t個所含元素數(shù)相等的集合隊…Dh,校
驗塊可由如下公式得出內(nèi)j 式i = n-t…n-1,j = 0…n-1,其中,dim.s為與
5=0 ?
集合Di_(n_t)中的元素對應(yīng)的矩陣A中的點。S13、將編碼后的文件按節(jié)點個數(shù)進行等分;S14、將等分后的文件以統(tǒng)一的文件封裝格式封裝成文件塊,如圖3所示,該封裝 后的文件塊共包含編碼塊、信息塊和校驗塊三部分,其中編碼塊按順序包括數(shù)據(jù)塊大小、 編碼塊大小、信息塊大小、校驗塊大小、數(shù)據(jù)塊標(biāo)號、擴展信息、碼字信息和分組信息這八部 分,數(shù)據(jù)塊大小等于編碼塊大小、數(shù)據(jù)塊大小和校驗塊大小之和,利用編碼塊大小、數(shù)據(jù)塊 大小和校驗塊大小可以分別獲取文件塊中的編碼塊、數(shù)據(jù)塊和校驗塊,擴展信息即為文件 塊后續(xù)利用預(yù)留的空間,碼字信息即為通過上述自適應(yīng)編碼方法后所形成的糾刪碼;信息 塊即對原文件按節(jié)點個數(shù)進行等分后形成;校驗塊為利用碼字信息和原文件,通過上述自 適應(yīng)編碼方法進行編碼后形成。S15、將封裝后的文件塊存儲至系統(tǒng)中的各節(jié)點。存儲后的結(jié)果如圖2所示,將某 一文件封裝后形成的文件塊分別存儲至存儲節(jié)點1,存儲節(jié)點2直至存儲節(jié)點m。當(dāng)然,該分 布式系統(tǒng)中可以存儲不止一個文件,每個文件都按相同的方法進行編碼、封裝、存儲,因此,每個存儲節(jié)點中可能存儲了不止一個文件塊,形成文件塊集合。下面結(jié)合圖4、圖7和圖8,詳細(xì)說明本發(fā)明分布式自適應(yīng)編碼存儲方法的文件獲 取過程第一實施例。如圖4所示,該文件的獲取過程主要包括如下步驟S41、某一節(jié)點發(fā)出文件需求請求,該文件請求節(jié)點可以是該分布式系統(tǒng)中的某一 存儲節(jié)點,也可以是分布式系統(tǒng)外的某一節(jié)點;S42、檢測在線存儲節(jié)點;S43、判斷節(jié)點是否完整,若節(jié)點完整,則至S44,否則,至S45 ;S44、將所有在線存儲節(jié)點的信息塊發(fā)送至文件請求節(jié)點(其中數(shù)據(jù)傳輸應(yīng)答協(xié) 議包括發(fā)送數(shù)據(jù)應(yīng)答控制字Reql為向響應(yīng)文件請求節(jié)點請求獲得編碼塊;發(fā)送數(shù)據(jù)應(yīng)答 控制字Req2為向響應(yīng)文件請求節(jié)點請求獲得信息塊;發(fā)送數(shù)據(jù)應(yīng)答控制字Req3為向響應(yīng) 文件請求節(jié)點請求獲得校驗塊;發(fā)送數(shù)據(jù)應(yīng)答控制字Req4為向響應(yīng)文件請求節(jié)點請求獲 得文件塊);S46、按順序重組獲取完整原文件。該節(jié)點完整時文件獲取示意圖可見圖7,由于在文件存儲階段,將原文件按存儲節(jié) 點的個數(shù)m等分成m個文件塊,每個文件塊均包含編碼塊、信息塊和校驗塊,而信息塊即是 對原文件按存儲節(jié)點個數(shù)進行等分后形成的,因此,當(dāng)存儲節(jié)點完整時,只需要將所有存儲 節(jié)點的信息塊部分通過網(wǎng)絡(luò)傳輸給文件請求節(jié)點,然后由文件請求節(jié)點將接收到的所有信 息塊按順序重組即可獲得完整的原文件。S45、將所有在線存儲節(jié)點的文件塊發(fā)送至文件請求節(jié)點;S451、根據(jù)文件塊編碼塊中的碼字信息和校驗塊譯碼獲取缺失的信息塊;S46、按順序重組獲取完整原文件。該節(jié)點不完整時文件獲取示意圖可見圖8,當(dāng)有一個或幾個存儲節(jié)點損壞時,可通 過其余存儲節(jié)點對缺失的信息塊進行恢復(fù),只需存儲節(jié)點損壞的數(shù)量k ^ t/2(t通過上述 自適應(yīng)編碼方法的步驟一得出)即可對缺失的信息塊進行完全恢復(fù)。如存儲節(jié)點的個數(shù)為
m,每個存儲節(jié)點都存有文件塊,包括文件塊1、文件塊2......文件塊m,當(dāng)存儲節(jié)點4發(fā)生
損壞時,即缺失文件塊4,該恢復(fù)方法為將所有在線存儲節(jié)點的文件塊通過網(wǎng)絡(luò)發(fā)送至文 件請求節(jié)點,該文件請求節(jié)點通過各文件塊中存儲的文件塊大小、編碼塊大小、信息塊大小 和校驗塊大小分別獲得各文件塊中的編碼塊、信息塊和校驗塊,再利用編碼塊中存儲的碼 字信息和校驗塊進行譯碼,從而獲得缺失的信息塊,將現(xiàn)有的信息塊和譯碼后重新獲得的 信息塊按順序重組即可獲得完整的原文件。另外,利用編碼塊中存儲的碼字信息和校驗塊進行譯碼,從而獲得缺失的信息塊 (當(dāng)糾刪碼陣列中存在k彡t/2列刪除錯,則可恢復(fù)所有的k列刪除錯)主要包括如下步 驟(1)將文件請求節(jié)點接收的所有文件塊中的校驗塊的狀態(tài)標(biāo)記為“可用”;(2)隨機選擇一個狀態(tài)為“可用,,的校驗塊\ j,檢查其所校驗的信息塊是否被刪 除,若其中沒有信息塊被刪除,則將該校驗塊的狀態(tài)標(biāo)記為“無用”,若其中有且僅有一個信 息塊被刪除,則同樣將該校驗塊的狀態(tài)標(biāo)記為“無用”,且該被刪除的信息塊由如下公式恢
η- -1
復(fù)々r =flu 十(思",. )其中 i-(n-t) ^i' ,s^j',i = n-t-n-1, j = Ο...η-l ;
(3)重復(fù)步驟(2),直到所有校驗塊的狀態(tài)標(biāo)記為“無用”。下面結(jié)合圖5、圖7、圖8和圖9,詳細(xì)說明本發(fā)明分布式自適應(yīng)編碼存儲方法的文 件獲取過程第二實施例。如圖5所示,該文件的獲取過程主要包括如下步驟S51、某一節(jié)點發(fā)出文件需求請求,該文件請求節(jié)點可以是該分布式系統(tǒng)中的某一 存儲節(jié)點,也可以是分布式系統(tǒng)外的某一節(jié)點;
S52、檢測在線存儲節(jié)點;S53、判斷存儲節(jié)點是否完整,若節(jié)點完整,則至S54,否則,至S55 ;S54、則將所有在線存儲節(jié)點的信息塊發(fā)送至文件請求節(jié)點;S56、按順序重組獲得完整的原文件。該節(jié)點完整時文件獲取的過程與第一實施例相同,該節(jié)點完整時文件獲取示意圖 可見圖7,即將所有存儲節(jié)點的信息塊部分通過網(wǎng)絡(luò)傳輸給文件請求節(jié)點,然后由文件請求 節(jié)點將接收到的所有信息塊按順序重組即可獲得完整的原文件。S55、檢測文件請求節(jié)點與各在線存儲節(jié)點間的網(wǎng)絡(luò)連接;S551、判斷文件請求節(jié)點與各在線存儲節(jié)點間網(wǎng)絡(luò)連接情況是否差別較大,若差 別較大,則至S552,若差別不大,則至S556 ;S552、計算恢復(fù)缺失信息塊所需的最少文件塊個數(shù)ρ,ρ由以下方式得出當(dāng)按照 本發(fā)明的分布式自適應(yīng)編碼存儲方法存儲到系統(tǒng)中后,若存儲節(jié)點的數(shù)量為m,則只需存儲 節(jié)點損壞的數(shù)量k ( t/2 (t通過上述自適應(yīng)編碼方法的步驟一得出)即可對缺失的信息塊 進行完全恢復(fù),因此若要恢復(fù)所有的信息塊,存儲節(jié)點損壞的最大數(shù)量為t/2,則恢復(fù)缺失 信息塊所需的最少文件塊的個數(shù)P = m-t/2 ;S553、進行網(wǎng)絡(luò)鏈路排序,即按照各在線存儲節(jié)點與文件請求節(jié)點的網(wǎng)絡(luò)連接情 況對各節(jié)點進行排序;S554、選出最優(yōu)的ρ個網(wǎng)絡(luò)連接的在線存儲節(jié)點;S555、將選中的ρ個最優(yōu)在線存儲節(jié)點的文件塊和其余在線存儲節(jié)點的信息塊發(fā) 送文件請求節(jié)點;S557、譯碼獲取缺失信息塊,即通過ρ個最優(yōu)在線存儲節(jié)點的文件塊對缺失的信 息塊進行恢復(fù),其譯碼過程與本發(fā)明分布式自適應(yīng)編碼存儲方法的文件獲取過程第一實施 例所指出的譯碼過程相同;S56、獲取完整原文件,即將通過ρ個最優(yōu)在線存儲節(jié)點的文件塊譯碼出的缺失的 信息塊和其余在線存儲節(jié)點傳輸?shù)男畔K按順序重組來獲得完整的原文件。該節(jié)點不完整,且文件請求節(jié)點與各在線存儲節(jié)點間網(wǎng)絡(luò)連接情況差別較大時, 文件獲取過程的示意圖可見圖9。因要恢復(fù)缺失的信息塊并不需要獲取所有在線存儲節(jié)點 的文件塊,而只需要獲取P個在線存儲節(jié)點的文件塊即可恢復(fù)所有缺失的信息塊,因此,為 了網(wǎng)絡(luò)負(fù)載平衡,選擇P個網(wǎng)絡(luò)連接情況最優(yōu)的P個網(wǎng)絡(luò)的在線存儲節(jié)點的文件塊來對缺 失的信息塊進行恢復(fù),而要獲取完整的原文件,只需再獲取其余在線存儲節(jié)點的信息塊按 順序重組即可。S556、所有在線存儲節(jié)點的文件塊發(fā)送文件請求節(jié)點;S557、譯碼獲取缺失信息塊;S56、獲取完整原文件。
該節(jié)點不完整,且文件請求節(jié)點與各在線存儲節(jié)點間網(wǎng)絡(luò)連接情況差別不大時, 其文件獲取過程的示意圖見圖8,與第一實施例中列舉的節(jié)點不完整時的文件獲取過程相 同。即將所有在線存儲節(jié)點的文件塊通過網(wǎng)絡(luò)發(fā)送至文件請求節(jié)點,該文件請求節(jié)點通過 各文件塊中存儲的文件塊大小、編碼塊大小、信息塊大小和校驗塊大小分別獲得各文件塊 中的編碼塊、信息塊和校驗塊,再利用編碼塊中存儲的碼字信息和校驗塊進行譯碼,從而獲 得缺失的信息塊,將現(xiàn)有的信息塊和譯碼后重新獲得的信息塊按順序重組即可獲得完整的 原文件。下面結(jié)合圖6、圖7和圖9,詳細(xì)說明本發(fā)明分布式自適應(yīng)編碼存儲方法的文件獲 取過程第三實施例。如圖9所示,該文件的獲取過程主要包括如下步驟S61、某一節(jié)點發(fā)出文件需求請求,該文件請求節(jié)點可以是該分布式系統(tǒng)中的某一 存儲節(jié)點,也可以是分布式系統(tǒng)外的某一節(jié)點;S62、檢測在線存儲節(jié)點;S63、判斷存儲節(jié)點是否完整,若節(jié)點完整,則至S64,否則,至S65 ;S64、將所有在線存儲節(jié)點的信息塊發(fā)送至文件請求節(jié)點;S67、按順序重組獲得完整的原文件。該節(jié)點完整時文件獲取的過程與第一實施例和第二實施例相同,該節(jié)點完整時文 件獲取示意圖可見圖7,即將所有存儲節(jié)點的信息塊部分通過網(wǎng)絡(luò)傳輸給文件請求節(jié)點,然 后由文件請求節(jié)點將接收到的所有信息塊按順序重組即可獲得完整的原文件。S65、計算恢復(fù)缺失信息塊所需的最少文件塊個數(shù)p,p = m-t/2,與第二實施例中 列舉的計算方法相同;S66、檢測文件請求節(jié)點與各在線存儲節(jié)點間的網(wǎng)絡(luò)連接;S661、判斷文件請求節(jié)點與各在線存儲節(jié)點間網(wǎng)絡(luò)連接情況是否差別較大,若差 別較大,則至S662,若差別不大,則至S665 ;S662、進行網(wǎng)絡(luò)鏈路排序,即按照各在線存儲節(jié)點與文件請求節(jié)點的網(wǎng)絡(luò)連接情 況對各節(jié)點進行排序;S663、選出最優(yōu)的p個網(wǎng)絡(luò)連接的在線存儲節(jié)點;S664、將選中的p個最優(yōu)在線存儲節(jié)點的文件塊和其余在線存儲節(jié)點的信息塊發(fā) 送文件請求節(jié)點;S666、譯碼獲取缺失信息塊,即通過p個最優(yōu)在線存儲節(jié)點的文件塊對缺失的信 息塊進行恢復(fù),其譯碼過程與本發(fā)明分布式自適應(yīng)編碼存儲方法的文件獲取過程第一實施 例所指出的譯碼過程相同;S67、獲取完整原文件,即將通過p個最優(yōu)在線存儲節(jié)點的文件塊譯碼出的缺失的 信息塊和其余在線存儲節(jié)點傳輸?shù)男畔K按順序重組來獲得完整的原文件。該節(jié)點不完整,且文件請求節(jié)點與各在線存儲節(jié)點間網(wǎng)絡(luò)連接情況差別較大時, 文件獲取過程的示意圖可見圖9。與第二實施例中列舉的節(jié)點不完整,且文件請求節(jié)點與各 在線存儲節(jié)點間網(wǎng)絡(luò)連接情況差別較大時的文件獲取過程大致相同,選擇P個網(wǎng)絡(luò)連接情 況最優(yōu)的P個網(wǎng)絡(luò)的在線存儲節(jié)點的文件塊來對缺失的信息塊進行恢復(fù),再獲取其余在線 存儲節(jié)點的信息塊按順序重組即可獲取完整的原文件。S665、將任意的p個在線存儲節(jié)點的文件塊和其余在線存儲節(jié)點的信息塊發(fā)送文件請求節(jié)點;S666、譯碼獲取缺失信息塊,即通過任意ρ個在線存儲節(jié)點的文件塊對缺失的信 息塊進行恢復(fù),其譯碼過程與本發(fā)明分布式自適應(yīng)編碼存儲方法的文件獲取過程第一實施 例所指出的譯碼過程相同;S67、獲取完整原文件,即將通過任意ρ個在線存儲節(jié)點的文件塊譯碼出的缺失的 信息塊和其余在線存儲節(jié)點傳輸?shù)男畔K按順序重組來獲得完整的原文件。當(dāng)節(jié)點不完整,且文件請求節(jié)點與各在線存儲節(jié)點間網(wǎng)絡(luò)連接情況差別不大時, 文件獲取過程的示意圖可見圖9。因只需要獲取P個在線存儲節(jié)點的文件塊即可恢復(fù)所有 缺失的信息塊,因此,并不需要獲取所有在線存儲節(jié)點的文件塊,只需獲取P個在線存儲節(jié) 點的文件塊即可,由于文件請求節(jié)點與各在線存儲節(jié)點間網(wǎng)絡(luò)連接情況差別不大,所以不 需要進行網(wǎng)絡(luò)鏈路排序,只需選擇任意P個在線存儲節(jié)點的文件塊譯碼出缺失的信息塊, 然后與其余在線存儲節(jié)點的信息塊按順序重組獲取完整的原文件。以上列舉了本發(fā)明分布式自適應(yīng)編碼存儲方法的文件獲取過程第一、第二和第三 實施例。當(dāng)存儲節(jié)點完整時,這三個實施例的獲取方式相同;而當(dāng)存儲節(jié)點不完整時,可由 不同的方式對缺失的信息塊進行恢復(fù),最基本的方法是利用所有在線存儲節(jié)點的文件塊進 行缺失信息塊的恢復(fù),這樣即會占用較多的網(wǎng)絡(luò)傳輸時間;而事實上并不需要所有的文件 塊,而只需要P個文件塊即可對所有缺失信息塊進行恢復(fù),因此,判斷文件請求節(jié)點與各在 線存儲節(jié)點間網(wǎng)絡(luò)連接情況是否差別較大,若差別較大,則選擇最優(yōu)的P個在線存儲節(jié)點 的文件塊進行缺失信息塊的恢復(fù),若差別不大,則任意選擇P個在線存儲節(jié)點的文件塊進 行缺失信息塊的恢復(fù),這樣可實現(xiàn)網(wǎng)絡(luò)負(fù)載平衡,使網(wǎng)絡(luò)傳輸時間最小化。另外,當(dāng)判斷節(jié)點不完整后,若分布式系統(tǒng)中存儲的文件數(shù)量不止一個,則此時存 在缺失信息塊的文件數(shù)量也不止一個,為了實現(xiàn)系統(tǒng)中各剩余節(jié)點的計算及存儲負(fù)載平 衡,可利用剩余的在線存儲節(jié)點分別對存在缺失信息塊的文件進行恢復(fù),此時該負(fù)責(zé)對某 一缺失信息塊的文件進行恢復(fù)的在線存儲節(jié)點即為文件請求節(jié)點。如節(jié)點毀壞前分布式系 統(tǒng)有m個存儲節(jié)點,分別為Iv ki;…I1,當(dāng)失去節(jié)點數(shù)為1(1 <m/4),則剩余節(jié)點為k1; k1+1,…I1 ;若此時在系統(tǒng)中已存儲的文件數(shù)為h,分別為&,fV-f^,則丟失的文件塊為 hX 1,由于在文件恢復(fù)過程需要進行大量的與或運算及需要對恢復(fù)出的hX 1個文件塊進 行二次分布存儲,為實現(xiàn)系統(tǒng)內(nèi)各個節(jié)點的計算及存儲負(fù)載平衡,則利用剩余的k1;k1+1,…
個節(jié)點,順序依次對h個文件的缺失信息塊進行恢復(fù),如Ic1對&缺失的信息塊進行恢 復(fù),k1+1對&缺失的信息塊進行恢復(fù),依次類推。在此期間,若用戶或者系統(tǒng)節(jié)點發(fā)送文件 需求請求時,則對此文件缺失信息塊的恢復(fù)進程強制放在其余任務(wù)的前端,對該文件的缺 失信息塊首先進行恢復(fù)。下面以Ic1對&缺失的信息塊進行恢復(fù)為例,列舉恢復(fù)缺失信息塊的過程(1)檢測文件請求節(jié)點Ic1與各在線存儲節(jié)點間的網(wǎng)絡(luò)連接;(2)計算恢復(fù)文件&缺失信息塊所需的最少文件塊個數(shù)p,p的計算方法與本發(fā)明 分布式自適應(yīng)編碼存儲方法的文件獲取過程第二實施例列舉的計算方法相同;(3)判斷文件請求節(jié)點Ic1與各在線存儲節(jié)點間網(wǎng)絡(luò)連接情況是否差別較大,若差 別較大,則進行網(wǎng)絡(luò)鏈路排序,對各個鏈路發(fā)送測試數(shù)據(jù)包進行數(shù)據(jù)通路測評,選出最優(yōu)的 P個網(wǎng)絡(luò)連接的在線存儲節(jié)點,將選中的P個最優(yōu)在線存儲節(jié)點的文件塊發(fā)送文件請求節(jié)點;若差別不大,則選取任意P個在線存儲節(jié)點的文件塊發(fā)送文件請求節(jié)點Ii1 ;(4)譯碼獲取缺失信息塊,即通過ρ個在線存儲節(jié)點的文件塊對缺失的信息塊進 行恢復(fù),其譯碼過程與本發(fā)明分布式自適應(yīng)編碼存儲方法的文件獲取過程第一實施例所指 出的譯碼過程相同。以上列舉了存儲節(jié)點Ic1對&缺失的信息塊進行恢復(fù)的方法,其余存儲節(jié)點對文件 丟失的信息塊進行恢復(fù)的方法與此相同。在存儲節(jié)點對丟失的文件進行恢復(fù)后,根據(jù)標(biāo)記和丟失的存儲節(jié)點和文件塊,再 次利用自適應(yīng)編碼方法對恢復(fù)后的文件進行二次編碼(碼字信息與首次編碼的碼字信息 相同),重新獲得丟失的校驗塊,按照統(tǒng)一的文件封裝格式,依據(jù)各個丟失的文件塊尺寸進 行重新封裝,即可重新恢復(fù)丟失的文件塊,之后將重新恢復(fù)的文件塊按順序存儲在目前仍 在活動的存儲節(jié)點上。例如存儲節(jié)點&重新恢復(fù)出的文件&的1個文件塊后,分別均等按 順序存儲在k1;k1+1,…‘、上。
利用以上介紹的方法,將在本存儲節(jié)點上還原出的1個文件塊,順序存儲在以本 存儲節(jié)點為起點的1個存儲節(jié)點上。這樣被恢復(fù)的hx 1個文件塊將均勻分布,并存儲在系 統(tǒng)中仍在活動的m-1個節(jié)點上。當(dāng)損毀的存儲節(jié)點恢復(fù)工作時,暫時存儲在其余節(jié)點上的 文件塊將剪切到新加入的節(jié)點上,從而實現(xiàn)文件的可持續(xù)性容錯能力。以上介紹了分布式自適應(yīng)編碼存儲方法,但本發(fā)明并不限定于以上實施例,任何 未脫離本發(fā)明技術(shù)方案,即僅僅對其進行本領(lǐng)域普通技術(shù)人員所知悉的改進或變更,均屬 于本發(fā)明的保護范圍之內(nèi)。
權(quán)利要求
一種分布式自適應(yīng)編碼存儲方法,應(yīng)用于分布式系統(tǒng)中,其特征在于,該方法包括如下步驟檢測分布式系統(tǒng)中存儲節(jié)點的個數(shù);根據(jù)系統(tǒng)中存儲節(jié)點的個數(shù)進行自適應(yīng)調(diào)整碼字,對需要存儲的文件進行自適應(yīng)編碼;將編碼后的文件按存儲節(jié)點個數(shù)進行等分;將等分后的文件以統(tǒng)一的文件封裝格式封裝成文件塊,各文件塊均包含編碼塊、信息塊和校驗塊,所述編碼塊中包含碼字信息;將封裝后的文件塊存儲至系統(tǒng)中的各存儲節(jié)點;當(dāng)某一節(jié)點發(fā)出文件需求請求,則檢測在線存儲節(jié)點并判斷存儲節(jié)點是否完整;若節(jié)點完整,則將所有在線存儲節(jié)點的信息塊發(fā)送至文件請求節(jié)點,按順序重組獲得原文件;若節(jié)點不完整,則利用在線存儲節(jié)點的文件塊譯碼獲取缺失的信息塊,將譯碼出缺失的信息塊和現(xiàn)有的信息塊按順序重組獲得原文件;在線存儲節(jié)點對丟失的信息塊進行恢復(fù)后,再次利用自適應(yīng)編碼方法進行二次編碼和文件封裝以重新恢復(fù)丟失的文件塊,并將重新恢復(fù)的文件塊按順序存儲至在線存儲節(jié)點上。
2.根據(jù)權(quán)利要求1所述的分布式自適應(yīng)編碼存儲方法,其特征在于,其中步驟根據(jù)系 統(tǒng)中存儲節(jié)點的個數(shù)進行自適應(yīng)調(diào)整碼字,對需要存儲的文件進行自適應(yīng)編碼具體包括如 下步驟(1)分布式系統(tǒng)中存儲節(jié)點的個數(shù)為m,構(gòu)造一個參數(shù)為(n-t,n-1,t,(n-t)Xt/ (n-1))的糾刪碼,使其碼字之間距離相等,即構(gòu)造參數(shù)為(n-t, n-1, t,(n-t) X t/(n-1)) 的矩陣各行的數(shù)值為1的個數(shù)相等,各列的數(shù)值為1的個數(shù)也相等的碼字,保存為碼字 信息,其中n彡m,n > t,具體包括如下步驟①令n = m ;②在1與n之間尋找t,使得 (n-t) Xt/(n-1)整除成立,且t興l,t興n ;③若不存在t使得(n_t) Xt/(n_l)整除成立, 則讓n = n+l,并返回上述步驟②,直至存在t使得(n-t)Xt/(n-l)整除成立;④計算使得 /⑴= 取最小值時的t,即此時n,t為所選擇參數(shù);⑤將(n-t) X (n-1)矩 陣A的第0列至第t-1列的所有元素賦值為1,其他元素賦值為0 ;⑥對列t彡j < n-1,計 算矩陣A第j列的數(shù)值為1的個數(shù),如果第j列的數(shù)值為1的個數(shù)小于(n-t) Xt/(n-l),必 然<formula>formula see original document page 2</formula>使得第j'列中數(shù)值為1的數(shù)量大于<formula>formula see original document page 2</formula>則賦值 ay = 1,aur = 0 ;⑦重復(fù)上述步驟⑥,直到矩陣A每列中1的個數(shù)均等于(n-t) Xt/(n-1);(2)將構(gòu)造出的矩陣A上的點隨機劃分為t個所含元素數(shù)相等的集合隊…Dt_i,校驗塊可由如下公式得出<formula>formula see original document page 2</formula>,其中,為與集合Di_(n_t)中的元素對應(yīng)的矩陣A中的點。
3.根據(jù)權(quán)利要求2所述的分布式自適應(yīng)編碼存儲方法,其特征在于,除碼字信息外,所 述編碼塊還包括數(shù)據(jù)塊大小、編碼塊大小、信息塊大小、校驗塊大小、數(shù)據(jù)塊標(biāo)號、擴展信 息和分組信息,其中數(shù)據(jù)塊大小等于編碼塊大小、數(shù)據(jù)塊大小和校驗塊大小之和,利用編碼塊大小、數(shù)據(jù)塊大小和校驗塊大小可以分別獲取文件塊中的編碼塊、數(shù)據(jù)塊和校驗塊。
4.根據(jù)權(quán)利要求3所述的分布式自適應(yīng)編碼存儲方法,其特征在于,若節(jié)點不完整,則 利用在線存儲節(jié)點的文件塊譯碼獲取缺失的信息塊這一步驟具體包括如下步驟將所有在線存儲節(jié)點的文件塊發(fā)送至文件請求節(jié)點;根據(jù)文件塊編碼塊中的碼字信息 和校驗塊譯碼獲取缺失的信息塊。
5.根據(jù)權(quán)利要求3所述的分布式自適應(yīng)編碼存儲方法,其特征在于,若節(jié)點不完整,則 利用在線存儲節(jié)點的文件塊譯碼獲取缺失的信息塊這一步驟具體包括如下步驟檢測文件請求節(jié)點與各在線存儲節(jié)點間的網(wǎng)絡(luò)連接情況;判斷文件請求節(jié)點與各在線存儲節(jié)點間網(wǎng)絡(luò)連接情況是否差別較大;若判斷結(jié)果為否,則將所有在線存儲節(jié)點的文件塊發(fā)送至文件請求節(jié)點,根據(jù)文件塊 編碼塊中的碼字信息和校驗塊譯碼獲取缺失的信息塊;若判斷結(jié)果為是,則計算恢復(fù)缺失信息塊所需的最少文件塊個數(shù)P,選出與文件請求節(jié) 點網(wǎng)絡(luò)連接最優(yōu)的P個在線存儲節(jié)點,將這P個最優(yōu)在線存儲節(jié)點的文件塊發(fā)送至文件請 求節(jié)點,根據(jù)文件塊編碼塊中的碼字信息和校驗塊譯碼獲取缺失的信息塊。
6.根據(jù)權(quán)利要求3所述的分布式自適應(yīng)編碼存儲方法,其特征在于,若節(jié)點不完整,則 利用在線存儲節(jié)點的文件塊譯碼獲取缺失的信息塊這一步驟具體包括如下步驟計算恢復(fù)缺失信息塊所需的最少文件塊個數(shù)P ;檢測文件請求節(jié)點與各在線存儲節(jié)點間的網(wǎng)絡(luò)連接情況,并判斷文件請求節(jié)點與各在 線存儲節(jié)點間網(wǎng)絡(luò)連接情況是否差別較大;若判斷結(jié)果為否,選出任意p個在線存儲節(jié)點,將這p個在線存儲節(jié)點的文件塊發(fā)送至 文件請求節(jié)點,根據(jù)文件塊編碼塊中的碼字信息和校驗塊譯碼獲取缺失的信息塊;若判斷結(jié)果為是,選出與文件請求節(jié)點網(wǎng)絡(luò)連接最優(yōu)的P個在線存儲節(jié)點,將這P個最 優(yōu)在線存儲節(jié)點的文件塊發(fā)送至文件請求節(jié)點,根據(jù)文件塊編碼塊中的碼字信息和校驗塊 譯碼獲取缺失的信息塊。
7.根據(jù)權(quán)利要求4 6任一所述的分布式自適應(yīng)編碼存儲方法,其特征在于,當(dāng)判斷節(jié)點不完整后,若存在缺失信息塊的文件數(shù)量不止一個,可利用在線的存儲節(jié) 點分別對存在缺失信息塊的文件進行恢復(fù),此時該負(fù)責(zé)對某一存在缺失信息塊的文件進行 恢復(fù)的在線存儲節(jié)點即為文件請求節(jié)點。
8.根據(jù)權(quán)利要求7所述的分布式自適應(yīng)編碼存儲方法,其特征在于,存儲節(jié)點損壞的 數(shù)量< t/2即可對缺失的信息塊進行完全恢復(fù)。
9.根據(jù)權(quán)利要求8所述的分布式自適應(yīng)編碼存儲方法,其特征在于,所述步驟根據(jù)文 件塊編碼塊中的碼字信息和校驗塊譯碼獲取缺失的信息塊具體包括如下步驟(1)將文件請求節(jié)點接收的所有文件塊中的校驗塊的狀態(tài)初始標(biāo)記為“可用”;(2)隨機選擇一個狀態(tài)為“可用,,的校驗塊\j,檢查其所校驗的信息塊是否被刪除, 若其中沒有信息塊被刪除,則將該校驗塊的狀態(tài)標(biāo)記為“無用”,若其中有且僅有一個信息 塊被刪除,則同樣將該校驗塊的狀態(tài)標(biāo)記為“無用”,且該被刪除的信息塊由如下公式恢復(fù)dr/=aue("S 代_( _,),J ,其中 i-(n-t)乒 i',s 興 j',i = n_t…n_l,j = 0...n_l ;(3)重復(fù)步驟(2),直到所有校驗塊的狀態(tài)標(biāo)記為“無用”。
全文摘要
本發(fā)明公開了一種分布式自適應(yīng)編碼存儲方法,該方法包含如下步驟檢測分布式系統(tǒng)中存儲節(jié)點的個數(shù);根據(jù)系統(tǒng)中存儲節(jié)點的個數(shù)進行自適應(yīng)調(diào)整碼字,對需要存儲的文件進行自適應(yīng)編碼;將編碼后的文件按節(jié)點個數(shù)進行等分;將等分后的文件以統(tǒng)一的文件封裝格式封裝成文件塊;將封裝后的文件塊存儲至系統(tǒng)中的各節(jié)點;當(dāng)某一節(jié)點發(fā)出文件需求請求,則檢測在線存儲節(jié)點并判斷節(jié)點是否完整;若節(jié)點不完整,則利用在線存儲節(jié)點的文件塊譯碼獲取缺失的信息塊,將譯碼出缺失的信息塊和現(xiàn)有的信息塊按順序重組獲得原文件。本發(fā)明相對于現(xiàn)有技術(shù),由于利用編碼方法實現(xiàn)文件的存儲,以較低的冗余度實現(xiàn)容災(zāi)節(jié)點數(shù)較高的存儲效果。
文檔編號H04L29/06GK101834899SQ20101015965
公開日2010年9月15日 申請日期2010年4月29日 優(yōu)先權(quán)日2010年4月29日
發(fā)明者唐聃, 孫宣東, 方佳嘉, 王一丁, 王曉京, 王謙, 肖宜龍, 蔣海波, 蔡紅亮, 陳崢 申請人:中科院成都信息技術(shù)有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
青龙| 微博| 宜黄县| 七台河市| 蚌埠市| 东明县| 上虞市| 石台县| 蚌埠市| 延安市| 泰和县| 阿巴嘎旗| 建德市| 道真| 日土县| 拉萨市| 玛多县| 论坛| 清河县| 双鸭山市| 佛坪县| 钦州市| 大关县| 清镇市| 石林| 金华市| 柳州市| 大新县| 遵义县| 铁岭县| 克拉玛依市| 大厂| 长汀县| 女性| 正蓝旗| 黄浦区| 抚松县| 宜兰市| 什邡市| 南乐县| 濮阳市|