基于分布式存儲系統(tǒng)的多節(jié)點(diǎn)修復(fù)方法及其系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明屬于分布式存儲系統(tǒng),特別是一種基于分布式存儲系統(tǒng)的多節(jié)點(diǎn)修復(fù)方法 及其系統(tǒng)。
【背景技術(shù)】
[0002] 近年來,系統(tǒng)產(chǎn)生的數(shù)據(jù)規(guī)模顯著增長,在社會生活方面,諸如社交網(wǎng)絡(luò)、流媒體 服務(wù)以及電子商務(wù)等所產(chǎn)生的數(shù)據(jù)量都在TB甚至PB級別;在科學(xué)研究領(lǐng)域方面,諸如海洋 和大氣研究、天氣預(yù)報、能源開發(fā)等方面每天需要處理的數(shù)據(jù)也是海量級,例如一顆衛(wèi)星一 天拍攝圖像所產(chǎn)生的數(shù)據(jù)量就在TB級別。因此,分布式存儲系統(tǒng)逐漸發(fā)展起來,將數(shù)據(jù)處理 與數(shù)據(jù)存儲分離以適應(yīng)大數(shù)據(jù)的存儲。
[0003] 然而,在針對分布式存儲系統(tǒng)損壞節(jié)點(diǎn)的數(shù)據(jù)修復(fù)研究中,大多數(shù)的再生碼和其 他編碼方法都是基于參與修復(fù)的數(shù)據(jù)節(jié)點(diǎn)具有相同的下載費(fèi)用,而修復(fù)數(shù)據(jù)過程中從每個 數(shù)據(jù)節(jié)點(diǎn)下載的信息量也是一樣的。然而實(shí)際應(yīng)用中,經(jīng)常存在各個數(shù)據(jù)節(jié)點(diǎn)具有不一樣 的下載費(fèi)用的情況。因此,不同的數(shù)據(jù)節(jié)點(diǎn)而采用相同的下載費(fèi)用,往往導(dǎo)致修復(fù)損壞節(jié)點(diǎn) 的費(fèi)用較高。
【發(fā)明內(nèi)容】
[0004] 針對上述現(xiàn)有技術(shù)中存在的問題,本發(fā)明提供一種基于分布式存儲系統(tǒng)的多節(jié)點(diǎn) 修復(fù)方法及其系統(tǒng),能夠降低多節(jié)點(diǎn)修復(fù)的費(fèi)用。
[0005] 本發(fā)明的基于分布式存儲系統(tǒng)的多節(jié)點(diǎn)修復(fù)方法,技術(shù)方案如下,包括:
[0006] 根據(jù)最大流最小割確定新節(jié)點(diǎn)連接的節(jié)點(diǎn)集合,所述節(jié)點(diǎn)集合包括第一類型節(jié)點(diǎn) 以及第二類型節(jié)點(diǎn);
[0007] 獲取所述節(jié)點(diǎn)集合中第一類型節(jié)點(diǎn)的數(shù)量以及第二類型節(jié)點(diǎn)的數(shù)量;
[0008] 根據(jù)第一類型節(jié)點(diǎn)的數(shù)量、第二類型節(jié)點(diǎn)的數(shù)量、第一類型節(jié)點(diǎn)的單位下載費(fèi)用 以及第二類型節(jié)點(diǎn)的單位下載費(fèi)用,計算修復(fù)該新節(jié)點(diǎn)總費(fèi)用最小時的第一類型節(jié)點(diǎn)的第 一下載量和第二類型節(jié)點(diǎn)的第二下載量;
[0009] 根據(jù)所述節(jié)點(diǎn)集合、第一下載量和第二下載量修復(fù)該新節(jié)點(diǎn)。
[0010] 本發(fā)明的基于分布式存儲系統(tǒng)的多節(jié)點(diǎn)修復(fù)系統(tǒng),包括:
[0011]節(jié)點(diǎn)確定模塊,用于根據(jù)最大流最小割確定與待修復(fù)的新節(jié)點(diǎn)連接的節(jié)點(diǎn)集合, 所述節(jié)點(diǎn)集合包括第一類型節(jié)點(diǎn)以及第二類型節(jié)點(diǎn);
[0012] 節(jié)點(diǎn)獲取模塊,用于獲取所述節(jié)點(diǎn)集合中第一類型節(jié)點(diǎn)的數(shù)量以及第二類型節(jié)點(diǎn) 的數(shù)量;
[0013] 計算模塊,用于根據(jù)第一類型節(jié)點(diǎn)的數(shù)量、第二類型節(jié)點(diǎn)的數(shù)量、第一類型節(jié)點(diǎn)的 單位下載費(fèi)用以及第二類型節(jié)點(diǎn)的單位下載費(fèi)用,計算修復(fù)該新節(jié)點(diǎn)總費(fèi)用最小時從第一 類型節(jié)點(diǎn)下載的第一下載量和從第二類型節(jié)點(diǎn)下載的第二下載量;
[0014] 節(jié)點(diǎn)修復(fù)模塊,用于根據(jù)所述節(jié)點(diǎn)集合、第一下載量和第二下載量修復(fù)該新節(jié)點(diǎn)。
[0015] 本發(fā)明的基于分布式存儲系統(tǒng)的多節(jié)點(diǎn)修復(fù)方法及其系統(tǒng),在修復(fù)節(jié)點(diǎn)過程中, 從不同類型的節(jié)點(diǎn)下載數(shù)據(jù)需要不同的下載費(fèi)用,根據(jù)不同待修復(fù)新節(jié)點(diǎn)的下載費(fèi)用調(diào)整 從每個連接節(jié)點(diǎn)下載的數(shù)據(jù)量,使得在使用不對等的下載信息量的同時,借助多節(jié)點(diǎn)協(xié)作 機(jī)制帶來的優(yōu)勢,從而降低多節(jié)點(diǎn)修復(fù)的費(fèi)用。
【附圖說明】
[0016] 圖1為一個實(shí)施例的基于分布式存儲系統(tǒng)的多節(jié)點(diǎn)修復(fù)方法的流程示意圖;
[0017] 圖2為一個較佳實(shí)現(xiàn)方式的非對稱協(xié)作碼信息流圖;
[0018] 圖3為一個較佳實(shí)現(xiàn)方式的非對稱單節(jié)點(diǎn)修復(fù)模式與非對稱多節(jié)點(diǎn)修復(fù)模式的最 小修復(fù)帶寬對比圖;
[0019] 圖4為一個較佳實(shí)現(xiàn)方式的非對稱單節(jié)點(diǎn)修復(fù)模式與非對稱多節(jié)點(diǎn)修復(fù)模式的總 下載費(fèi)用對比圖;
[0020] 圖5為一個實(shí)施例的基于分布式存儲系統(tǒng)的多節(jié)點(diǎn)修復(fù)系統(tǒng)的流程示意圖。
【具體實(shí)施方式】
[0021] 為了使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合附圖對本發(fā)明作進(jìn) 一步地詳細(xì)描述。
[0022] 請參閱圖1中一個實(shí)施例的基于分布式存儲系統(tǒng)的多節(jié)點(diǎn)修復(fù)方法的流程示意 圖,包括步驟S101至步驟S104:
[0023] S101,根據(jù)最大流最小割確定新節(jié)點(diǎn)連接的節(jié)點(diǎn)集合,所述節(jié)點(diǎn)集合包括第一類 型節(jié)點(diǎn)以及第二類型節(jié)點(diǎn)。
[0024] 步驟S101通過將節(jié)點(diǎn)修復(fù)問題抽象為信息流圖模型的方式,利用圖論中最大流最 小割定理分析得出模型的最小割公式,通過最大流最小割公式確定修復(fù)新節(jié)點(diǎn)需要連接的 節(jié)點(diǎn)集合,保證了節(jié)點(diǎn)的極大距離可分碼屬性,從而在節(jié)點(diǎn)修復(fù)過程中優(yōu)化了修復(fù)模型。
[0025] 作為一個優(yōu)選的實(shí)施方式,所述節(jié)點(diǎn)集合中包括原始節(jié)點(diǎn)以及其他已修復(fù)的新節(jié) 點(diǎn)。以往的研究都是基于每次修復(fù)一個失效的數(shù)據(jù)節(jié)點(diǎn)原則,繼而修復(fù)下一個數(shù)據(jù)節(jié)點(diǎn),BP 單節(jié)點(diǎn)修復(fù)模式。但是多個數(shù)據(jù)節(jié)點(diǎn)同時失效在存儲系統(tǒng)中經(jīng)常發(fā)生,例如churn系統(tǒng),系 統(tǒng)常會有多個數(shù)據(jù)節(jié)點(diǎn)同時離開或者加入系統(tǒng)中,此外,很多P2P系統(tǒng)經(jīng)常在大面積斷電的 情況下需要面對很多突然的失聯(lián),或被惡意控制的大量數(shù)據(jù)節(jié)點(diǎn)同時離開系統(tǒng),雖然大多 數(shù)現(xiàn)有的修復(fù)機(jī)制可以通過一個接一個的修復(fù)方式來恢復(fù)多個數(shù)據(jù)節(jié)點(diǎn),但其修復(fù)效率 低,效果并不理想。假定存有原始文件的η個節(jié)點(diǎn)中的r個數(shù)據(jù)節(jié)點(diǎn)同時失效,按照單節(jié)點(diǎn)模 式,新數(shù)據(jù)節(jié)點(diǎn)需要下載的數(shù)據(jù)只能從現(xiàn)有的(n-r)個數(shù)據(jù)節(jié)點(diǎn)獲得,而重建的r個新數(shù)據(jù) 節(jié)點(diǎn)之間的帶寬不能被有效的利用。然而,通過本優(yōu)選實(shí)施方式,能夠有效利用重建完成的 新數(shù)據(jù)節(jié)點(diǎn)之間的帶寬,從而提高待修復(fù)節(jié)點(diǎn)的修復(fù)效率。
[0026] S102,獲取所述節(jié)點(diǎn)集合中第一類型節(jié)點(diǎn)的數(shù)量以及第二類型節(jié)點(diǎn)的數(shù)量。
[0027] 在修復(fù)節(jié)點(diǎn)過程中從不同類型節(jié)點(diǎn)下載數(shù)據(jù)需要不同的下載費(fèi)用,因此分別獲取 所述節(jié)點(diǎn)集合中第一類型節(jié)點(diǎn)的數(shù)量以及第二類型節(jié)點(diǎn)的數(shù)量,可為后續(xù)計算修復(fù)該新節(jié) 點(diǎn)總費(fèi)用最小時的第一類型節(jié)點(diǎn)的第一下載量和第二類型節(jié)點(diǎn)的第二下載量提供數(shù)據(jù)基 礎(chǔ)。
[0028] S103,根據(jù)第一類型節(jié)點(diǎn)的數(shù)量、第二類型節(jié)點(diǎn)的數(shù)量、第一類型節(jié)點(diǎn)的單位下載 費(fèi)用以及第二類型節(jié)點(diǎn)的單位下載費(fèi)用,計算修復(fù)該新節(jié)點(diǎn)總費(fèi)用最小時的第一類型節(jié)點(diǎn) 的第一下載量和第二類型節(jié)點(diǎn)的第二下載量。
[0029] 本步驟根據(jù)第一類型節(jié)點(diǎn)的數(shù)量、第二類型節(jié)點(diǎn)的數(shù)量、第一類型節(jié)點(diǎn)的單位下 載費(fèi)用以及第二類型節(jié)點(diǎn)的單位下載費(fèi)用,從不同類型的節(jié)點(diǎn)下載數(shù)據(jù)對應(yīng)不同的下載費(fèi) 用,根據(jù)不同待修復(fù)新節(jié)點(diǎn)的下載費(fèi)用調(diào)整從每個連接節(jié)點(diǎn)下載的數(shù)據(jù)量,使得在使用不 對等的下載信息量的同時,計算得到修復(fù)該新節(jié)點(diǎn)總費(fèi)用最小時的第一類型節(jié)點(diǎn)的第一下 載量和第二類型節(jié)點(diǎn)的第二下載量。
[0030] 具體地,步驟S103可通過以下方式實(shí)現(xiàn):根據(jù)第一類型節(jié)點(diǎn)的數(shù)量以及第一類型 節(jié)點(diǎn)的單位下載費(fèi)用,計算修復(fù)該新節(jié)點(diǎn)從第一類型節(jié)點(diǎn)下載數(shù)據(jù)所需的第一下載費(fèi)用; 根據(jù)第二類型節(jié)點(diǎn)的數(shù)量以及第二類型節(jié)點(diǎn)的單位下載費(fèi)用,計算修復(fù)該新節(jié)點(diǎn)從第二類 型節(jié)點(diǎn)下載數(shù)據(jù)所需的第二下載費(fèi)用;根據(jù)所述第一下載費(fèi)用以及第二下載費(fèi)用得到修復(fù) 該新節(jié)點(diǎn)的總費(fèi)用,并計算修復(fù)該新節(jié)點(diǎn)總費(fèi)用最小時從第一類型節(jié)點(diǎn)下載的第一下載量 和從第二類型節(jié)點(diǎn)下載的第二下載量。
[0031] S104,根據(jù)所述節(jié)點(diǎn)集合、第一下載量和第二下載量修復(fù)該新節(jié)點(diǎn)。
[0032]根據(jù)通過步驟S103得到的第一下載量、第二下載量,以及節(jié)點(diǎn)集合中不同類型的 節(jié)點(diǎn),從節(jié)點(diǎn)集合中下載數(shù)據(jù),修復(fù)該新節(jié)點(diǎn),從而降低了該節(jié)點(diǎn)修復(fù)的費(fèi)用。
[0033]具體地,步驟S104可通過以下方式實(shí)現(xiàn):根據(jù)所述第一下載量從節(jié)點(diǎn)集合中的第 一類型節(jié)點(diǎn)得到第一下載數(shù)據(jù),以及根據(jù)所述第二下載量從節(jié)點(diǎn)集合中的第二類型節(jié)點(diǎn)得 到第二下載數(shù)據(jù);根據(jù)所述第一下載數(shù)據(jù)以及第二下載數(shù)據(jù)修復(fù)該新節(jié)點(diǎn)。
[0034] 本實(shí)施例的基于分布式存儲系統(tǒng)的多節(jié)點(diǎn)修復(fù)方法,在修復(fù)節(jié)點(diǎn)過程中,從不同 類型的節(jié)點(diǎn)下載數(shù)據(jù)需要不同的下載費(fèi)用,根據(jù)不同待修復(fù)新節(jié)點(diǎn)的下載費(fèi)用調(diào)整從每個 連接節(jié)點(diǎn)下載的數(shù)據(jù)量,使得在使用不對等的下載信息量的同時,借助多節(jié)點(diǎn)協(xié)作機(jī)制帶 來的優(yōu)勢,從而降低多節(jié)點(diǎn)修復(fù)的費(fèi)用。
[0035] 以下為本發(fā)明的基于分布式存儲系統(tǒng)的多節(jié)點(diǎn)修復(fù)方法的一個較佳實(shí)現(xiàn)方式,包 括:
[0036] -、節(jié)點(diǎn)修復(fù)的判定條件
[0037] 將大小為B的原始文件進(jìn)行編碼,使整個存儲系統(tǒng)滿足(n,k)性質(zhì),即從η個數(shù)據(jù)分 片中的任意k個分片即可修復(fù)出原始文件。將節(jié)點(diǎn)修復(fù)問題抽象為信息流圖模型,如圖2所 示,通過圖論中最大流最小割定理分析得出模型的最小割公式,最小割滿足如下不等式:
[0040] g-1 = L,PQ = qo = 0,Pi+qi = mi,i為待修復(fù)節(jié)點(diǎn)的層數(shù),L為節(jié)點(diǎn)修復(fù)過程中的總層 數(shù),α為每個節(jié)點(diǎn)的最小存儲帶寬,cU為與待修復(fù)節(jié)點(diǎn)連