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

一種利用網(wǎng)絡(luò)拓?fù)湫畔⒌暮?jiǎn)單再生碼修復(fù)方法

文檔序號(hào):10569806閱讀:275來(lái)源:國(guó)知局
一種利用網(wǎng)絡(luò)拓?fù)湫畔⒌暮?jiǎn)單再生碼修復(fù)方法
【專(zhuān)利摘要】本發(fā)明公開(kāi)一種利用網(wǎng)絡(luò)拓?fù)湫畔⒌暮?jiǎn)單再生碼修復(fù)方法,具體步驟為:1、根據(jù)失效節(jié)點(diǎn)所在的分布式存儲(chǔ)系統(tǒng)以及應(yīng)用的簡(jiǎn)單再生碼配置,獲取系統(tǒng)使用的簡(jiǎn)單再生碼編碼參數(shù)(n,k,f),由待修復(fù)節(jié)點(diǎn)、修復(fù)參與節(jié)點(diǎn)所構(gòu)成的存儲(chǔ)節(jié)點(diǎn)集合以及存儲(chǔ)節(jié)點(diǎn)集合中各個(gè)節(jié)點(diǎn)間的鏈路集合;2、構(gòu)建修復(fù)網(wǎng)絡(luò)G(N,E);3、根據(jù)步驟二中建立的修復(fù)網(wǎng)絡(luò),利用并行修復(fù)樹(shù)構(gòu)建算法構(gòu)建針對(duì)所有f+1個(gè)丟失數(shù)據(jù)塊的f+1個(gè)并行修復(fù)樹(shù)Fi(1≤i≤f+1);4、對(duì)步驟三中得到的修復(fù)樹(shù)Fi(1≤i≤f+1)進(jìn)行對(duì)數(shù)據(jù)塊的修復(fù)。本發(fā)明通過(guò)利用網(wǎng)絡(luò)鏈路帶寬信息與傳輸路徑中間節(jié)點(diǎn)的編解碼能力對(duì)簡(jiǎn)單再生碼修復(fù)過(guò)程進(jìn)行優(yōu)化,構(gòu)建針對(duì)特定丟失數(shù)據(jù)塊的樹(shù)型修復(fù)路徑,使得數(shù)據(jù)塊修復(fù)過(guò)程能合理使用高帶寬鏈路,降低修復(fù)時(shí)延。
【專(zhuān)利說(shuō)明】
一種利用網(wǎng)絡(luò)拓?fù)湫畔⒌暮?jiǎn)單再生碼修復(fù)方法
技術(shù)領(lǐng)域
[0001] 本發(fā)明涉及分布式存儲(chǔ)和網(wǎng)絡(luò)編碼領(lǐng)域,特別涉及一種利用網(wǎng)絡(luò)拓?fù)湫畔⒌暮?jiǎn)單 再生碼修復(fù)方法。
【背景技術(shù)】
[0002] 隨著大數(shù)據(jù)技術(shù)的興起,大規(guī)模數(shù)據(jù)存儲(chǔ)作為大數(shù)據(jù)技術(shù)的關(guān)鍵技術(shù)之一,得到 越來(lái)越多的重視。分布式存儲(chǔ)系統(tǒng)大多部署在廉價(jià)的商用機(jī)器上,系統(tǒng)中的節(jié)點(diǎn)失效是一 種常態(tài)。
[0003] 為了保證系統(tǒng)中數(shù)據(jù)的可靠性,需要為分布式存儲(chǔ)系統(tǒng)引入存儲(chǔ)冗余策略。典型 的存儲(chǔ)冗余策略為多副本策略和里德-所羅門(mén)編碼。網(wǎng)絡(luò)編碼技術(shù)于2000年被提出,它的核 心思想是網(wǎng)絡(luò)中的各個(gè)節(jié)點(diǎn)不僅僅具有路由功能,還可對(duì)節(jié)點(diǎn)接受到的數(shù)據(jù)進(jìn)行線(xiàn)性或非 線(xiàn)性的編碼處理然后將編碼后的數(shù)據(jù)轉(zhuǎn)發(fā)出去。利用網(wǎng)絡(luò)編碼,可以達(dá)到數(shù)據(jù)多播路由的 理論最大流界,提高數(shù)據(jù)傳輸效率和網(wǎng)路帶寬利用率。
[0004] 基于網(wǎng)絡(luò)編碼的存儲(chǔ)冗余策略被引入到分布式存儲(chǔ)系統(tǒng)中,利用具有MDS性質(zhì)的 編碼保障數(shù)據(jù)可靠性,并針對(duì)節(jié)點(diǎn)修復(fù)的網(wǎng)絡(luò)開(kāi)銷(xiāo)與磁盤(pán)I/O開(kāi)銷(xiāo)做出優(yōu)化,主要包括再生 碼(Regenerating Code)與局部可修復(fù)碼(Locally Repairable Code)。
[0005] 簡(jiǎn)單再生碼作為局部可修復(fù)碼的一種,具有容錯(cuò)能力高、節(jié)點(diǎn)修復(fù)時(shí)磁盤(pán)I/O負(fù)載 低等特點(diǎn)。目前對(duì)簡(jiǎn)單再生碼的討論主要集中在編碼理論上:在簡(jiǎn)單再生碼中節(jié)點(diǎn)的恢復(fù) 過(guò)程中,丟失數(shù)據(jù)塊恢復(fù)時(shí)所需的參與數(shù)據(jù)塊都是通過(guò)直接鏈路傳遞給失效節(jié)點(diǎn)。失效節(jié) 點(diǎn)在接收到特定參與數(shù)據(jù)塊后進(jìn)行異或運(yùn)算,恢復(fù)出丟失數(shù)據(jù)塊。這種節(jié)點(diǎn)修復(fù)過(guò)程忽略 了網(wǎng)絡(luò)的拓?fù)湫畔⑴c鏈路帶寬信息。

【發(fā)明內(nèi)容】

