(58)【調査した分野】(Int.Cl.,DB名)
前記目的関数は、a)データ回収の信頼度、b)データのアクセス可能性、及びc)ストレージのコスト、の1以上に対応する、請求項1に記載のコンピュータベースの方法。
前記制約は、a)前記ハードウェアストレージノードのセットに関しての利用可能な総ストレージ以下であるストレージ量、b)ストレージのコスト、c)データ回収の信頼度、及びd)データのアクセス可能性、の1以上に対応する、請求項1又は2に記載のコンピュータベースの方法。
前記エンコードするステップは、a)最大距離分離(MDS)符号、及びb)ランダム線形符号、のいずれか1つを用いて行われる、請求項4に記載のコンピュータベースの方法。
コンピュータベースのソースを備える分散ストレージ配分のためのコンピュータベースのシステムであって、該ソースは1以上の通信リンク上で既知であり非均質なアクセス確率を有する複数のハードウェアベースのストレージノードと通信するように構成されており、該ソースはストレージ配分アルゴリズムを実行して前記複数のハードウェアベースのストレージノード上に配分されたストレージを得るように構成されており、前記アルゴリズムは、
i)提供されたバジェットと提供された目的関数とに基づいて、前記複数のハードウェアベースのストレージノードについてのk個の互いに素であるサブセットを選択するタスクであって、kは1以上の整数であり、前記提供されたバジェットは前記複数のハードウェアベースのストレージノードに関しての利用可能な総ストレージサイズについての部分を指定する、タスクと、
ii)前記提供されたバジェットを前記k個の互いに素であるサブセットの前記複数のハードウェアベースのストレージノードに跨がって分散させることによって前記提供されたバジェットを前記k個の互いに素であるサブセットに配分するタスクであって、前記k個の互いに素であるサブセットのうちのk番目のサブセットの各ハードウェアストレージノードに、等量に配分されたストレージ量Skを基準として、前記k個の互いに素であるサブセットのうちの1番目、2番目、・・・、(k−1)番目のサブセットの各ハードウェアストレージノードに、それぞれ、k*Sk、(k−1)*Sk、…、2*Skのストレージ量が等量に配分されることとなる、タスクと
を行うアルゴリズムであって、
前記提供されたバジェットを配分するタスクは前記非均質なアクセス確率及び前記提供されたバジェットに基づく、システム。
前記目的関数は、a)データ回収の信頼度、b)データのアクセス可能性、c)ストレージのコスト、及びd)利用可能ストレージのサイズ制限の1以上に対応する、請求項9に記載のコンピュータベースのシステム。
1以上の通信リンク上で既知であり非均質な信頼度を有する複数のハードウェアベースのストレージノードを含むハードウェアベースのストレージノードのセットと通信するように構成された請求項9に記載のコンピュータベースのシステムと、
既知であり非均質な信頼度を有する複数のハードウェアベースのストレージノードと
を備える分散ストレージ配分システムであって、
前記コンピュータベースのシステムは、前記提供されたバジェットに等しいサイズのエンコードされたファイルを、前記ストレージ配分アルゴリズムによって提供された配分済みストレージに基づいて、前記複数のハードウェアベースのストレージノードに跨がって分散させるように構成された、システム。
前記エンコードされたファイルは、前記コンピュータベースのソース上で実行されるコンピュータベースのエンコーディングアルゴリズムであって、a)最大距離分離(MDS)符号、及びb)ランダム線形符号、のいずれか1つに基づいているアルゴリズムによってエンコードされる、請求項13に記載の分散ストレージ配分システム。
前記複数のハードウェアベースのストレージノードのあるハードウェアベースのストレージノードは、a)ハードディスク、b)コンピュータシステム、c)データサーバ、d)データセンタ、e)インターネットサービスプロバイダ、及びf)仮想プライベートサーバ(VPS)の1つを備える、請求項13又は14に記載の分散ストレージ配分システム。
【発明を実施するための形態】
【0012】
〔序論〕
本願開示による様々な観点は、所与の総ストレージバジェットについてリカバリが成功する確率を最大化させるように、データオブジェクト(例えば、ファイル、ビデオストリーム、セルラー音声メッセージ等)を、非均質なアクセス確率を有するストレージノード(例えば、ハードウェア依存を有するもの等)のセットに跨がって格納するという問題について検討する。データオブジェクトは、複数のストレージノードに跨がって分割及びコーディングされることができる。例えば、最大距離分離(MDS)符号等を用いることによって、アクセスされたデータの総量が少なくとも元のデータオブジェクトのサイズである場合、元のデータオブジェクトをリカバーすることができる。目標は、後に続くリカバリの確率を最大化させるように、ストレージノードのセットに跨がってのストレージバジェットの配分に関しての最適配分を、決定することである。
【0013】
ストレージ配分の問題は、例えば、非均質なノードを有するピアツーピアクラウドストレージ、コンテンツデリバリネットワーク、遅延トレラントネットワーク、及び無線センサネットワーク等の実際的なストレージに関する問題によって提起される。例えば、各ノードは、アップタイム/ダウンタイム統計が知られている仮想プライベートサーバ(VPS)であることができ、該統計をそれぞれに対応するアクセス確率についての指標として用いることができる。別の例では、サーバ用のデータを格納するために用いられるハードディスクラックは、異なる信頼度のストレージハードウェア(例えば、ハードディスク等)を備えることができ、該信頼度は所与のストレージハードウェアの年齢及び/又はそれに対応する製造者による信頼度データ(例えば、平均故障間隔即ちMTBF等)によって測られることができ、これは非均質なストレージを伴う等価な分散ストレージをモデリングするための基礎として用いることもでき、本願開示によって提供される様々な解をこれに適用することができる。
【0014】
可能な配分については大きな探索空間があり、また、所与の配分に関してのリカバリ確率を計算することは#P-hardな問題であるため、ノードが均質(例えば、同一)なアクセス確率を有するという特殊な場合であっても、ストレージ配分は複雑な組み合わせ最適化問題となる(非特許文献1)。この問題のバリエーションは、P2Pネットワーキング(非特許文献2)、無線通信(非特許文献3、非特許文献4)、及び信頼性エンジニアリング(非特許文献5)を含む幾つかの異なる分野において研究されている。ノードが異なるアクセス確率を有するという非均質な場合については、Ntranosら(非特許文献6)が大偏差不等式及び凸最適化に基づくアルゴリズムを提唱している。
【0015】
本願開示の様々な実施形態によって提供される(基本的な)対称配分は、適切に選択されたノードについてのサブセットに跨がってバジェットを分散させ、このような配分は例えば計算コストを低減可能であるという点で効率的に構築されることができ、非特許文献6の既存の方法に勝る性能をもたらすことができる。本願開示のさらなる実施形態によれば、基本的な対称配分及びそれに対応する構築アルゴリズムは、複数のkレベル対称配分へと拡張されることができ、該拡張においては総バジェットがk個の部分に分割されて、各部分はノードについての異なるサブセットにわたって均一に分散されて、高位レベル内の各ノードに配分される量が直近レベルの配分量の倍数とされる。換言すれば、直近レベル内のノード当たりの量が単位量とされる。
【0016】
本願開示による新規な2レベル及び3レベル対称配分についての所与の個数のノードについての性能分析は、本願開示の後続のセクションにて提供される。少数のノード個数n≦4については、網羅的に(例えば、網羅的コンピューティング等によって)決定することができる正確な最適配分は、(例えば、表I及びIIにて与えられる)1レベル及び2レベルの対称配分の中から発見することができる。より大きなノード個数については、本願開示の様々な実施形態によって提供されるこれらの対称配分は、既存の非対称配分の性能に勝る性能をもたらすことができる。さらに、これらの性能は、関連付けられるレベルの個数を増加させること即ち対称配分の柔軟性を増加させることによって、さらに向上させうる。本願開示の後続のセクションにて提示するように、対称配分に関しての様々な手法は、ストリーミングコードの設計に応用されうる。
【0017】
〔問題についての説明〕
元のデータオブジェクトが単位サイズに正規化されていると仮定する。
図1に示すように、データオブジェクトは、適切なコーディングによりn個の非均質なノード(1,2,...n)に跨がって格納され、n個のリンク(105)を介してソースノードS(110)がデータオブジェクトをn個のノードに供給する。各ノードiはコーディングされたデータの量x
iを格納し、これは所与の総ストレージバジェットTに基づく。ストレージバジェットに対しての制約は、例えば次のことに関連付けられることができる:即ち、制限された送信帯域及び/又は制限された格納領域、さらには、各ノードにおいてデータオブジェクトの全体をミラーリングすることが過度な負担をもたらすという意味におけるストレージコストについての制約。データ回収の時点で、データコレクタ(115)は、確率p
iで各ノードに独立的にアクセスする。ここで、0<p
i<1である。rは、データコレクタによってアクセスされたノードについてのランダムなサブセットを表し、rの確率分布は、例えばアクセスモデル及び/又は故障モデル(例えば、ノードやリンクが確率論的に故障する可能性があるということ)等によって指定されることができる。この最適化問題を一般化したものは、リカバリを最大化する目的関数と利用可能なストレージに対して限度を付す制約とで表すことができ、次の数式(1)において示される。
【0019】
ここで、1 [.]は指標関数(特性関数とも称する)を表す。各ノードは確率p
iで利用可能となり、結果としてもたらされる利用可能ノードr(例えば、アクセス可能なノード等)についてのセットはランダムなものであり、また、サイズもランダムである。数式(1)の目的関数は、リカバリ(あるいはアクセス)確率とみなすことができ、サブセットrに対応する確率の総和として表すことができ、これは、この場合では総バジェットTを規定する固定関数であるバジェット関数によって制限的条件(例えば、制約等)が付加された場合におけるデータオブジェクトのリカバリを成功させるサブセットrに対応する。換言すれば、数式(1)で表された最適化問題は、利用可能なストレージバジェットについて特定の制限が課された状況下でシステムの信頼性を最大化しようとする。本願開示による様々な教示事項及び後続のセクションで提示される様々な教示事項は、このような最適化問題についての解法を提供する。これらの挟持事項は、異なる信頼度の異なるノード内に如何ほどのストレージをプット(配分)すべきかの問題について最適化を図り、これらのノードを備えるシステムの総体的信頼性が最大化される。このような解法は、最適解を得るためのステップバイステップアルゴリズムを表す流れ図においても提供される。当業者は、このような最適化問題についての定式化及び対応する方法に関して熟知している。最適化問題(1)において検討される制約は固定されているが、当業者は、提示される様々な実施形態による教示事項を依然用いたままで、どのようにしてこのような制約を変更して課される要求に、より良く適合させて最適化された配分を得るか、を知っている。例えば、バジェット(ストレージ)に関連付けられているコストを最小化することに興味があるとする。この場合、より多くのストレージを使用すれば、システムは、よりコストのかさむものとなる。このような場合、制約がコスト(目的)関数となり、また、信頼性目標が信頼性制約となり、これらについて最適化問題が解かれることになる。換言すれば、所望の目的に応じて、先述の目的関数及び制約を入れ替えることができる。代替的には、目的関数をコスト及び信頼性についての重み関数とすることができる。
【0020】
簡略化のため、T<nであると仮定する。なぜならば、T≧nについては最適な配分が自明なもの:{1,…,1}となるからであり、ここでは各ノードは元のデータオブジェクトについてコピーを1つ格納する。また、x
i≦1であると仮定することができる。なぜならば、ノードがデータについて1よりも多い個数のコピーを格納することは無益であるからである。
【0021】
nが大きい場合においては数式(1)によって定義された最適化問題は計算的に困難となるが、小さいnについては、サブセット(例えば、ノードのそれ等)の可能な組合せ全てに関して網羅的なサーチを行うことによって最適配分を決定することが可能となる。異なるシナリオについて網羅的サーチによって得られた最適配分に関するリストは、それぞれ
図2及び
図3の表I及び表IIに示されている。表Iはn=3であり、p
1≧p
2≧p
3についての最適配分を示し、表IIはn=4であり、p
1≧p
2≧p
3≧p
4についての最適配分を示す。
【0022】
〔1レベル対称配分〕
本願開示の実施形態によれば、ノードのサブセットにわたって総バジェットTを均一に分散することによって、基本的な1レベル対称配分を得る。より高い確率のノードを用いることによってシステムの信頼性が向上する。したがって、ノードは、p
1≧p
2≧…≧p
nとなるように、アクセス確率について降順で配列され、数式(1)によって示された最適化問題は、サイズmのサブセットを選択することに単純化され、これは、次の配分に対応する。
【0024】
リカバリを成功させるには、m個の空でないノードについて少なくとも
のノードにアクセスすることが必要となる。M個の空でないノードにアクセスする確率は、次の通りである。
【0026】
ここで、
はサイズがMである{1,…, m}のサブセットについてのセットを表す。
【0027】
したがって、リカバリが成功する確率は次の数式(3)によって表される。
【0029】
本願開示の実施形態によれば、
図4に示されるように、アルゴリズム1は、数式(2)及び(3)を用いることによって最適な1レベル対称配分を発見する。本願における「レベル」との用語は、ゼロでないバジェットで配分されたノードの各々が総バジェットの量と同量を含むことになる配分を意味することができる。
【0030】
mの取り得る値全てを検討することに代えて、[1,セクションII−C]で提示したものに類似しているアプローチを考えることができ、
についての個別の値各々に対応する最大のmにアルゴリズムの範囲を限定することができ、それによって候補値
が得られる。ここでK
maxは、
となる最大の整数Kである。しかし、依然として大きい値のnについては、アルゴリズム1は計算的に困難であり続ける。なぜならば、nの値に応じて関連付けられる計算的複雑性が急速に増大するからである。
【0031】
本願開示の実施形態によれば、アルゴリズム1の複雑性をさらに減少させるために、各確率p
iを確率p
iの平均値で代替することができる。これは、
と表され、結果として、
図5に示すアルゴリズム2が得られ、これはアルゴリズム1の簡略版であるとみなすことができる。元のアルゴリズム1と比べて、この簡略化(p
avgを用いること)によってアルゴリズム(例えば、ハードウェアプロセッサ上で実行される対応するプログラムコード等)の実行時間を大幅に減少させることができる。本願開示の後続のセクションで提示される数値実験によると、
図5のアルゴリズム2によって説明された簡略化版が、その単純さにもかかわらずすこぶる良好な性能を提供することが分かる。
図5の対応するステップ(131)〜(138)で説明されたアルゴリズム2(及び本願開示で説明された他の新規なアルゴリズム)が、本願開示の現セクションにおいて提供された数式についての解法及び関連する簡略化手法についての例示的実装例にすぎないことを当業者は容易に理解するであろう。
【0032】
〔2レベル及び3レベル対称配分〕
表I及びII内の最適配分に関して得た知見に基づいて、そして、一部の最適解は所与のバジェットTについて2レベルの量配分を有するということに着眼して、発明者は2レベル対称配分についてのより一般的なクラスを検討した。これにおいては、各レベルは利用可能なノードの総体についての互いに素となるサブセットを備え、第1レベルの各ノードに配分される量は第2のレベルの各ノードに配分される量の2倍であり、次の通りである。
【0034】
各ノード内に格納されるデータの量は、S
2の倍数として表されることができるため、
であり、S
2は定量又は基礎的ストレージブロックとして扱われることができる。先のセクションの手法を踏襲すると、2m
1+m
2個の基礎的ストレージブロックのうち少なくとも
がアクセスされるとリカバリが成功するということに発明者が気付いた。ここで、
は、アクセスされた基礎的ストレージブロックの総個数を表し、また、
は、レベルL内でアクセスされたノードの個数を表すものとする。したがって、m
acc=2
macc,1+m
acc,2である。よって、リカバリの成功を可能とする全てのペア(m
acc,1,m
acc,2)についてのセットである
は、次の数式(6)で表されることができる。
【0036】
ここで発明者は、簡略化のため、2レベル対称配分の第1レベル(例えば、レベル1等)に配分されるノードの量であるmOpt
1が、先述の1レベル対称配分スキームにおけるmOpt
oneLevelよりも小さい、という仮定を導入する。簡略化のための仮定及び1レベル対称配分にて得られたmOpt
oneLevelの値に基づいて、並びに本願開示のさらなる実施形態によれば、
図6にて説明されるアルゴリズム3が得られる。アルゴリズム3は、アルゴリズム2に大筋で類似した態様で2つのレベル(例えば、レベル1、レベル2等)における確率を計算することによって、(mOpt
1,mOpt
2)で与えられる良好な2レベル対称配分を効率的に探索する。
【0037】
1レベル対称配分のケースと同様にして、アルゴリズム3は(m
1,m
2)についての特定の選択肢のみを検討することによって探索空間を狭める。具体的には、m
1についての所与の選択肢については、該アルゴリズムは、
の個別の値各々に対応する最大のm
2に注目範囲を限定し、これによって以下の候補値が得られる。
【0039】
ここでK
minは、
となる最小の整数Kであり、K
maxは、
となる最大の整数Kである。
【0040】
発明者の知見によると、MOpt
2の値は多数のループ内では希にしか変化しないものであり、MOpt
2についての値の変化が2つあれば、これらは通常ループのサイズの3分の2の距離Dの範囲内に存在する。したがって、アルゴリズム3では、アルゴリズムのステップ(1402)〜(1413)で定義されるインナーループ内のMOpt
2がループのサイズの3分の2にわたって変化しない場合、アルゴリズムはこのMOpt
2が現在ループ内の最適選択肢であるとみなした上で次のループへと続行し、これによってアルゴリズムの(例えば、ハードウェアプロセッサ上で実行された場合等の)実行時間が大幅に削減され、同時にほぼ同じ性能が得られることになる。また、Dはより小さい値に設定することができ、これによってアルゴリズムの実行は加速されるが、準最適解が発生することもあり得る。
【0041】
本願開示のさらなる実施形態によれば、3つのレベルをサポートする対称配分についてのさらなる一般化手法が、
図7のアルゴリズム4にて例示的な形態で説明及び提示されている。ここで、3つのレベルのサブセットのサイズをそれぞれm
1,m
2,m
3とし、第1レベルでのノード当たりの量は第3レベルでのノード当たりの量の3倍であり、第2レベルでのノード当たりの量が第3レベルでのノード当たりの量の2倍である。リカバリの成功を可能にする全てのトリプル(m
acc,1,m
acc,2,m
acc,3)についてのセット
は、次式で表すことができる。
【0043】
発明者は、簡略化のため、3レベル対称配分におけるm
1が、本願開示にて先述した2レベル対称配分のmOpt
1,twoLevel+mOpt
2;twoLevelよりも小さいという仮定を導入する。簡略化のための仮定及び本願開示の実施形態によれば、
図7にて説明されるアルゴリズム4が得られる。アルゴリズム4は、数式(1)で表される最適化問題についての良好な3レベル対称配分を効率的に探索する。
【0044】
本願開示の先のセクションにて提示された対称配分でなされたと同様に、特定の選択肢(m
1,m
2,m
3)のみを検討することによって探索空間を狭めることができる。具体的には、m
1及びm
2についての所与の選択肢について、発明者は
の個別の値各々に対応する最大のm
3に注目範囲を限定し、これによって、次の候補値が得られる。
【0046】
ここで、K
minは、
を満たす最小の整数Kであり、K
maxは、
を満たす最大の整数Kである。また、距離閾値Dは、アルゴリズムのステップ(1503)〜(1515)で定義された(インナー)ループのサイズの3分の2となるように設定される。
【0047】
本願開示の様々な実施形態によって提案される対称配分は、容易にkレベルをサポートするように一般化されることができる。ここでk=4,5,6,...等である。このようなkレベル対称配分では、空でないノードが各々c、2c,...,kcのデータの量を格納するようにストレージバジェットTを配分することができる。ここでcは対応する定量又は基礎的ストレージブロックS
kのサイズであり
である。
【0048】
〔数値実験〕
このセクションでは、上述のアルゴリズムの性能を、リカバリ失敗確率の観点から評価する。
【0049】
〔A. n=4の場合における表IIの最適解との比較〕
n=4については、アルゴリズム1及びアルゴリズム3によって得られた1レベル及び2レベル対称配分の性能を、網羅的に計算された表II(
図3)から得られた精密最適解と、それぞれ比較することができる。発明者は、1≦T≦4となるストレージバジェット範囲と、0.5から1の間で独立的かつ画一的に選出されたノードアクセス確率p
i(1≦i≦n)について検討した。
図8は、アクセス確率について、典型的なケースにおける結果を示す。本願開示の実施形態による1レベル及び2レベル対称配分は、一般的には精密最適配分良好に近似するものとなることを発明者は発見した。また、特定の限定されたTの範囲については、最適解を得るためには2レベル対称配分が必要となることをも発明者は発見した(例えば、本件においてはm
1=1,m
2=3の場合)。
【0050】
〔B. nが大きい値となる場合における他の既存のアルゴリズムとの比較〕
このセクションでは、大きい値のnについての性能に関して、アルゴリズム2、3、4を、非特許文献6で提示される既存のアルゴリズム(即ち、最大分散、チェルノフ閉形式、チェルノフ反復)と、比較する。比較においては、バジェット範囲は1.2≦T≦2とし、また、ノードアクセス確率p
iは0.5から1の間で独立的かつ画一的にランダムに選出されたものとする。故障確率曲線は、数値的モンテカルロシミュレーション実験を用いて得られる(なお、グラフもこれによって作成される)。
【0051】
異なる問題スケール(n=30,50)についての結果は
図9、10、11、12に示される。
図9及び11では、本願開示の様々な実施形態による1レベル、2レベル及び3レベル対称配分によって生成された故障確率曲線、並びに、先行技術文献である非特許文献6で提示されたチェルノフ反復法及びチェルノフ閉形式法によって生成された曲線が、グラフに示されている。これらの曲線によれば、バジェットTが小さい場合、対称配分は常にチェルノフ系手法に勝る性能をもたらす。Tが大きい場合(例えば、n=30についてT=2の場合等)、1レベル及び2レベル対称配分がチェルノフ系手法に劣る場合があっても、チェルノフ系手法に勝る性能をもたらし得る3レベル対称配分は存在する。
図10及び
図12にて、バジェットT=2及びバジェットT=1.7についての、異なる手法についての量の分布を示すプロットがそれぞれ示されている。これらのプロットは、対称系の手法がより柔軟なものとされてより多くのレベルについてのサポートが設けられれば、性能がさらに向上し得ることを示唆している。
【0052】
〔C. 様々な方法の時間コスト〕
図13は、様々なアルゴリズムについて、ノード個数との関係での時間コストを示す。この図によれば、1レベル対称配分は他の配分手法よりも常に早く、また、n<55の場合に関しては2レベル対称配分がチェルノフ反復アルゴリズムよりも早い、ということが分かる。3レベル対称配分が多くのシナリオでは最も遅く、より高い性能を求める場合の妥協案として用いられることができる。
【0053】
〔D. アルゴリズムの応用:対称的時間不変イントラセッションコード〕
分散ストレージ用途に加えて、対称配分アルゴリズムは、リアルタイムストリーミング用のコード設計の問題にも応用されることができ(非特許文献7、8)、例示的な概略的構成図が
図16に示されている。この事例では、メッセージが逐次的にソース(1610)に到着し、パケット削除チャネル(1620)を介したシンク(1630)への送信を行うために該メッセージは(例えば、先行技術においていう所謂削除修正コードを用いて)エンコードされ、該シンクは指定された遅延内にてメッセージを逐次的に復号する必要がある。様々なネットワークシナリオでは、パケット遅延は変動し得るものであるため、遅延と共にパケット受信の確率が上昇する。ストリーミング問題におけるメッセージ作成時刻とデコーディング期限との間での送信パケットを、ストレージ配分問題のノードとして同視すれば、対応する非均質遅延依存性の損失確率(例えば、非均質信頼度モデル等)を与えられれば、対応する非均質ストレージ配分問題に関しての解法は対応するストリーミング問題に関してのイントラセッションコードに転じることになり、また、ストレージ配分問題におけるストレージバジェットが総利用可能パケットサイズに転じる。
【0054】
図16をさらに参照する例として次のケースを想定する。即ち、画一的なサイズs>0の独立しているメッセージ(1,2,3...)がソース(1610)にて規則的な間隔たるc=1時間ステップ毎に作成されており、また、該メッセージはレシーバにてそれぞれの作成時刻から遅延d=10時間ステップ内にてデコードされなければならない。非特許文献9の
図5(a,b)の遅延束縛違反確率を、各パケットの異なるフェイリア確率として用いる。ソースはサイズP>sの単一のデータパケットを、時間ステップ毎に、リンク上に送信することを許されている。したがって、対応する仮想バジェットは、=P/Sとして表すことができる。
【0055】
固定されたメッセージレートをs=1として、パケットレートPを1〜4の範囲内とした場合について、
図14の故障確率プロットが得られる。また、固定されたパケットレートをp=1として、メッセージレートsを0.1〜1の範囲内とした場合について、
図15の故障確率プロットが得られる。
【0056】
本願開示の様々な実施形態による例示的なストリーミング構成に関しては、
図17A及び17Bが、c=1かつd=4のケースについての例示的なパケット分布を示す。
図17A及び17Bのグラフの列は逐次的に送信されたパケットを表し、任意の時刻(例えば、t軸等)に送信される全てのパケットの総和がバジェット(例えば、総パケットサイズ等)によって制約される。
図17A及び17Bの網掛けされたボックスは時間ステップ1にて作成されて幾つかの送信されたパケット(p
0,p
1,p
2,p
3)に分散されたデータ(x
1,x
2,x
3,x
4)の量を表す。これらのパケットは、これらがデコードされなければならない遅延の範囲に従って送信される。ハッチングが掛けられた
図17Bのボックスは、各送信パケット内の時間ステップ2(例えば、時間ステップ2において作成された場合)におけるデータの量を表す。時間ステップiにて送信されたパケットが時間ステップjまでに受信される確率はp
j−iであり、遅延の値Δ=j−iについて、p
Δは遅延Δについて増加する関数である。各送信事象にて利用可能な最大総パケットサイズ(例えば、バジェット等)とデコーディング確率p
Δを与えられれば、各送信されたパケット(p
0,p
1,p
2,p
3)についての最適配分パケットサイズ(x
1,x
2,x
3,x
4)を、最適化問題(1)を用いて導出することができる。よって、これに関連する解法は、非均質ストレージ配分問題との関係で提示した解法に従うこととなる。本願開示によるこのような教示事項とこれら2つの問題間での相似性とを与えられれば、当業者はこのような教示事項を、非均質な構成要素を備える他のシステムにも適用できる。
【0057】
本願開示の様々な実施形態及び先のセクションで述べた様々な実施形態において、非均質分散ストレージ配分最適化の問題に関して、複数レベルの対称配分を探索する数式(1)によってもたらされる様々なアルゴリズムが提供されている。レベル数及び対称配分の柔軟性が増大するにつれて、アルゴリズムの実行時間(例えば、コンピュータプロセッサを用いる場合の実行時間)が延びる。しかし、提示した数値実験によれば、本願開示の様々な実施形態に基づいて提案された対称配分は、少ないレベル(例えば、1レベルや2レベル等)を伴うものであって、比較的低い複雑性を伴い、比較的短い実行時間を伴うものであったとしても、多くのシナリオにて既存のより複雑な配分スキームに勝る性能をもたらすことができることが示されている。
【0058】
〔ハードウェア考慮事項〕
本願開示の
図1にて提示され、かつ前述のセクションで説明された分散非均質システムについて再度言及すると、
図1内の対応するボックス(例えば、「ストレージノードi」と称されるボックス)によって表されるストレージノードが様々なハードウェア/ファームウェア/ソフトウェアの組合せの形をとることができ、これによって提供される様々なアルゴリズムの効率性に影響を与えずに、
図1に表されるシステムの非均質的性質を作出することができることを、当業者は容易に理解することができる。各ストレージノードは、実質的に、例えば、単一のハードディスクドライブ、単一のコンピュータベースのワークステーション、ネットワーク化されたサーバを備えるデータセンタ、ストレージアレイ又は単一のインターネットプロバイダ等のデータを格納することができるエンティティとみなされることができる。
【0059】
1つの例示的な実装例によれば、各ストレージノードは異なるクラウドサービスプロバイダであることができ、関連付けられた仮想プライベートサーバ(VPS)及び対応するストレージシステムを用いて、データオブジェクトx
iの部分についてのソース(110)とストレージと通信することができる。各クラウドサービスプロバイダ(例えば、ストレージノード等)は既知の統計的アップタイム/ダウンタイム(例えば、ノードが80%又は70%又は...%の時間だけ利用可能となっていること等)を有していることができ、これをさらに用いて、データコレクタ(115)を介してのデータオブジェクトリカバリに関しての関連付けられたアクセス/信頼度モデル(例えば、確率p
iでクラウドサービスが利用可能となっていること等)を導出することができる。
【0060】
別の例示的実装例によれば、各ストレージノードは、ソース(110)のための主ストレージとして用いられるデータストレージラック内に用いられる物理的ハードディスクであることができる。例えば、ソースはサーバコンピュータであることができる。追加的には、各ハードディスクは、ハードディスク製造者によって提供される例えば平均故障間隔(MTBF)パラメータ等に基づいている関連付けられた故障曲線を有していることができる。このような各ハードディスクについてのMTBF及びハードディスクの年齢を用いて、データコレクタワークステーションによるデータオブジェクトのリカバリに関しての対応するアクセス/信頼度モデルを導出することができる。
【0061】
一部の事例では、ストレージノードの信頼度/アクセス可能性は、ノードの様々な構成要素の品質についての関数として表され得る。例えば、再生品ドライブや低グレード構成要素を用いて製造されたドライブ等の安価なハードディスクドライブは、最新のハードディスクに比してより低い信頼度を有することができる。別の例を挙げるならば、古めのインフラストラクチャ(例えば、ハードウェア、コンピュータ、ストレージシステム、ケーブル類及び通信リンク等...)を用いているサービスプロバイダは、最新のインフラストラクチャを用いているプロバイダよりも安いが、劣った信頼度/アクセス可能性を有し得る。このような場合において数式(1)によって記述された最適化問題は、分散された非均質ストレージ空間に関連付けられるコストを勘定に入れて、かつ、データオブジェクトのリカバリ可能性を確保しつつそのようなコストの最小化を図ることができる。したがって、本願開示による様々なアルゴリズムにて説明されて提供された方法は、総システムコストを削減するため及び信頼度を維持するために用いられることができる。
【0062】
図1に示され、様々なストレージノード及びステーション(110、115)を接続する様々な通信リンクは、ツイステッド導線、同軸ケーブル、イーサネットケーブル、電気的/光学的信号を搬送するために導体を用いる任意のタイプのケーブル等の導体を用いる有線接続及び/又は空中に送出されるRF信号を用いる無線リンクであることができる。このようなリンクの幾つかは、有線及び無線のリンクの組合せを用いて実現することができる。
【0063】
本願開示の様々な実施形態では、ソース(例えば、
図1の110、
図16の1610)は、本願開示によって提供される様々なアルゴリズム(例えば
図4乃至7)の1以上を包含するプログラムコード(例えば、ソフトウェア等)を実行しているコンピュータプロセッサであることができる。このようなプログラムコードは、本願開示の様々なアルゴリズムによる様々なステップを包含することができる。このようなコンピュータプロセッサは、合理的な程度の演算能力及びメモリサイズを有する、メインフレーム、マイクロコンピュータ、デスクトップ機(PC、Mac等)、ラップトップ機、ノートパソコン等の市販品又は具体的なタスクのために設計されたプロプライエタリハードウェアを含む任意のターゲットハードウェア(例えば、後述の
図18)によって実装されることができ、これらはマイクロプロセッサやデジタル信号プロセッサ(DSP)や様々なFPGA/CPLD等を含むことができる。当業者は、このようなコンピュータプロセッサについての、異なるオペレーティングシステム(OS)及び/又はハードウェア構成を用いる多種多様な構成をよく知っている。このため、1以上の様々なアルゴリズムを包含するプログラムコードは、ソースの任意の特定のターゲットハードウェアに向けて適合されることができる。
【0064】
本願開示にて説明された方法(例えば、
図4乃至7に示されている単一及び複数レベル対称配分アルゴリズム並びに関連するステップバイステップチャート等)及び対応する分散ストレージ通信システムは、ハードウェア、ソフトウェア又はこれらの組合せによって実装されることができる。モジュール、ノード又は構成要素として説明された要素は、集合的に又は個別的に、ハードウェア、ソフトウェア及び/又はファームウェアの組合せを用いて実装されることができる。本願開示の方法(例えば、フローチャートやアルゴリズム等)のソフトウェア部分は、コンピュータ可読媒体を備えることができ、該媒体は命令(例えば、実行可能プログラム等)を備えることができ、該命令の実行によって説明された方法の少なくとも一部が行われ、本願開示の様々な実施形態に基づく対称配分アルゴリズムの一部の又は全体的な構築等が該命令の実行によって行われる。コンピュータ可読媒体は、例えばランダムアクセスメモリ(RAM)及び/又は読み出し専用メモリ(ROM)を含むことができる。命令は、プロセッサ(例えば、デジタル信号プロセッサ(DSP)等)、特定用途向け集積回路(ASIC)、フィールドプログラマブル論理アレイ(FPGA)又はこれらの組合せによって実行されることができ、これらは単一の集積回路(IC)と統合されていることができる。
【0065】
図18は、本願開示の様々な教示内容による、1以上のコード/サブグラフ構築方法を実装するための(例えば、ソースノード等に関する)及び/又はそのようにしてエンコードされたデータを復号するための(例えば、リレー/シンクノード等に関する)ターゲットハードウェア(10)(例えば、コンピュータシステム等)についての例示的実施形態である。このターゲットハードウェアは、プロセッサ(15)と、メモリバンク(20)と、ローカルインターフェースバス(35)と、1以上の入出力装置(40)を備える。プロセッサは、メモリ(20)内に格納されている何らかの実行可能プログラムに基づいて、提供される様々なコーディング構築方法の実施形態に関連する1以上の命令を、オペレーティングシステム(25)が提供されることにより(例えば、全体的に又は部分的に)実行することができる。これらの命令は、ローカルインターフェース(35)を介して、ローカルインターフェース及びプロセッサ(15)に特有な何らかのデータインターフェースプロトコルに準拠して、プロセッサ(20)へと伝達される。ローカルインターフェース(35)は、プロセッサベースのシステムの複数の要素間におけるアドレス、制御及び/又はデータ接続を提供することに一般的に向けられた、コントローラ、バッファ(キャッシュ)、ドライバ、リピータ及びレシーバ等の複数の要素に関しての象徴であることに留意されたい。幾つかの実施形態においては、幾らかのローカルメモリ(キャッシュ)をプロセッサ(15)に設けることができ、実行されるべき命令の一部をここに格納して実行速度を幾らか向上させることができる。プロセッサによる命令の実行に際しては何らかの入出力装置(40)の使用が必要となり得るのであり、その場合においては、エンコード及び/又はデコードされるべきメッセージを含むビットストリームデータを入力すること、キーボードからのコマンドを入力すること、表示装置へデータを出力することまたは、通信チャネルを介して送出されるべきエンコードされたデータパケット(例えば、本願にて提供される方法によるもの)を出力すること、通信チャネルからのデータパケットを入力すること等が必要とされ得る。一部の実施形態では、オペレーティングシステム(25)は、プログラムの実行のために必要とされる様々なデータ及び命令を集約するための中央要素となることによってこれらのタスクを促進して、これらをマイクロプロセッサに提供する。一部の実施形態では、オペレーティングシステムは存在しない場合があり、全てのタスクはプロセッサ(15)による直接的制御の下に置かれるが、ターゲットハードウェア装置(10)の基本的アーキテクチャは
図18に示したもののままとされる。一部の実施形態では、複数のプロセッサを並列構成において用いて実行速度を増すことができる。このような場合においては、実行可能プログラムは、並列実行のために特に適合させたものとされることができる。一部の実施形態では、プロセッサ(15)が本願開示にて提供される方法の一部を実行することができ、他の部分は、ローカルインターフェース(35)を介してターゲットハードウェア(10)によってアクセス可能な入出力ロケーションに配置された専用のハードウェア/ファームウェアを用いて、実装されることができる。ターゲットハードウェア(10)は、複数の実行可能プログラム(30)(例えば、特殊な通信プログラム等を含む)を含むことができ、各々は互いの関係で独立的に又は複合的に実行されることができる。これらの実行可能プログラムは、プロセッサによって実行されると、本願開示において提示された方法の少なくとも一部(例えば、構築アルゴリズム、エンコーディング、デコーディング等)を行うための命令を備えることができる。
【0066】
図18に示した例示的コンピュータハードウェアは、集積回路(IC)内にて実装されることができる。本願開示の幾つかの実施形態によれば、本願開示の様々な実施形態(例えば、アルゴリズム等)を全体的又は部分的に実装する対称配分モジュールは、IC内にて部分的又は全体的に実装されることができる。このようなICは、システムの一部として用いられて、本願開示の様々な実施形態による非均質システムについての対称配分を提供するために用いられることができる。IC性能及び/又は他のシステム要件に基づいて、例えば配分及び/又はアルゴリズム実行速度についての特定の所望性能を満たすように、本願開示のアルゴリズムを適合させるようにして、ICのメモリ(例えば、プログラマブルメモリ等)内に格納されているプログラムをアップグレードすることができる。当業者は、提供されている対称配分の方法及び
図4乃至7にフローチャートが示されているアルゴリズムを用いることによって、
図1及び
図16に示されたシステムについての様々な他のハードウェア/ソフトウェア/ファームウェアに関しての実装例を、部分的に又は全体的に着想することができる。
【0067】
上述の例は、非均質システム用の分散ストレージ配分並びに関連する単一及び複数レベル対称配分アルゴリズムについての実施形態を如何にして作成及び使用するかについての完全な開示及び説明を、当業者に与えるために提供されているのであって、発明者が自己の開示として認識する範囲を限定するものとしては意図されていない。本願開示を実施するための上述した実施態様に関して施される変更は、情報/コーディング/通信についての理論分野及び処理分野の当業者によって用いられることができ、また、後述の請求の範囲の範疇内となるものと意図されている。本願明細書にて言及した全ての特許及び刊行物は、本願開示が関連する分野の当業者の技術水準を指し示すものであることができる。本願開示にて引用された全ての参照文献は、仮にそれらが個別的にそれらの全体について参照によって取り込まれたときと同じ効果をもって参照により取り込まれる。
【0068】
本願開示は、特定の方法又はシステムに限定されないものと理解されるべきであり、もちろんこれらは多種多様である。また、本願にて用いる用語は具体的な実施形態を説明するためだけに用いられているのであり、限定的なものとしては意図されていない。本願明細書及び添付の請求の範囲において用いられる不定冠詞及び定冠詞を伴う単数形は、内容が反対を明確に指示している場合を除いて、複数形の指示対象を含む。「複数の」との用語は、内容が反対を明確に指示している場合を除いて、2以上の指示対象を含む。明確に他の定義がされていない限り、本願にて用いられた技術的及び科学的な用語の全ては、本願開示が属する技術分野の当業者が一般的に理解する意味と同じ意味を持つ。
【0069】
本願開示において、参考文献欄で引用されて[.]で示される9つの文献であって題名・著者・出版情報が提供される文献は、各々の全体について、参照によって取り込まれる。
【0070】
本願開示について幾つかの実施形態を説明した。もっとも、本願開示の趣旨及び範囲から逸脱せずに様々な変更を加えることができるということは理解されるべきことである。したがって、他の実施形態も後述の請求の範囲の範疇内に含まれることになる。