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