[0006] 發(fā)明目的:為了克服現(xiàn)有技術(shù)中存在的不足,本發(fā)明提供一種利用網(wǎng)絡(luò)拓?fù)湫畔?構(gòu)造并行樹(shù)型修復(fù)路徑的針對(duì)簡(jiǎn)單再生碼的修復(fù)方法。
[0007] 技術(shù)方案:為解決上述技術(shù)問(wèn)題,本發(fā)明提供了一種利用網(wǎng)絡(luò)拓?fù)湫畔⒌暮?jiǎn)單再 生碼修復(fù)方法,數(shù)據(jù)修復(fù)的具體步驟如下:
[0008] 步驟一:根據(jù)失效節(jié)點(diǎn)所在的分布式存儲(chǔ)系統(tǒng)以及應(yīng)用的簡(jiǎn)單再生碼配置,獲取 系統(tǒng)使用的簡(jiǎn)單再生碼編碼參數(shù)(n,k,f),由待修復(fù)節(jié)點(diǎn)、修復(fù)參與節(jié)點(diǎn)所構(gòu)成的存儲(chǔ)節(jié)點(diǎn) 集合以及存儲(chǔ)節(jié)點(diǎn)集合中各個(gè)節(jié)點(diǎn)間的鏈路集合;
[0009 ]步驟二:構(gòu)建修復(fù)網(wǎng)絡(luò)G (N,E ),其中N為節(jié)點(diǎn)集合由待修復(fù)節(jié)點(diǎn)和參與節(jié)點(diǎn)組成, 滿(mǎn)足IN| = 2f+1,f+1個(gè)節(jié)點(diǎn)集合Vi(1 <f+1),集合Vi代表待修復(fù)節(jié)點(diǎn)上第i個(gè)丟失數(shù)據(jù)塊 修復(fù)所需的參與節(jié)點(diǎn)集合為鏈路集合,滿(mǎn)足|E|=f(2f+l),N中每對(duì)節(jié)點(diǎn)之間構(gòu) 建一條鏈路;E中的每條鏈路都關(guān)聯(lián)一個(gè)帶寬C(e),e GE;
[0010]步驟三:根據(jù)步驟二中建立的修復(fù)網(wǎng)絡(luò),利用并行修復(fù)樹(shù)構(gòu)建算法構(gòu)建針對(duì)所有f +1個(gè)丟失數(shù)據(jù)塊的f +1個(gè)并行修復(fù)樹(shù)Fi (K i < f +1);
[0011]步驟四:對(duì)步驟三中得到的修復(fù)樹(shù)FKKi彡f+1)進(jìn)行對(duì)數(shù)據(jù)塊的修復(fù)。
[0012]其中,步驟三中構(gòu)建修復(fù)樹(shù)Fi (1 < f +1)的具體步驟如下:
[0013]步驟3.1:已修復(fù)數(shù)據(jù)塊數(shù)量為m,對(duì)已修復(fù)的數(shù)據(jù)塊初始化為0,代表沒(méi)有數(shù)據(jù)塊 得到修復(fù),已構(gòu)建成功的修復(fù)樹(shù)集合F,F(xiàn)初始化為空;
[0014]步驟3.2:丟失數(shù)據(jù)塊為f+1,判斷丟失的數(shù)據(jù)塊f+1與已修復(fù)數(shù)據(jù)塊是否相等,如 果不相等進(jìn)入步驟3.3,如果相等證明修復(fù)樹(shù)集合FKlSiSf+l)構(gòu)建成功;
[0015]步驟3.3:對(duì)剩余數(shù)據(jù)塊生成m-m條最優(yōu)修復(fù)樹(shù)0Tj(l< j彡f+1-m);
[0016]步驟3.4 :對(duì)最優(yōu)修復(fù)樹(shù)0T j (1彡j彡f +1 -m)按規(guī)則進(jìn)行排序;
[0017]步驟3.5:為優(yōu)先級(jí)最高的修復(fù)樹(shù)OTs分配鏈路瓶頸帶寬Bs;
[0018] 步驟3.6:調(diào)整鏈路帶寬對(duì)于OTs經(jīng)過(guò)的鏈路e,C (e) = C (e) -Bs;
[0019]步驟3.7 :對(duì)應(yīng)數(shù)據(jù)塊的修復(fù)樹(shù)OTs的修復(fù)樹(shù)構(gòu)建完成,將OTs加入到修復(fù)樹(shù)集合F 中,已修復(fù)數(shù)據(jù)塊m=m+l,并針對(duì)m再次進(jìn)入步驟3.2與丟失數(shù)據(jù)塊f+1進(jìn)行判斷。
[0020]其中,步驟四中對(duì)數(shù)據(jù)塊進(jìn)行修復(fù)的具體步驟如下:
[0021 ]步驟4.1:給定對(duì)應(yīng)某個(gè)丟失數(shù)據(jù)塊的修復(fù)樹(shù)0T中的一個(gè)節(jié)點(diǎn);
[0022]步驟4.2:判斷根節(jié)點(diǎn)是否得到所有數(shù)據(jù)塊,如果得到則數(shù)據(jù)塊成功恢復(fù),如果沒(méi) 有得到則進(jìn)入步驟4.3;
[0023]步驟4.3:判斷是否接收到子節(jié)點(diǎn)發(fā)送的數(shù)據(jù),如果接收到子節(jié)點(diǎn)發(fā)送的數(shù)據(jù)則進(jìn) 入步驟4.4,否則再次進(jìn)行判斷是否存在修復(fù)所需且未發(fā)送的數(shù)據(jù),如果存在則向父節(jié)點(diǎn)發(fā) 送數(shù)據(jù)并再次進(jìn)入步驟4.2;
[0024] 步驟4.4:判斷是否存在修復(fù)所需且未發(fā)送的數(shù)據(jù),如果不存在則向父節(jié)點(diǎn)轉(zhuǎn)發(fā)數(shù) 據(jù)并再次進(jìn)入步驟4.2,如果存在則接收的數(shù)據(jù)與所存數(shù)據(jù)異或運(yùn)算后發(fā)送給父節(jié)點(diǎn)并再 次進(jìn)入步驟4.2。
[0025] 其中,步驟3.3中生成最優(yōu)修復(fù)樹(shù)0以1幻^^+1_111)的具體步驟如下:
[0026] 步驟3.3.1:給定對(duì)應(yīng)一個(gè)未修復(fù)數(shù)據(jù)塊的參與節(jié)點(diǎn)集合Vi(l$i彡f+1-m);
[0027] 步驟3.3.2:根據(jù)修改的Di jkstra算法計(jì)算源節(jié)點(diǎn)到所有節(jié)點(diǎn)的最優(yōu)瓶頸路徑pt (tGN);
[0028]步驟3.3.3:對(duì)于I中所有節(jié)點(diǎn)的最優(yōu)瓶頸路徑pt (t G N)進(jìn)行合并;
[0029] 步驟3.3.4:將得到的源節(jié)點(diǎn)作為根,生成Vi中所有節(jié)點(diǎn)的最優(yōu)修復(fù)樹(shù)。
[0030] 其中,步驟3.4中最優(yōu)修復(fù)樹(shù)的排序規(guī)則為:最優(yōu)修復(fù)樹(shù)0T有d條邊,每條邊所在的 鏈路都有一個(gè)可用帶寬值,在對(duì)所有邊按照邊所在鏈路的可用帶寬升序排列后,得到d條邊 的一個(gè)排列 bl<b2$b3<…該修復(fù)樹(shù)的帶寬瓶頸鏈路;兩棵對(duì)應(yīng)不同待修復(fù)文件 塊的修復(fù)樹(shù)0T4P0T 2,兩棵修復(fù)樹(shù)分別經(jīng)過(guò)網(wǎng)絡(luò)中的n和m條鏈路,則OhfOT〗當(dāng)且僅當(dāng):
[0031] 1)存在k(k彡n,k彡m),使得
[0032] ^^,〇nj<ri\==i<yn^……o&d一'
[0033] 2)n<m^.f 1 …,==/,fT。
[0034]其中,步驟3.3.2中計(jì)算源節(jié)點(diǎn)到所有節(jié)點(diǎn)的最優(yōu)瓶頸路徑pt(tGN)的具體步驟 如下:
[0035] 步驟3.3.2.1:獲取網(wǎng)絡(luò)圖信息603)和每天邊上的可用帶寬(:(6),6££;
[0036] 步驟3.3.2.2:標(biāo)記源節(jié)點(diǎn)s,并定義從源節(jié)點(diǎn)s到節(jié)點(diǎn)x的最優(yōu)瓶頸路徑的瓶頸帶 寬為widthto(x),節(jié)點(diǎn)s到其自身的瓶頸帶寬widthto(s) = ;
[0037]步驟3.3.2.3:判斷所有節(jié)點(diǎn)是否已經(jīng)標(biāo)記,如果所有節(jié)點(diǎn)都已經(jīng)標(biāo)記則得到由源 節(jié)點(diǎn)s出發(fā)到網(wǎng)絡(luò)圖中各個(gè)節(jié)點(diǎn)的最優(yōu)瓶頸路徑Pt(tGN),如果所有節(jié)點(diǎn)沒(méi)有都進(jìn)行標(biāo)記 則進(jìn)入步驟3.3.2.4;
[0038] 步驟3 ? 3 ? 2 ? 4:檢驗(yàn)所有標(biāo)記節(jié)點(diǎn)k到尾標(biāo)記節(jié)點(diǎn)j的瓶頸帶寬widthto( j) =max {min{widthto(k),C(k,j)}};
[OO39] 步驟3.3.2.5:從未標(biāo)記節(jié)點(diǎn)中選取widthto (i)最大的i ;
[0040]步驟3.3.2.6:在已標(biāo)記節(jié)點(diǎn)中查找與i直接相連的節(jié)點(diǎn)為pre(i);
[0041] 步驟3.3.2.7:標(biāo)記節(jié)點(diǎn)i并再次通過(guò)步驟3.3.2.3進(jìn)行判斷所有節(jié)點(diǎn)是否已經(jīng)標(biāo) 記。
[0042] 其中,步驟3.3.3中關(guān)于最優(yōu)瓶頸路徑合并過(guò)程如下:
[0043]由源節(jié)點(diǎn)s出發(fā)到節(jié)點(diǎn)i的最優(yōu)瓶頸路徑pi: s,m,m,…,nk,…,i ;
[OO44]由源節(jié)點(diǎn)s出發(fā)到節(jié)點(diǎn)j的最優(yōu)瓶頸路徑pj: s,mi,m2,…,mt,…,j;
[0045] 兩條路徑在各自的點(diǎn)nk與mt發(fā)生交叉,即nk=m t,nk-ihmt-!,則合并之后的樹(shù)型結(jié) 構(gòu)為選擇s,m,n2,…,nk或s,mi,m2,…,mt作為公共鏈路,pi與pj上nk之后的鏈路作為子鏈路, 分別鏈接到nk上。
[0046] 簡(jiǎn)單再生碼的編碼方式為一種分組編碼過(guò)程:(n,k,f)簡(jiǎn)單再生碼中,輸入文件被 切分成f塊,每塊利用MDS(n,k)編碼再編碼成n個(gè)子塊。得到的f組編碼后數(shù)據(jù)塊,進(jìn)行異或 運(yùn)算得到一組校驗(yàn)塊。將f+1組數(shù)據(jù)塊按照一定規(guī)則放置到n個(gè)存儲(chǔ)節(jié)點(diǎn)上。經(jīng)過(guò)簡(jiǎn)單再生 碼編碼之后的每個(gè)存儲(chǔ)節(jié)點(diǎn)上有f+1個(gè)數(shù)據(jù)塊。修復(fù)失效節(jié)點(diǎn)時(shí)需要恢復(fù)所有f+1個(gè)丟失數(shù) 據(jù)塊,而修復(fù)每個(gè)數(shù)據(jù)塊所需的參與節(jié)點(diǎn)集合都不同。這種編碼特性導(dǎo)致針對(duì)普通糾刪碼 與再生碼的樹(shù)型節(jié)點(diǎn)修復(fù)算法不能應(yīng)用到簡(jiǎn)單再生碼的節(jié)點(diǎn)修復(fù)過(guò)程中,因此,本發(fā)明提 出針對(duì)簡(jiǎn)單再生碼節(jié)點(diǎn)修復(fù)過(guò)程的并行樹(shù)型修復(fù)算法。
[0047] 本發(fā)明為(n,k,f)簡(jiǎn)單再生碼中失效節(jié)點(diǎn)的f+1個(gè)丟失數(shù)據(jù)塊分別規(guī)劃樹(shù)型修復(fù) 路徑,使得不同數(shù)據(jù)塊修復(fù)過(guò)程并行化,降低節(jié)點(diǎn)修復(fù)時(shí)延,提高網(wǎng)絡(luò)帶寬利用率。同時(shí)本 發(fā)明沒(méi)有改變簡(jiǎn)單再生碼的編解碼的計(jì)算方式,適用于所有使用簡(jiǎn)單再生碼作為存儲(chǔ)冗余 策略的分布式存儲(chǔ)系統(tǒng)。
[0048] 本發(fā)明與現(xiàn)有技術(shù)相比,具有如下有益效果:
[0049] 1、本發(fā)明通過(guò)利用網(wǎng)絡(luò)鏈路帶寬信息與傳輸路徑中間節(jié)點(diǎn)的編解碼能力對(duì)簡(jiǎn)單 再生碼修復(fù)過(guò)程進(jìn)行優(yōu)化,構(gòu)建針對(duì)特定丟失數(shù)據(jù)塊的樹(shù)型修復(fù)路徑,使得數(shù)據(jù)塊修復(fù)過(guò) 程能合理使用高帶寬鏈路,降低修復(fù)時(shí)延。
[0050] 2、本發(fā)明中的底層編解碼方法基于簡(jiǎn)單再生碼原本的編解碼方法,適用于所有使 用簡(jiǎn)單再生碼作為存儲(chǔ)冗余策略的分布式存儲(chǔ)系統(tǒng)。
【附圖說(shuō)明】
[0051] 圖1為本發(fā)明的總體框架流程圖;
[0052] 圖2為生成最優(yōu)修復(fù)樹(shù)的流程圖;
[0053]圖3為計(jì)算源節(jié)點(diǎn)到所有節(jié)點(diǎn)的最優(yōu)瓶頸路徑的流程圖;
[0054] 圖4為通過(guò)丟失數(shù)據(jù)塊的修復(fù)樹(shù)對(duì)數(shù)據(jù)塊進(jìn)行修復(fù)的流程圖;
[0055] 圖5為(5,3,2)簡(jiǎn)單再生碼節(jié)點(diǎn)修復(fù)的實(shí)例圖。
【具體實(shí)施方式】
[0056] 下面結(jié)合附圖對(duì)本發(fā)明作更進(jìn)一步的說(shuō)明。
[0057] 本發(fā)明基于使用簡(jiǎn)單再生碼作為存儲(chǔ)冗余策略的分布式存儲(chǔ)系統(tǒng)利用網(wǎng)絡(luò)拓?fù)?信息與帶寬信息對(duì)節(jié)點(diǎn)修復(fù)過(guò)程進(jìn)行優(yōu)化。
[0058]如圖1所述數(shù)據(jù)修復(fù)的具體步驟為:
[0059] 步驟一:根據(jù)失效節(jié)點(diǎn)所在的分布式存儲(chǔ)系統(tǒng)以及應(yīng)用的簡(jiǎn)單再生碼配置,獲取 系統(tǒng)使用的簡(jiǎn)單再生碼編碼參數(shù)(n,k,f),由待修復(fù)節(jié)點(diǎn)、修復(fù)參與節(jié)點(diǎn)所構(gòu)成的存儲(chǔ)節(jié)點(diǎn) 集合以及存儲(chǔ)節(jié)點(diǎn)集合中各個(gè)節(jié)點(diǎn)間的鏈路集合;
[0060] 步驟二:構(gòu)建修復(fù)網(wǎng)絡(luò)G (N,E ),其中N為節(jié)點(diǎn)集合由待修復(fù)節(jié)點(diǎn)和參與節(jié)點(diǎn)組成, 滿(mǎn)足IN| = 2f+1,f+1個(gè)節(jié)點(diǎn)集合Vi(1 <f+1),集合Vi代表待修復(fù)節(jié)點(diǎn)上第i個(gè)丟失數(shù)據(jù)塊 修復(fù)所需的參與節(jié)點(diǎn)集合,c ;E為鏈路集合,滿(mǎn)足| E | =f (2f+l),N中每對(duì)節(jié)點(diǎn)之間構(gòu) 建一條鏈路;E中的每條鏈路都關(guān)聯(lián)一個(gè)帶寬C(e),e GE;
[0061 ]步驟三:根據(jù)步驟二中建立的修復(fù)網(wǎng)絡(luò),利用并行修復(fù)樹(shù)構(gòu)建算法構(gòu)建針對(duì)所有f +1個(gè)丟失數(shù)據(jù)塊的f +1個(gè)并行修復(fù)樹(shù)Fi (1彡i彡f+1);如圖1所示,構(gòu)建修復(fù)樹(shù)Fi (1彡i彡f +1) 的具體步驟為:
[0062]步驟3.1:已修復(fù)數(shù)據(jù)塊數(shù)量為m,對(duì)已修復(fù)的數(shù)據(jù)塊初始化為0,代表沒(méi)有數(shù)據(jù)塊 得到修復(fù),已構(gòu)建成功的修復(fù)樹(shù)集合F,F(xiàn)初始化為空;
[0063]步驟3.2:丟失數(shù)據(jù)塊為f+1,判斷丟失的數(shù)據(jù)塊f+1與已修復(fù)數(shù)據(jù)塊是否相等,如 果不相等進(jìn)入步驟3.3,如果相等證明修復(fù)樹(shù)集合FKlSiSf+l)構(gòu)建成功;
[0064]步驟3.3 :對(duì)剩余數(shù)據(jù)塊生成f+l-m條最優(yōu)修復(fù)樹(shù)OTj(1彡j彡f+l-m);如圖2所示, 生成最優(yōu)修復(fù)樹(shù)的步驟為:
[0065]步驟3.3.1:給定對(duì)應(yīng)一個(gè)未修復(fù)數(shù)據(jù)塊的參與節(jié)點(diǎn)集合Vi(l$i彡f+1-m);
[0066]步驟3.3.2:根據(jù)修改的Di jkstra算法計(jì)算源節(jié)點(diǎn)到所有節(jié)點(diǎn)的最優(yōu)瓶頸路徑Pt (tGN);如圖3所示,計(jì)算源節(jié)點(diǎn)到所有節(jié)點(diǎn)的最優(yōu)瓶頸路徑的具體步驟為:
[0067] 步驟3.3.2.1:獲取網(wǎng)絡(luò)圖信息603)和每天邊上的可用帶寬(:(6),6££;
[0068] 步驟3.3.2.2:標(biāo)記源節(jié)點(diǎn)s,并定義從源節(jié)點(diǎn)s到節(jié)點(diǎn)x的最優(yōu)瓶頸路徑的瓶頸帶 寬為widthto(x),節(jié)點(diǎn)s到其自身的瓶頸帶寬widthto(s) = ;
[0069]步驟3.3.2.3:判斷所有節(jié)點(diǎn)是否已經(jīng)標(biāo)記,如果所有節(jié)點(diǎn)都已經(jīng)標(biāo)記則得到由源 節(jié)點(diǎn)s出發(fā)到網(wǎng)絡(luò)圖中各個(gè)節(jié)點(diǎn)的最優(yōu)瓶頸路徑Pt(tGN),如果所有節(jié)點(diǎn)沒(méi)有都進(jìn)行標(biāo)記 則進(jìn)入步驟3.3.2.4;
[0070] 步驟3.3.2.4:檢驗(yàn)所有標(biāo)記節(jié)點(diǎn)k到尾標(biāo)記節(jié)點(diǎn)j的瓶頸帶寬widthto( j) =max {min{widthto(k),C(k,j)}};
[OO71 ] 步驟3.3.2.5:從未標(biāo)記節(jié)點(diǎn)中選取widthto( i)最大的i ;
[OO72]步驟3.3.2.6:在已標(biāo)記節(jié)點(diǎn)中查找與i直接相連的節(jié)點(diǎn)為pre(i);
[0073] 步驟3.3.2.7:標(biāo)記節(jié)點(diǎn)i并再次通過(guò)步驟3.3.2.3進(jìn)行判斷所有節(jié)點(diǎn)是否已經(jīng)標(biāo) 記。
[0074]步驟3.3.3:對(duì)于I中所有節(jié)點(diǎn)的最優(yōu)瓶頸路徑pt(tGN)進(jìn)行合并;最優(yōu)瓶頸路徑 合并過(guò)程如下:
[0075]由源節(jié)點(diǎn)S出發(fā)到節(jié)點(diǎn)i的最優(yōu)瓶頸路徑Pi: s,m,n2,…,nk,…,i ;
[OO76]由源節(jié)點(diǎn)s出發(fā)到節(jié)點(diǎn)j的最優(yōu)瓶頸路徑pj: s,mi,m2,…,mt,…,j;
[0077] 兩條路徑在各自的點(diǎn)nk與mt發(fā)生交叉,即nk=mt,n k-ihmt-!,則合并之后的樹(shù)型結(jié) 構(gòu)為選擇s,m,n2,…,nk或s,mi,m2,…,mt作為公共鏈路,pi與pj上nk之后的鏈路作為子鏈路, 分別鏈接到nk上。
[0078]步驟3.3.4:將得到的源節(jié)點(diǎn)作為根,生成Vi中所有節(jié)點(diǎn)的最優(yōu)修復(fù)樹(shù)。
[0079 ]步驟3.4:對(duì)最優(yōu)修復(fù)樹(shù)0T j (1 < j < f+1 -m)按規(guī)則進(jìn)行排序;最優(yōu)修復(fù)樹(shù)的排序規(guī) 則為:最優(yōu)修復(fù)樹(shù)0T有d條邊,每條邊所在的鏈路都有一個(gè)可用帶寬值,在對(duì)所有邊按照邊 所在鏈路的可用帶寬升序排列后,得到d條邊的一個(gè)排列1^<13 2^^3<…<bd,bA該修復(fù) 樹(shù)的帶寬瓶頸鏈路;兩棵對(duì)應(yīng)不同待修復(fù)文件塊的修復(fù)樹(shù)0TdP0T 2,兩棵修復(fù)樹(shù)分別經(jīng)過(guò)網(wǎng) 絡(luò)中的n和m條鏈路,則Oh<0T2當(dāng)且僅當(dāng):
[0080] 1)存在k(k彡n,k彡m),使得
[0081] fi==di=4^,……,,〇n ==/^./>fi <!^.......
[0082] 2)n<m5.^ .…泰⑷。
[0083]步驟3.5:為優(yōu)先級(jí)最高的修復(fù)樹(shù)OTs分配鏈路瓶頸帶寬Bs;
[0084] 步驟3.6:調(diào)整鏈路帶寬對(duì)于OTs經(jīng)過(guò)的鏈路e,C (e) = C (e) -Bs;
[0085]步驟3.7 :對(duì)應(yīng)數(shù)據(jù)塊的修復(fù)樹(shù)OTs的修復(fù)樹(shù)構(gòu)建完成,將OTs加入到修復(fù)樹(shù)集合F 中,已修復(fù)數(shù)據(jù)塊m=m+l,并針對(duì)m再次進(jìn)入步驟3.2與丟失數(shù)據(jù)塊f+1進(jìn)行判斷。
[0086]步驟四:對(duì)步驟三中得到的修復(fù)樹(shù)FdKi彡f+1)進(jìn)行對(duì)數(shù)據(jù)塊的修復(fù)。如圖4所 示,通過(guò)丟失數(shù)據(jù)塊的修復(fù)樹(shù)對(duì)數(shù)據(jù)塊進(jìn)行修復(fù)的具體步驟為:
[0087] 步驟4.1:給定對(duì)應(yīng)某個(gè)丟失數(shù)據(jù)塊的修復(fù)樹(shù)0T中的一個(gè)節(jié)點(diǎn);
[0088] 步驟4.2:判斷根節(jié)點(diǎn)是否得到所有數(shù)據(jù)塊,如果得到則數(shù)據(jù)塊成功恢復(fù),如果沒(méi) 有得到則進(jìn)入步驟4.3;
[0089] 步驟4.3:判斷是否接收到子節(jié)點(diǎn)發(fā)送的數(shù)據(jù),如果接收到子節(jié)點(diǎn)發(fā)送的數(shù)據(jù)則進(jìn) 入步驟4.4,否則再次進(jìn)行判斷是否存在修復(fù)所需且未發(fā)送的數(shù)據(jù),如果存在則向父節(jié)點(diǎn)發(fā) 送數(shù)據(jù)并再次進(jìn)入步驟4.2;
[0090] 步驟4.4:判斷是否存在修復(fù)所需且未發(fā)送的數(shù)據(jù),如果不存在則向父節(jié)點(diǎn)轉(zhuǎn)發(fā)數(shù) 據(jù)并再次進(jìn)入步驟4.2,如果存在則接收的數(shù)據(jù)與所存數(shù)據(jù)異或運(yùn)算后發(fā)送給父節(jié)點(diǎn)并再 次進(jìn)入步驟4.2。
[0091] 以圖5為例表示(5,3,2)簡(jiǎn)單再生碼的節(jié)點(diǎn)修復(fù)過(guò)程中的網(wǎng)絡(luò)狀況。其中有5個(gè)節(jié) 點(diǎn),兩兩節(jié)點(diǎn)之間通過(guò)網(wǎng)絡(luò)鏈路相連接,每條鏈路有著相應(yīng)的帶寬。
[0092]假設(shè)節(jié)點(diǎn)i為待修復(fù)節(jié)點(diǎn),其中丟失數(shù)據(jù)塊與對(duì)應(yīng)的修復(fù)參與節(jié)點(diǎn)分別為:
[0093]數(shù)據(jù)塊Xi,參與節(jié)點(diǎn)為節(jié)點(diǎn)i-2,節(jié)點(diǎn)i-1;
[0094] 數(shù)據(jù)塊yi+i,參與節(jié)點(diǎn)為節(jié)點(diǎn)i-1,節(jié)點(diǎn)i+1;
[0095] 數(shù)據(jù)塊Si+2,參與節(jié)點(diǎn)為節(jié)點(diǎn)i+1,節(jié)點(diǎn)i+2;
[0096]圖1描述的算法過(guò)程中,m初始化為0,經(jīng)過(guò)3輪迭代生成三條樹(shù)型修復(fù)路徑后算法 結(jié)束。這三條修復(fù)路徑分別對(duì)應(yīng)一個(gè)丟失數(shù)據(jù)塊。
[0097] 第一輪迭代中,首先利用最優(yōu)修復(fù)樹(shù)生成算法生成三棵最優(yōu)修復(fù)樹(shù),其過(guò)程如下:
[0098] 第1步:利用由圖3描述的修改的Dijkstra算法計(jì)算從節(jié)點(diǎn)i到其他節(jié)點(diǎn)的最優(yōu)瓶 頸路徑:
[0099] 初始化:D={i},D = {/ - 2,/ - 1,/+ l,/ + 2},widtht〇(i) = °°
[0100] 第一輪:D={i},
[0101 ] widthto( i_l) =min{widthto( i),C( i,i_l)} = 40,
[0102] widthto( i_2) =min{widthto( i),C( i,i_2)} = 45,
[0103] widthto( i+1) =min{widthto( i),C( i,i+1)} = 30,
[0104] widthto( i+2) =min{widthto( i),C( i,i+2)} = 35
[0105] 第二輪:D={i,i_2},
[0114] 結(jié)果:widthto(i) = 00,widthto(i_l) = 45,widthto(i_2) = 45,
[0115] widthto( i+1) =45 ,widthto( i+2) =35
[0116] 得到由節(jié)點(diǎn)i到各個(gè)節(jié)點(diǎn)的最優(yōu)瓶頸路徑為:
[0117] 節(jié)點(diǎn)i-2: i-i-2,瓶頸鏈路帶寬45;
[0118] 節(jié)點(diǎn)i_l: i-i-2-i-l,瓶頸鏈路帶寬45;
[0119] 節(jié)點(diǎn)i+1: i-卜2-i-l -i+l,瓶頸鏈路帶寬45;
[0120] 節(jié)點(diǎn)i+2: i-i+2,瓶頸鏈路帶寬35;
[0121 ]:第2步:針對(duì)每一塊丟失數(shù)據(jù)塊,構(gòu)建其最優(yōu)修復(fù)樹(shù):
[0122] 數(shù)據(jù)塊Xi的修復(fù)參與節(jié)點(diǎn)為i-2,i-1,則其最優(yōu)修復(fù)樹(shù)為i-1-i-2-i ;
[0123] 數(shù)據(jù)塊yi+1的修復(fù)參與節(jié)點(diǎn)為卜丨,i+1,則其最優(yōu)修復(fù)樹(shù)為- - ;
[0124] 數(shù)據(jù)塊si+2的修復(fù)參與節(jié)點(diǎn)為i+1,i+2,則其最優(yōu)修復(fù)樹(shù)為
[0125] i+2^i , i+l^i-l^i-2^i ;
[0126] 第3步:對(duì)得到的所有最優(yōu)修復(fù)樹(shù)按照所述策略進(jìn)行排序,取出優(yōu)先級(jí)最高的修復(fù) 樹(shù):
[0127] 排序算法可以使用快速排序、歸并排序等算法。待排序元素之間的大小關(guān)系按照 所述規(guī)則進(jìn)行判斷。
[0128] 對(duì)第2步中得到的三個(gè)最優(yōu)修復(fù)樹(shù)按照所述規(guī)則進(jìn)行排序,得到優(yōu)先級(jí)最高的最 優(yōu)修復(fù)樹(shù)為數(shù)據(jù)塊s1+2的最優(yōu)修復(fù)樹(shù),該修復(fù)樹(shù)的瓶頸帶寬為35。為該最優(yōu)修復(fù)樹(shù)經(jīng)過(guò)的鏈 路分配相應(yīng)帶寬用于 Sl+2的修復(fù)過(guò)程,則數(shù)據(jù)塊Sl+2的修復(fù)時(shí)延為m/35。
[0129] 第二輪迭代,在剩余的子網(wǎng)絡(luò)圖上進(jìn)行同樣的過(guò)程。
[0130] 第A步:利用修改的Dijkstra算法得到由節(jié)點(diǎn)i到各個(gè)節(jié)點(diǎn)的最優(yōu)瓶頸路徑為:
[0131] 節(jié)點(diǎn) - 鏈路瓶頸帶寬 25;
[0132] 節(jié)點(diǎn)-i,鏈路瓶頸帶寬40;
[0133] 節(jié)點(diǎn)i+1: i+1 -i+2-i-l -i,鏈路瓶頸帶寬為35;
[0134] 節(jié)點(diǎn)i+2:i+2-i-1 -i,鏈路瓶頸帶寬35;
[0135]第B步:針對(duì)剩余待修復(fù)數(shù)據(jù)塊,構(gòu)建其最優(yōu)修復(fù)樹(shù):
[0136] 數(shù)據(jù)塊^的最優(yōu)修復(fù)樹(shù)為i-2-i+l-i+2-i-1-i;
[0137] 數(shù)據(jù)塊yi+1的最優(yōu)修復(fù)樹(shù)為i+1 -i+2-卜丨―i;
[0138] 第C步:對(duì)得到的最優(yōu)修復(fù)樹(shù)按照所述規(guī)則進(jìn)行排序,得到優(yōu)先級(jí)最高的最優(yōu)修復(fù) 樹(shù)為數(shù)據(jù)塊^的修復(fù)樹(shù),該修復(fù)樹(shù)瓶頸帶寬為25。于網(wǎng)絡(luò)中分配該最優(yōu)修復(fù)樹(shù)所需的帶寬 資源用于^的修復(fù),則數(shù)據(jù)塊 Xl的修復(fù)時(shí)延為m/25。
[0139] 第三輪迭代,在剩余的子網(wǎng)絡(luò)圖上進(jìn)行同樣的過(guò)程。
[0140] 待修復(fù)數(shù)據(jù)塊為y1+1,其參與節(jié)點(diǎn)為節(jié)點(diǎn)i-1,節(jié)點(diǎn)i+1。
[0141] 第a步:利用修改的D i j ks tra算法得到由節(jié)點(diǎn)i到所述兩個(gè)參與節(jié)點(diǎn)的最優(yōu)瓶頸路 徑為:
[0142] 節(jié)點(diǎn)卜丨:卜丨―i+1 -i,鏈路瓶頸帶寬2〇;
[0143] 節(jié)點(diǎn)i+1: i+1 -i,鏈路瓶頸帶寬30;
[0144] 第b步:針對(duì)待修復(fù)數(shù)據(jù)塊y1+1,構(gòu)建其最優(yōu)修復(fù)樹(shù):
[0145] 數(shù)據(jù)塊yi+丨的最優(yōu)修復(fù)樹(shù)為i-1 -i+1 -i ;
[0146] 第c步:可選擇的最優(yōu)修復(fù)樹(shù)只有所述y1+1的最優(yōu)修復(fù)樹(shù),該修復(fù)樹(shù)的瓶頸帶寬為 20。在該修復(fù)樹(shù)中,數(shù)據(jù)塊y i+i的修復(fù)時(shí)延為m/20。
[0147] 在本發(fā)明提出的算法運(yùn)行后,生成3條并行樹(shù)型修復(fù)路徑。利用這3條并行修復(fù)路 徑來(lái)并行修復(fù)失效節(jié)點(diǎn):1,節(jié)點(diǎn):1的修復(fù)時(shí)延為11^1{111/35,111/25,111/20}=111/20。
[0148] 在簡(jiǎn)單再生碼的傳統(tǒng)節(jié)點(diǎn)修復(fù)過(guò)程中,參與節(jié)點(diǎn)的數(shù)據(jù)通過(guò)直接鏈路傳遞給待修 復(fù)節(jié)點(diǎn)。在該方式下,圖5中所示的修復(fù)過(guò)程時(shí)延為max {2m/40,2m/30,m/45,m/35}=m/15。
[0149] 由上可知,利用本發(fā)明提出的算法在本例中可以有效降低節(jié)點(diǎn)修復(fù)時(shí)延。
[0150] ,本發(fā)明方法利用網(wǎng)絡(luò)拓?fù)渑c鏈路帶寬信息,利用網(wǎng)絡(luò)編碼中間節(jié)點(diǎn)的編解碼能 力,對(duì)簡(jiǎn)單再生碼的節(jié)點(diǎn)修復(fù)過(guò)程進(jìn)行優(yōu)化,降低了節(jié)點(diǎn)的修復(fù)時(shí)延。本發(fā)明方法計(jì)算簡(jiǎn) 單,通用性和擴(kuò)展性強(qiáng),對(duì)使用簡(jiǎn)單再生碼作為存儲(chǔ)冗余策略的分布式存儲(chǔ)系統(tǒng)的節(jié)點(diǎn)修 復(fù)效率有著很大的提升。
[0151]以上所述僅是本發(fā)明的優(yōu)選實(shí)施方式,應(yīng)當(dāng)指出:對(duì)于本技術(shù)領(lǐng)域的普通技術(shù)人 員來(lái)說(shuō),在不脫離本發(fā)明原理的前提下,還可以做出若干改進(jìn)和潤(rùn)飾,這些改進(jìn)和潤(rùn)飾也應(yīng) 視為本發(fā)明的保護(hù)范圍。
【主權(quán)項(xiàng)】
1. 一種利用網(wǎng)絡(luò)拓?fù)湫畔⒌暮?jiǎn)單再生碼修復(fù)方法,其特征在于,數(shù)據(jù)修復(fù)的具體步驟 如下: 步驟一:根據(jù)失效節(jié)點(diǎn)所在的分布式存儲(chǔ)系統(tǒng)以及應(yīng)用的簡(jiǎn)單再生碼配置,獲取系統(tǒng) 使用的簡(jiǎn)單再生碼編碼參數(shù)(n,k,f),由待修復(fù)節(jié)點(diǎn)、修復(fù)參與節(jié)點(diǎn)所構(gòu)成的存儲(chǔ)節(jié)點(diǎn)集合 以及存儲(chǔ)節(jié)點(diǎn)集合中各個(gè)節(jié)點(diǎn)間的鏈路集合; 步驟二:構(gòu)建修復(fù)網(wǎng)絡(luò)G (N,E ),其中N為節(jié)點(diǎn)集合由待修復(fù)節(jié)點(diǎn)和參與節(jié)點(diǎn)組成,滿(mǎn)足 N| =2f+l,f+l個(gè)節(jié)點(diǎn)集合Vi(l<i<f+1),集合Vi代表待修復(fù)節(jié)點(diǎn)上第i個(gè)丟失數(shù)據(jù)塊修復(fù) 所需的參與節(jié)點(diǎn)集合為鏈路集合,滿(mǎn)足叫=以2&1)』中每對(duì)節(jié)點(diǎn)之間構(gòu)建一 條鏈路;E中的每條鏈路都關(guān)聯(lián)一個(gè)帶寬C(e),e eE; 步驟三:根據(jù)步驟二中建立的修復(fù)網(wǎng)絡(luò),利用并行修復(fù)樹(shù)構(gòu)建算法構(gòu)建針對(duì)所有f+1個(gè) 丟失數(shù)據(jù)塊的f+Ι個(gè)并行修復(fù)樹(shù)Fi(l<i<f+l); 步驟四:對(duì)步驟三中得到的修復(fù)樹(shù)Fdl^aSf+l)進(jìn)行對(duì)數(shù)據(jù)塊的修復(fù)。2. 根據(jù)權(quán)利要求1所述的一種利用網(wǎng)絡(luò)拓?fù)湫畔⒌暮?jiǎn)單再生碼修復(fù)方法,其特征在于, 所述步驟三中構(gòu)建修復(fù)樹(shù)Fi (1 < f +1)的具體步驟如下: 步驟3.1:已修復(fù)數(shù)據(jù)塊數(shù)量為m,對(duì)已修復(fù)的數(shù)據(jù)塊初始化為0,代表沒(méi)有數(shù)據(jù)塊得到 修復(fù),已構(gòu)建成功的修復(fù)樹(shù)集合F,F(xiàn)初始化為空; 步驟3.2:丟失數(shù)據(jù)塊為f+Ι,判斷丟失的數(shù)據(jù)塊f+Ι與已修復(fù)數(shù)據(jù)塊是否相等,如果不 相等進(jìn)入步驟3.3,如果相等證明修復(fù)樹(shù)集合Fi (1 < f+Ι)構(gòu)建成功; 步驟3.3 :對(duì)剩余數(shù)據(jù)塊生成f+1-m條最優(yōu)修復(fù)樹(shù)OTj(1 < j; 步驟3.4:對(duì)最優(yōu)修復(fù)樹(shù)OTj (1 < j 按規(guī)則進(jìn)行排序; 步驟3.5:為優(yōu)先級(jí)最高的修復(fù)樹(shù)0TS分配鏈路瓶頸帶寬Bs; 步驟3.6:調(diào)整鏈路帶寬對(duì)于0TS經(jīng)過(guò)的鏈路e,C (e) = C (e) -Bs; 步驟3.7:對(duì)應(yīng)數(shù)據(jù)塊的修復(fù)樹(shù)OTs的修復(fù)樹(shù)構(gòu)建完成,將OTs加入到修復(fù)樹(shù)集合F中,已 修復(fù)數(shù)據(jù)塊m=m+l,并針對(duì)m再次進(jìn)入步驟3.2與丟失數(shù)據(jù)塊f+Ι進(jìn)行判斷。3. 根據(jù)權(quán)利要求1所述的一種利用網(wǎng)絡(luò)拓?fù)湫畔⒌暮?jiǎn)單再生碼修復(fù)方法,其特征在于, 所述步驟四中對(duì)數(shù)據(jù)塊進(jìn)行修復(fù)的具體步驟如下: 步驟4.1:給定對(duì)應(yīng)某個(gè)丟失數(shù)據(jù)塊的修復(fù)樹(shù)0T中的一個(gè)節(jié)點(diǎn); 步驟4.2:判斷根節(jié)點(diǎn)是否得到所有數(shù)據(jù)塊,如果得到則數(shù)據(jù)塊成功恢復(fù),如果沒(méi)有得 到則進(jìn)入步驟4.3; 步驟4.3:判斷是否接收到子節(jié)點(diǎn)發(fā)送的數(shù)據(jù),如果接收到子節(jié)點(diǎn)發(fā)送的數(shù)據(jù)則進(jìn)入步 驟4.4,否則再次進(jìn)行判斷是否存在修復(fù)所需且未發(fā)送的數(shù)據(jù),如果存在則向父節(jié)點(diǎn)發(fā)送數(shù) 據(jù)并再次進(jìn)入步驟4.2; 步驟4.4:判斷是否存在修復(fù)所需且未發(fā)送的數(shù)據(jù),如果不存在則向父節(jié)點(diǎn)轉(zhuǎn)發(fā)數(shù)據(jù)并 再次進(jìn)入步驟4.2,如果存在則接收的數(shù)據(jù)與所存數(shù)據(jù)異或運(yùn)算后發(fā)送給父節(jié)點(diǎn)并再次進(jìn) 入步驟4.2。4. 根據(jù)權(quán)利要求2所述的一種利用網(wǎng)絡(luò)拓?fù)湫畔⒌暮?jiǎn)單再生碼修復(fù)方法,其特征在于, 所述步驟3.3中生成最優(yōu)修復(fù)樹(shù)OTj (1彡j彡f+l-m)的具體步驟如下: 步驟3.3.1:給定對(duì)應(yīng)一個(gè)未修復(fù)數(shù)據(jù)塊的參與節(jié)點(diǎn)集合Vi(l$i彡f+1-m); 步驟3.3.2:根據(jù)修改的Di jkstra算法計(jì)算源節(jié)點(diǎn)到所有節(jié)點(diǎn)的最優(yōu)瓶頸路徑pt(t e N); 步驟3.3.3:對(duì)于I中所有節(jié)點(diǎn)的最優(yōu)瓶頸路徑pt (t e N)進(jìn)行合并; 步驟3.3.4:將得到的源節(jié)點(diǎn)作為根,生成Vi中所有節(jié)點(diǎn)的最優(yōu)修復(fù)樹(shù)。5. 根據(jù)權(quán)利要求2所述的一種利用網(wǎng)絡(luò)拓?fù)湫畔⒌暮?jiǎn)單再生碼修復(fù)方法,其特征在于, 所述步驟3.4中最優(yōu)修復(fù)樹(shù)的排序規(guī)則為:最優(yōu)修復(fù)樹(shù)0T有d條邊,每條邊所在的鏈路都有 一個(gè)可用帶寬值,在對(duì)所有邊按照邊所在鏈路的可用帶寬升序排列后,得到d條邊的一個(gè)排 列1^<13 2^^3< . . .Sbd,^*該修復(fù)樹(shù)的帶寬瓶頸鏈路;兩棵對(duì)應(yīng)不同待修復(fù)文件塊的修 復(fù)樹(shù)OTdPOT2,兩棵修復(fù)樹(shù)分別經(jīng)過(guò)網(wǎng)絡(luò)中的η和m條鏈路,則OTifOT〗當(dāng)且僅當(dāng): 1)存在1^(1^11,1^111),使得6. 根據(jù)權(quán)利要求4所述的一種利用網(wǎng)絡(luò)拓?fù)湫畔⒌暮?jiǎn)單再生碼修復(fù)方法,其特征在于, 所述步驟3.3.2中計(jì)算源節(jié)點(diǎn)到所有節(jié)點(diǎn)的最優(yōu)瓶頸路徑p t(t eN)的具體步驟如下: 步驟3.3.2.1:獲取網(wǎng)絡(luò)圖信息G(N,E)和每天邊上的可用帶寬C(e),eeE; 步驟3.3.2.2:標(biāo)記源節(jié)點(diǎn)s,并定義從源節(jié)點(diǎn)s到節(jié)點(diǎn)X的最優(yōu)瓶頸路徑的瓶頸帶寬為 widthto(x),節(jié)點(diǎn)s到其自身的瓶頸帶寬widthto(s) = ; 步驟3.3.2.3:判斷所有節(jié)點(diǎn)是否已經(jīng)標(biāo)記,如果所有節(jié)點(diǎn)都已經(jīng)標(biāo)記則得到由源節(jié)點(diǎn) s出發(fā)到網(wǎng)絡(luò)圖中各個(gè)節(jié)點(diǎn)的最優(yōu)瓶頸路徑Pt(teN),如果所有節(jié)點(diǎn)沒(méi)有都進(jìn)行標(biāo)記則進(jìn) 入步驟3.3.2.4; 步驟3.3.2.4:檢驗(yàn)所有標(biāo)記節(jié)點(diǎn)k到尾標(biāo)記節(jié)點(diǎn)j的瓶頸帶寬widthto( j) =max{min {widthto(k),C(k, j)}}; 步驟3.3.2.5:從未標(biāo)記節(jié)點(diǎn)中選取widthto(i)最大的i ; 步驟3.3.2.6:在已標(biāo)記節(jié)點(diǎn)中查找與i直接相連的節(jié)點(diǎn)為pre(i); 步驟3.3.2.7:標(biāo)記節(jié)點(diǎn)i并再次通過(guò)步驟3.3.2.3進(jìn)行判斷所有節(jié)點(diǎn)是否已經(jīng)標(biāo)記。7. 根據(jù)權(quán)利要求4所述的一種利用網(wǎng)絡(luò)拓?fù)湫畔⒌暮?jiǎn)單再生碼修復(fù)方法,其特征在于, 所述步驟3.3.3中關(guān)于最優(yōu)瓶頸路徑合并過(guò)程如下: 由源節(jié)點(diǎn)s出發(fā)到節(jié)點(diǎn)i的最優(yōu)瓶頸路徑pi: s,ηι,Π 2,…,nk,…,i ; 由源節(jié)點(diǎn)s出發(fā)到節(jié)點(diǎn)j的最優(yōu)瓶頸路徑pj: s,mi,m2,…,mt,…,j ; 兩條路徑在各自的點(diǎn)nk與mt發(fā)生交叉,即nk=mt,nw! imt-i,則合并之后的樹(shù)型結(jié)構(gòu)為 選擇s,ηι,Π 2,…,nk或s,mi,m2,…,mt作為公共鏈路,pi與pj上nk之后的鏈路作為子鏈路,分別 鏈接到nk上。
【文檔編號(hào)】G06F11/14GK105930232SQ201610312764
【公開(kāi)日】2016年9月7日
【申請(qǐng)日】2016年5月12日
【發(fā)明人】童鑫, 葉保留, 陸桑璐
【申請(qǐng)人】南京大學(xué)
網(wǎng)友詢(xún)問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
禹州市| 公主岭市| 阜康市| 电白县| 镇坪县| 奈曼旗| 确山县| 德阳市| 宜川县| 汉阴县| 延安市| 乌鲁木齐县| 永嘉县| 常山县| 凤台县| 翁牛特旗| 齐齐哈尔市| 朔州市| 朝阳区| 石柱| 铜梁县| 博兴县| 抚顺市| 武清区| 花莲市| 连州市| 临泉县| 商洛市| 托克托县| 湟中县| 海阳市| 碌曲县| 永新县| 城步| 南岸区| 保定市| 双桥区| 安国市| 淮安市| 毕节市| 景谷|