特許第6576324号(P6576324)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ カリフォルニア インスティチュート オブ テクノロジーの特許一覧

(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6576324
(24)【登録日】2019年8月30日
(45)【発行日】2019年9月18日
(54)【発明の名称】非均質システム用の分散ストレージ配分
(51)【国際特許分類】
   G06F 3/06 20060101AFI20190909BHJP
   G06F 13/10 20060101ALI20190909BHJP
【FI】
   G06F3/06 301Z
   G06F13/10 340A
【請求項の数】17
【全頁数】26
(21)【出願番号】特願2016-502215(P2016-502215)
(86)(22)【出願日】2014年3月13日
(65)【公表番号】特表2016-517588(P2016-517588A)
(43)【公表日】2016年6月16日
(86)【国際出願番号】US2014026689
(87)【国際公開番号】WO2014151928
(87)【国際公開日】20140925
【審査請求日】2017年3月8日
(31)【優先権主張番号】61/784,282
(32)【優先日】2013年3月14日
(33)【優先権主張国】US
(73)【特許権者】
【識別番号】508032284
【氏名又は名称】カリフォルニア インスティチュート オブ テクノロジー
(74)【代理人】
【識別番号】100147485
【弁理士】
【氏名又は名称】杉村 憲司
(74)【代理人】
【識別番号】100164471
【弁理士】
【氏名又は名称】岡野 大和
(74)【代理人】
【識別番号】100188307
【弁理士】
【氏名又は名称】太田 昌宏
(72)【発明者】
【氏名】ジャオ リー
(72)【発明者】
【氏名】トレイシー シー ホー
(72)【発明者】
【氏名】ディレク レオン
(72)【発明者】
【氏名】ホンギ ヤオ
【審査官】 田名網 忠雄
(56)【参考文献】
【文献】 米国特許出願公開第2013/0054536(US,A1)
【文献】 特開2003−296150(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 3/06−3/08
G06F 13/10−13/14
G06F 16/00−16/958
(57)【特許請求の範囲】
【請求項1】
非均質ストレージシステムにおいてストレージ量を配分するコンピュータベースの方法であって、該コンピュータベースの方法は:
既知であり非均質なアクセス確率を有するハードウェアストレージノードのセットを提供するステップと、
コンピュータによって、目的関数を提供するステップと、
コンピュータによって、制約を提供するステップと、
前記制約及び前記目的関数に基づいて、コンピュータによって、前記ハードウェアストレージノードのセットについてのk個の互いに素であるサブセットを選択するステップであって、kは1以上の整数であり、前記k個の互いに素であるサブセットの各々は、複数のハードウェアストレージノードを含む、ステップと、
前記選択するステップに基づいて、コンピュータによって、前記ストレージ量を前記k個の互いに素であるサブセットに対して配分するステップと
を含む、方法であって、
前記配分するステップは、前記k個の互いに素であるサブセットの前記複数のハードウェアストレージノードの前記非均質なアクセス確率及び前記制約に基づいており、かつ、前記配分するステップは、前記k個の互いに素であるサブセットのうちのk番目のサブセットの各ハードウェアストレージノードに、等量に配分されたストレージ量Sを基準として、前記k個の互いに素であるサブセットのうちの1番目、2番目、・・・、(k−1)番目のサブセットの各ハードウェアストレージノードに、それぞれ、k*S、(k−1)*S、…、2*Sのストレージ量が等量に配分されることとなるように、前記ストレージ量を前記k個の互いに素であるサブセットの前記複数のハードウェアストレージノードに跨がって分散させることによって達成される、方法。
【請求項2】
前記目的関数は、a)データ回収の信頼度、b)データのアクセス可能性、及びc)ストレージのコスト、の1以上に対応する、請求項1に記載のコンピュータベースの方法。
【請求項3】
前記制約は、a)前記ハードウェアストレージノードのセットに関しての利用可能な総ストレージ以下であるストレージ量、b)ストレージのコスト、c)データ回収の信頼度、及びd)データのアクセス可能性、の1以上に対応する、請求項1又は2に記載のコンピュータベースの方法。
【請求項4】
コンピュータによって、ファイルを提供するステップと、
コンピュータによって、前記ファイルを複数のファイルに分割するステップと、
前記提供するステップと前記分割するステップに基づいて、コンピュータによって、前記複数のファイルをエンコードするステップと、
前記エンコードするステップに基づいて、コンピュータによって、前記ストレージ量を表す総サイズとなる複数のエンコードされたファイルを取得するステップと、
前記取得するステップに基づいて、コンピュータによって、前記複数のエンコードされたファイルを、前記選択されたk個の互いに素であるサブセット上に格納するステップと
をさらに含む請求項1乃至3のいずれか一項に記載のコンピュータベースの方法であって、
各エンコードされたファイルのサイズは、前記配分するステップによって決定された配分済みストレージ量に合致される、方法。
【請求項5】
前記エンコードするステップは、a)最大距離分離(MDS)符号、及びb)ランダム線形符号、のいずれか1つを用いて行われる、請求項4に記載のコンピュータベースの方法。
【請求項6】
前記k個の互いに素であるサブセットのあるサブセットのハードウェアストレージノードは、a)ハードディスク、b)コンピュータシステム、c)データサーバ、d)データセンタ、e)インターネットサービスプロバイダ、及びf)仮想プライベートサーバ(VPS)の1つを備える、請求項1乃至5のいずれか一項に記載のコンピュータベースの方法。
【請求項7】
前記選択するステップ及び前記配分するステップはコンピュータベースのアルゴリズムによって行われ、該アルゴリズムのステップは、a)k=1である1レベル対称配分アルゴリズム、b)k=2である2レベル対称配分アルゴリズム、c)k=3である3レベル対称配分アルゴリズム、及び一般化されたd)kレベル対称配分アルゴリズム、の1以上によって提供され、
ードウェアストレージノードのセットについての前記k個の互いに素であるサブセットのそれぞれは、レベルと呼ばれ、前記1、2、3、kレベル対称配分アルゴリズムは、それぞれ、1、2、3、kレベルを選択することを含む、請求項1乃至6のいずれか一項に記載のコンピュータベースの方法。
【請求項8】
前記kレベルの対称配分アルゴリズムは前記2レベル及び3レベル対称配分アルゴリズムについての拡張であり、
分されるストレージ量は、
【数1】

によって表され、Tは前記ストレージ量であり、mは前記kレベルのうちのレベルiのハードウェアストレージノードの数である、請求項7に記載のコンピュータベースの方法。
【請求項9】
コンピュータベースのソースを備える分散ストレージ配分のためのコンピュータベースのシステムであって、該ソースは1以上の通信リンク上で既知であり非均質なアクセス確率を有する複数のハードウェアベースのストレージノードと通信するように構成されており、該ソースはストレージ配分アルゴリズムを実行して前記複数のハードウェアベースのストレージノード上に配分されたストレージを得るように構成されており、前記アルゴリズムは、
i)提供されたバジェットと提供された目的関数とに基づいて、前記複数のハードウェアベースのストレージノードについてのk個の互いに素であるサブセットを選択するタスクであって、kは1以上の整数であり、前記提供されたバジェットは前記複数のハードウェアベースのストレージノードに関しての利用可能な総ストレージサイズについての部分を指定する、タスクと、
ii)前記提供されたバジェットを前記k個の互いに素であるサブセットの前記複数のハードウェアベースのストレージノードに跨がって分散させることによって前記提供されたバジェットを前記k個の互いに素であるサブセットに配分するタスクであって、前記k個の互いに素であるサブセットのうちのk番目のサブセットの各ハードウェアストレージノードに、等量に配分されたストレージ量Sを基準として、前記k個の互いに素であるサブセットのうちの1番目、2番目、・・・、(k−1)番目のサブセットの各ハードウェアストレージノードに、それぞれ、k*S、(k−1)*S、…、2*Sのストレージ量が等量に配分されることとなる、タスクと
を行うアルゴリズムであって
記提供されたバジェットを配分するタスクは前記非均質なアクセス確率及び前記提供されたバジェットに基づく、システム。
【請求項10】
前記目的関数は、a)データ回収の信頼度、b)データのアクセス可能性、c)ストレージのコスト、及びd)利用可能ストレージのサイズ制限の1以上に対応する、請求項9に記載のコンピュータベースのシステム。
【請求項11】
前記ストレージ配分アルゴリズムは、a)k=1である1レベル対称配分アルゴリズム、b)k=2である2レベル対称配分アルゴリズム、c)k=3である3レベル対称配分アルゴリズム、及び一般化されたd)kレベル対称配分アルゴリズム、の1以上によって提供されるステップをさらに含み、
ードウェアストレージノードのセットについての前記k個の互いに素であるサブセットのそれぞれは、レベルと呼ばれ、前記1、2、3、kレベル対称配分アルゴリズムは、それぞれ、1、2、3、kレベルを選択することを含む、請求項9又は10に記載のコンピュータベースのシステム。
【請求項12】
前記kレベルの対称配分アルゴリズムは前記2レベル及び3レベル対称配分アルゴリズムについての拡張であり、
分されるバジェット量は、
【数2】

によって表され、Tは前記提供されたバジェットであり、mは前記kレベルのうちのレベルiのハードウェアベースのストレージノードの数である、請求項11に記載のコンピュータベースのシステム。
【請求項13】
1以上の通信リンク上で既知であり非均質な信頼度を有する複数のハードウェアベースのストレージノードを含むハードウェアベースのストレージノードのセットと通信するように構成された請求項9に記載のコンピュータベースのシステムと、
既知であり非均質な信頼度を有する複数のハードウェアベースのストレージノードと
を備える分散ストレージ配分システムであって、
前記コンピュータベースのシステムは、前記提供されたバジェットに等しいサイズのエンコードされたファイルを、前記ストレージ配分アルゴリズムによって提供された配分済みストレージに基づいて、前記複数のハードウェアベースのストレージノードに跨がって分散させるように構成された、システム。
【請求項14】
前記エンコードされたファイルは、前記コンピュータベースのソース上で実行されるコンピュータベースのエンコーディングアルゴリズムであって、a)最大距離分離(MDS)符号、及びb)ランダム線形符号、のいずれか1つに基づいているアルゴリズムによってエンコードされる、請求項13に記載の分散ストレージ配分システム。
【請求項15】
前記複数のハードウェアベースのストレージノードのあるハードウェアベースのストレージノードは、a)ハードディスク、b)コンピュータシステム、c)データサーバ、d)データセンタ、e)インターネットサービスプロバイダ、及びf)仮想プライベートサーバ(VPS)の1つを備える、請求項13又は14に記載の分散ストレージ配分システム。
【請求項16】
複数の独立しているメッセージを通信リンク上でリアルタイムストリーミングするためのコンピュータベースの方法であって、該コンピュータベースの方法は:
i)前記複数の独立しているメッセージのメッセージサイズsを、コンピュータによって提供するステップと、
ii)時間ステップの数に基づいてメッセージ作成間隔cを、コンピュータによって提供するステップであって、前記メッセージ作成間隔は2つの連続するメッセージの作成時刻間の時間間隔を規定する、ステップと、
iii)バジェットを指定する制約を、コンピュータによって提供するステップであって、前記バジェットは各時間ステップにて送信されるエンコードされたパケットについての最大サイズに対応する、ステップと、
iv)時間ステップの個数で表された固定されたデコーディング遅延dを、コンピュータによって提供するステップであって、前記固定されたデコーディング遅延は前記複数の独立しているメッセージのうちのあるメッセージの作成時刻との関係での遅延を規定し、前記メッセージは該遅延内にてコンピュータベースのデコーダによって1以上の送信されたパケットに基づいてデコードされなければならない、ステップと、
v)前記通信リンク上での送信されたパケットについての非均質遅延依存性損失確率を、規定する非均質アクセス確率モデルを、コンピュータによって提供するステップと、
vi)前記複数の独立しているメッセージのうちのあるメッセージを、コンピュータによってエンコードするステップと、
vii)前記ステップi)〜vi)に基づいて、前記エンコードされたメッセージに対応する複数のパケットをコンピュータによって生成して、かつ、前記複数のパケットを前記通信リンク上で逐次的に送信するステップ
とを含む、方法であって、
前記複数の独立しているメッセージのうちの時間ステップiにおいて作成されたメッセージに、非均質なアクセス確率モデルに従って選択された時間ステップi,i+1,…,i+dにおいて送信されたパケット内の領域の部分、Si+1、…、Si+dが、配分され、
時間ステップi,i+1,…,i+dにおいて送信された前記パケット内の領域の配分された部分Si+1、…、Si+dは、それぞれ、2*S、…、(d+1)*Sに等しく、
前記メッセージは、時間ステップi,i+1,…,i+dにおけるパケット内の領域の配分された部分に跨がって削除修正コードを用いてコーディングされ、
前記メッセージは、コンピュータベースのデコーダによって、前記メッセージの作成時刻から測って前記固定されたデコーディング遅延内にてデコードされる、方法。
【請求項17】
前記パケット内の領域の前記配分された部分は、コンピュータベースの配分アルゴリズムによって得られるのであって、該アルゴリズムのステップは、a)前記パケット内の領域の配分された部分が1の配分された部分である場合における1レベル対称配分アルゴリズム、b)前記パケット内の領域の配分された部分が2の配分された部分である場合における2レベル対称配分アルゴリズム、c)前記パケット内の領域の配分された部分が3の配分された部分である場合における3レベル対称配分アルゴリズム、及びd)前記パケット内の領域の配分された部分がkの配分された部分である場合におけるkレベル対称配分アルゴリズム、の1以上によって提供される、請求項16に記載のコンピュータベースの方法。
【発明の詳細な説明】
【技術分野】
【0001】
〔関連出願の相互参照〕
本願は、「非均質システム用の分散ストレージ配分」(Distributed Storage Allocation for Heterogeneous Systems)と題する2013年3月14日に出願された米国仮特許出願第61/784,282号の優先権を主張するのであり、ここにてその全体が参照によって取り込まれる。
【0002】
〔政府援助についての陳述〕
この発明は、空軍から授与された助成第FA9550−10−10166号に基づく政府援助の下でなされた。政府は、この発明に関して一定の権利を有する。
【背景技術】
【0003】
本願の開示は、ネットワーク通信及び例えばコンテンツデリバリ又は無線通信において用いられる分散ネットワークアーキテクチャの分野に関する方法及びアルゴリズムに関する。特に本願の開示は、新規な分散ストレージ配分手法を提供し、これは、例えば非均質なアクセス確率を有するストレージノードを伴う分散ストレージを備えるネットワークを介した通信に用いることができる。目標は、分散ストレージ上で、リカバリが成功する確率を最大化する態様で、所与のデータオブジェクト(例えば、ファイル等)を格納することである。データオブジェクトは、複数のストレージノードに跨がって分割及びコーディングされることができる。適切な符号(例えば、最大距離分離(MDS)符号、ランダム線形符号等)を用いると仮定すれば、アクセスされたデータの総量が少なくとも元のデータオブジェクトのサイズである場合、元のデータオブジェクトをリカバーすることができる。
【先行技術文献】
【非特許文献】
【0004】
【非特許文献1】D. Leong、A. G. Dimakis及びT. Ho;「Distributed storage allocations」(IEEE Trans. Inf. Theory, vol. 58, no. 7, pp. 4733-4752、2012年7月)
【非特許文献2】W. K. Lin、D. M. Chiu及びY. B. Lee;「Erasure code replication revisited」(Proc. Int. Conf. Peer-to-Peer Comput. (P2P)、2004年9月)
【非特許文献3】A. Tsirigos及びZ. J. Haas;「Analysis of multipath routing-Part I: The effect on the packet delivery ratio」(IEEE Trans. Wireless Commun., vol. 3, no. 1, pp. 138-146、2004年1月)
【非特許文献4】「Analysis of multipath routing, Part 2: Mitigation of the effects of frequently changing network topologies」(IEEE Trans. Wireless Commun., vol. 3, no. 2, pp. 500-511、2004年3月)
【非特許文献5】J.-S. Wu及びR.-J. Chen;「An algorithm for computing the reliability of weighted-k-out-of-n systems」(IEEE Trans. Rel., vol. 43, no. 2, pp. 327-328、1994年6月)
【非特許文献6】V. Ntranos、G. Caire及びA. G. Dimakis;「Allocations for heterogeneous distributed storage」(Proc. IEEE Int. Symp. Inf. Theory (ISIT)、2012年7月)
【非特許文献7】D. Leong及びT. Ho;「Erasure coding for real-time streaming」(Proc. IEEE Int. Symp. Inf. Theory (ISIT), Cambridge, Massachusetts, USA、2012年7月)
【非特許文献8】D. Leong、A. Qureshi、及びT. Ho;「On coding for real-time streaming under packet erasures」(Proc. IEEE Int. Symp. Inf. Theory (ISIT), Istanbul, Turkey、2013年7月)
【非特許文献9】Y. Chen、J. Chen及びY. Yang;「Multi-hop delay performance in wireless mesh networks」(MOBILE NETW APPL, vol. 13, pp. 160-168、2008年4月)
【発明の概要】
【発明が解決しようとする課題】
【0005】
本願開示の様々な実施形態によれば、分散ストレージシステム内の様々なストレージノードは、それらのアクセス確率について降順で配列されうる(例えば、最も高い故障確率のノードが最後とされる)。1以上のレベルに関しての対称配分に基づく新規な手法を、本願開示にて提供する。基本的な1レベル対称配分では、最初のm個のノード上で均一に全ストレージバジェットを分散し、mの値は、例えば故障確率に基づいて決定される。2レベル対称配分では、バジェットは2分されて、一方の部分は最初のm個のノードにわたって均一に分散されて、他方の部分は後続のm個のノードにわたって均一に分散され、第1のサブセット内の各ノードに配分される量は第2のサブセットのそれの2倍とされる。k=2とした2レイヤー配分から導出されるkレベル対称配分についても説明する。本願開示の様々な実施形態によれば、アクセス確率を与えられた場合において良好な1レベル、2レベル、及びkレベルの対称配分を発見するための効率的なアルゴリズムが提供される。
【0006】
本願開示の様々なグラフにて示すように、本願開示による1レベル、2レベル及びkレベルの対称配分は、その複雑度が低けれども、大偏差不等式及び凸最適化に基づく既存の方法に勝る性能を、同様のパラメータ設定下にて、数値実験においてもたらすことができる。さらに、本願開示による新規な2レベル及びkレベルの対称配分は、新規な1レベル対称配分よりも高いリカバリ確率を達成することができる。また、本願開示によれば、少数のノード個数(例えば、n≦4)については、網羅的に決定することができる正確な最適配分を、1レベル及び2レベルの対称配分の中から発見することができる。
【0007】
分散ストレージに加えて、上記手法は、例えばリアルタイムストリーミング用の符号設計の問題等についても適用されることができ、該問題においては、メッセージが逐次的にソース(例えば、コンピュータベースのワークステーション等)に到着することができ、パケット削除チャネルを介したシンク(sink)(例えば、コンピュータベースのワークステーション等)への送信を行うためにソースにてメッセージがエンコードされ、該シンクは指定された遅延の間にメッセージを逐次的に復号する必要がある。様々なネットワークシナリオにおいては、(例えば、syncノードによって受信された場面等における)パケット遅延が変動し、これによって遅延と共にパケット受信の確率が上昇し得る。リアルタイムストリーミング問題における送信パケットをストレージ配分問題のノードとして同視すれば、対応する非均質遅延依存性の損失確率が与えられれば、対応する非均質ストレージ配分問題に関しての解法は対応するストリーミング問題に関してのイントラセッションコードに転じることになる。
【0008】
本願開示の第1の側面によれば、非均質ストレージシステムにおいてストレージを配分するコンピュータベースの方法であって、該コンピュータベースの方法は:既知であり非均質な信頼度を有するハードウェアストレージノードのセットを提供するステップと、コンピュータによって、目的関数を提供するステップと、コンピュータによって、制約を提供するステップと、制約及び目的関数に基づいて、コンピュータによって、ハードウェアストレージノードのセットについての1以上の互いに素であるサブセットを選択するステップと、選択するステップに基づいて、コンピュータによって、ストレージ量を1以上の互いに素であるサブセットに対して配分するステップとを含む、方法であって、配分するステップは非均質な信頼度及び制約に基づいており、かつ、配分するステップは、1以上の互いに素であるサブセットの各サブセットの各ハードウェアストレージノードに等量のストレージ量であって異なるサブセットのハードウェアストレージノードに配分される量とは異なる量のストレージ量が配分されることとなるようにストレージ量を1以上の互いに素であるサブセットに跨がって分散させることによって達成される、方法、が提供される。
【0009】
本願開示の第2の側面によれば、分散ストレージ配分のためのコンピュータベースのシステムが提供されるのであって、該コンピュータベースのシステムは:コンピュータベースのソースを備える分散ストレージ配分のためのコンピュータベースのシステムであって、該ソースは1以上の通信リンク上で既知であり非均質な信頼度を有する複数のハードウェアベースのストレージノードと通信するように構成されており、該ソースはストレージ配分アルゴリズムを実行して複数のハードウェアベースのストレージノード上に配分されたストレージを得るように構成されており、アルゴリズムは、i)提供されたバジェットと提供された目的関数とに基づいて、複数のハードウェアベースのストレージノードについての1以上の互いに素であるサブセットを選択するタスクであって、バジェットは複数のハードウェアベースのストレージノードに関しての利用可能な総ストレージサイズについての部分を指定する、タスクと、ii)バジェットを1以上の互いに素であるサブセットに跨がって分散させることによってバジェットを1以上の互いに素であるサブセットに配分するタスクであって、1以上の互いに素であるサブセットの各サブセットの各ハードウェアベースのストレージノードに等量のバジェットであって異なるサブセットのハードウェアベースのストレージノードに配分される量とは異なる量のバジェットが配分されることとなる、タスクとを行うアルゴリズムであって、バジェットについての配分タスクは非均質な信頼度及びバジェットに基づいている、システムが提供される。
【0010】
本願開示の第3の側面によれば、複数の独立しているメッセージを通信リンク上でリアルタイムストリーミングするためのコンピュータベースの方法であって、該コンピュータベースの方法は:i)複数の独立しているメッセージのメッセージサイズsを、コンピュータによって提供するステップと、ii)時間ステップの数に基づいてメッセージ作成間隔cを、コンピュータによって提供するステップであって、メッセージ作成間隔は2つの連続するメッセージの作成時刻間の時間間隔を規定する、ステップと、iii)バジェットを指定する制約を、コンピュータによって提供するステップであって、バジェットは各時間ステップにて送信されるエンコードされたパケットについての最大サイズに対応する、ステップと、iv)時間ステップの個数で表された固定されたデコーディング遅延dを、コンピュータによって提供するステップであって、固定されたデコーディング遅延は複数の独立しているメッセージのうちのあるメッセージの作成時刻との関係での遅延を規定するのであり、メッセージは該遅延内にてコンピュータベースのデコーダによって1以上の送信されたパケットに基づいてデコードされなければならない、ステップと、v)通信リンク上での送信されたパケットについての非均質遅延依存性損失確率を、規定する非均質信頼度モデルを、コンピュータによって提供するステップと、vi)複数の独立しているメッセージのうちのあるメッセージを、コンピュータによってエンコードするステップと、vii)ステップi)〜vi)の対応に基づいて、エンコードされたメッセージに対応する複数のパケットをコンピュータによって生成して、かつ、複数のパケットを通信リンク上で逐次的に送信するステップとを含む、方法であって、複数の独立しているメッセージのうちの時間ステップiにおいて作成されたメッセージに、非均質信頼度モデルに従って選択された時間ステップi,i+1,…,i+dにおいて送信されたパケット内の領域の部分が、配分され;メッセージは、時間ステップi,i+1,…,i+dにおけるパケット内の領域の配分された部分に跨がって削除修正コードを用いてコーディングされ;メッセージは、コンピュータベースのデコーダによって、メッセージの作成時刻から測って固定されたデコーディング遅延内にてデコードされる、方法が提供される。
【図面の簡単な説明】
【0011】
図1】例示的な分散ストレージシステム内での情報フローを示す図であり、ソースsはn個のストレージノードにまたがってコーディング及び格納されるべき正規化された単位サイズの単一のデータオブジェクトを有しており、データコレクタtはノードについてのランダムなサブセットr内に格納されたデータのみをアクセスすることによって元のデータオブジェクトをリカバーしようと試みる、図である。
図2】p≧p≧pを満たす3つの非均質ノード(n=3)を備えるシステムについての最適配分表Iを示す図である。
図3】p≧p≧p≧pを満たす4つの非均質ノード(n=4)を備えるシステムについての最適配分表IIを示す図である。
図4】n=4及び(p,p,p,p)=(0.8479, 0.6907, 0.6904, 0.6725)の場合について、本願開示のアルゴリズム1及び3の各々によって得られた1レベル及び2レベル対称配分の性能を、精密最適解と比較して示す図である。
図5】本願の開示によって提案されるアルゴリズム及び従来技術のアルゴリズムの性能を、n=30の場合のリカバリの失敗確率の観点から表す様々なグラフを示す図である。
図6】総バジェットT=2及びn=30の場合の様々な方法におけるノード当たりの分布量を表す様々なグラフを示す図である。
図7】提案されるアルゴリズムの性能を、n=50の場合のリカバリの失敗確率の観点から表す様々なグラフを示す図である。
図8】総バジェットT=1:7及びn=50の場合の様々な方法におけるノード当たりの分布量を表す様々なグラフを示す図である。
図9】様々なアルゴリズムに関して時間コストをノード個数との関係で表す様々なグラフを示す図である。
図10】メッセージレートs=1とした場合の、復号失敗確率を1から4までのパケットレートPとの関係で表す様々なグラフを示す図である。
図11】メッセージレートsの範囲が0.1から1であり、且つパケットレートP=1である場合における、複合失敗確率を表す様々なグラフを示す図である。
図12】本願開示の実施形態に係る1レベル対称配分アルゴリズムを示す図である。
図13】本願開示の実施形態に係る1レベル対称配分アルゴリズムであって図12に示されるアルゴリズムの簡略版であるアルゴリズムを、示す図である。
図14】本願開示の実施形態に係る2レベル対称配分アルゴリズムを示す図である。
図15】本願開示の実施形態に係る3レベル対称配分アルゴリズムを示す図である。
図16】メッセージが逐次的にソースに到着し、該メッセージはパケット削除チャネルを介した送信のためにエンコードされ、該メッセージはシンクによって作成時刻からの指定された遅延の間に復号されるべきものとされる、例示的なリアルタイムストリーミングシステムを、示す図である。
図17A】パケットが逐次的に送信されるストリーミングパケット構成における、連続する2つの時間ステップにてストリーミングパケットに配分されるストレージを表す図である。
図17B】パケットが逐次的に送信されるストリーミングパケット構成における、連続する2つの時間ステップにてストリーミングパケットに配分されるストレージを表す図である。
図18】本願開示の様々な分散ストレージシステムの様々なストレージノードに用いられる例示的ターゲットハードウェアを示す図である。
【発明を実施するための形態】
【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を格納し、これは所与の総ストレージバジェットTに基づく。ストレージバジェットに対しての制約は、例えば次のことに関連付けられることができる:即ち、制限された送信帯域及び/又は制限された格納領域、さらには、各ノードにおいてデータオブジェクトの全体をミラーリングすることが過度な負担をもたらすという意味におけるストレージコストについての制約。データ回収の時点で、データコレクタ(115)は、確率pで各ノードに独立的にアクセスする。ここで、0<p<1である。rは、データコレクタによってアクセスされたノードについてのランダムなサブセットを表し、rの確率分布は、例えばアクセスモデル及び/又は故障モデル(例えば、ノードやリンクが確率論的に故障する可能性があるということ)等によって指定されることができる。この最適化問題を一般化したものは、リカバリを最大化する目的関数と利用可能なストレージに対して限度を付す制約とで表すことができ、次の数式(1)において示される。
【0018】
【数1】
【0019】
ここで、1 [.]は指標関数(特性関数とも称する)を表す。各ノードは確率pで利用可能となり、結果としてもたらされる利用可能ノードr(例えば、アクセス可能なノード等)についてのセットはランダムなものであり、また、サイズもランダムである。数式(1)の目的関数は、リカバリ(あるいはアクセス)確率とみなすことができ、サブセットrに対応する確率の総和として表すことができ、これは、この場合では総バジェットTを規定する固定関数であるバジェット関数によって制限的条件(例えば、制約等)が付加された場合におけるデータオブジェクトのリカバリを成功させるサブセットrに対応する。換言すれば、数式(1)で表された最適化問題は、利用可能なストレージバジェットについて特定の制限が課された状況下でシステムの信頼性を最大化しようとする。本願開示による様々な教示事項及び後続のセクションで提示される様々な教示事項は、このような最適化問題についての解法を提供する。これらの挟持事項は、異なる信頼度の異なるノード内に如何ほどのストレージをプット(配分)すべきかの問題について最適化を図り、これらのノードを備えるシステムの総体的信頼性が最大化される。このような解法は、最適解を得るためのステップバイステップアルゴリズムを表す流れ図においても提供される。当業者は、このような最適化問題についての定式化及び対応する方法に関して熟知している。最適化問題(1)において検討される制約は固定されているが、当業者は、提示される様々な実施形態による教示事項を依然用いたままで、どのようにしてこのような制約を変更して課される要求に、より良く適合させて最適化された配分を得るか、を知っている。例えば、バジェット(ストレージ)に関連付けられているコストを最小化することに興味があるとする。この場合、より多くのストレージを使用すれば、システムは、よりコストのかさむものとなる。このような場合、制約がコスト(目的)関数となり、また、信頼性目標が信頼性制約となり、これらについて最適化問題が解かれることになる。換言すれば、所望の目的に応じて、先述の目的関数及び制約を入れ替えることができる。代替的には、目的関数をコスト及び信頼性についての重み関数とすることができる。
【0020】
簡略化のため、T<nであると仮定する。なぜならば、T≧nについては最適な配分が自明なもの:{1,…,1}となるからであり、ここでは各ノードは元のデータオブジェクトについてコピーを1つ格納する。また、x≦1であると仮定することができる。なぜならば、ノードがデータについて1よりも多い個数のコピーを格納することは無益であるからである。
【0021】
nが大きい場合においては数式(1)によって定義された最適化問題は計算的に困難となるが、小さいnについては、サブセット(例えば、ノードのそれ等)の可能な組合せ全てに関して網羅的なサーチを行うことによって最適配分を決定することが可能となる。異なるシナリオについて網羅的サーチによって得られた最適配分に関するリストは、それぞれ図2及び図3の表I及び表IIに示されている。表Iはn=3であり、p≧p≧pについての最適配分を示し、表IIはn=4であり、p≧p≧p≧pについての最適配分を示す。
【0022】
〔1レベル対称配分〕
本願開示の実施形態によれば、ノードのサブセットにわたって総バジェットTを均一に分散することによって、基本的な1レベル対称配分を得る。より高い確率のノードを用いることによってシステムの信頼性が向上する。したがって、ノードは、p≧p≧…≧pとなるように、アクセス確率について降順で配列され、数式(1)によって示された最適化問題は、サイズmのサブセットを選択することに単純化され、これは、次の配分に対応する。
【0023】
【数2】
【0024】
リカバリを成功させるには、m個の空でないノードについて少なくとも
のノードにアクセスすることが必要となる。M個の空でないノードにアクセスする確率は、次の通りである。
【0025】
【数3】
【0026】
ここで、
はサイズがMである{1,…, m}のサブセットについてのセットを表す。
【0027】
したがって、リカバリが成功する確率は次の数式(3)によって表される。
【0028】
【数4】
【0029】
本願開示の実施形態によれば、図4に示されるように、アルゴリズム1は、数式(2)及び(3)を用いることによって最適な1レベル対称配分を発見する。本願における「レベル」との用語は、ゼロでないバジェットで配分されたノードの各々が総バジェットの量と同量を含むことになる配分を意味することができる。
【0030】
mの取り得る値全てを検討することに代えて、[1,セクションII−C]で提示したものに類似しているアプローチを考えることができ、
についての個別の値各々に対応する最大のmにアルゴリズムの範囲を限定することができ、それによって候補値
が得られる。ここでKmaxは、
となる最大の整数Kである。しかし、依然として大きい値のnについては、アルゴリズム1は計算的に困難であり続ける。なぜならば、nの値に応じて関連付けられる計算的複雑性が急速に増大するからである。
【0031】
本願開示の実施形態によれば、アルゴリズム1の複雑性をさらに減少させるために、各確率pを確率pの平均値で代替することができる。これは、
と表され、結果として、図5に示すアルゴリズム2が得られ、これはアルゴリズム1の簡略版であるとみなすことができる。元のアルゴリズム1と比べて、この簡略化(pavgを用いること)によってアルゴリズム(例えば、ハードウェアプロセッサ上で実行される対応するプログラムコード等)の実行時間を大幅に減少させることができる。本願開示の後続のセクションで提示される数値実験によると、図5のアルゴリズム2によって説明された簡略化版が、その単純さにもかかわらずすこぶる良好な性能を提供することが分かる。図5の対応するステップ(131)〜(138)で説明されたアルゴリズム2(及び本願開示で説明された他の新規なアルゴリズム)が、本願開示の現セクションにおいて提供された数式についての解法及び関連する簡略化手法についての例示的実装例にすぎないことを当業者は容易に理解するであろう。
【0032】
〔2レベル及び3レベル対称配分〕
表I及びII内の最適配分に関して得た知見に基づいて、そして、一部の最適解は所与のバジェットTについて2レベルの量配分を有するということに着眼して、発明者は2レベル対称配分についてのより一般的なクラスを検討した。これにおいては、各レベルは利用可能なノードの総体についての互いに素となるサブセットを備え、第1レベルの各ノードに配分される量は第2のレベルの各ノードに配分される量の2倍であり、次の通りである。
【0033】
【数5】
【0034】
各ノード内に格納されるデータの量は、Sの倍数として表されることができるため、
であり、Sは定量又は基礎的ストレージブロックとして扱われることができる。先のセクションの手法を踏襲すると、2m+m個の基礎的ストレージブロックのうち少なくとも
がアクセスされるとリカバリが成功するということに発明者が気付いた。ここで、
は、アクセスされた基礎的ストレージブロックの総個数を表し、また、
は、レベルL内でアクセスされたノードの個数を表すものとする。したがって、macc=2macc,1+macc,2である。よって、リカバリの成功を可能とする全てのペア(macc,1,macc,2)についてのセットである
は、次の数式(6)で表されることができる。
【0035】
【数6】
【0036】
ここで発明者は、簡略化のため、2レベル対称配分の第1レベル(例えば、レベル1等)に配分されるノードの量であるmOptが、先述の1レベル対称配分スキームにおけるmOptoneLevelよりも小さい、という仮定を導入する。簡略化のための仮定及び1レベル対称配分にて得られたmOptoneLevelの値に基づいて、並びに本願開示のさらなる実施形態によれば、図6にて説明されるアルゴリズム3が得られる。アルゴリズム3は、アルゴリズム2に大筋で類似した態様で2つのレベル(例えば、レベル1、レベル2等)における確率を計算することによって、(mOpt,mOpt)で与えられる良好な2レベル対称配分を効率的に探索する。
【0037】
1レベル対称配分のケースと同様にして、アルゴリズム3は(m,m)についての特定の選択肢のみを検討することによって探索空間を狭める。具体的には、mについての所与の選択肢については、該アルゴリズムは、
の個別の値各々に対応する最大のmに注目範囲を限定し、これによって以下の候補値が得られる。
【0038】
【数7】
【0039】
ここでKminは、
となる最小の整数Kであり、Kmaxは、
となる最大の整数Kである。
【0040】
発明者の知見によると、MOptの値は多数のループ内では希にしか変化しないものであり、MOptについての値の変化が2つあれば、これらは通常ループのサイズの3分の2の距離Dの範囲内に存在する。したがって、アルゴリズム3では、アルゴリズムのステップ(1402)〜(1413)で定義されるインナーループ内のMOptがループのサイズの3分の2にわたって変化しない場合、アルゴリズムはこのMOptが現在ループ内の最適選択肢であるとみなした上で次のループへと続行し、これによってアルゴリズムの(例えば、ハードウェアプロセッサ上で実行された場合等の)実行時間が大幅に削減され、同時にほぼ同じ性能が得られることになる。また、Dはより小さい値に設定することができ、これによってアルゴリズムの実行は加速されるが、準最適解が発生することもあり得る。
【0041】
本願開示のさらなる実施形態によれば、3つのレベルをサポートする対称配分についてのさらなる一般化手法が、図7のアルゴリズム4にて例示的な形態で説明及び提示されている。ここで、3つのレベルのサブセットのサイズをそれぞれm,m,mとし、第1レベルでのノード当たりの量は第3レベルでのノード当たりの量の3倍であり、第2レベルでのノード当たりの量が第3レベルでのノード当たりの量の2倍である。リカバリの成功を可能にする全てのトリプル(macc,1,macc,2,macc,3)についてのセット
は、次式で表すことができる。
【0042】
【数8】
【0043】
発明者は、簡略化のため、3レベル対称配分におけるmが、本願開示にて先述した2レベル対称配分のmOpt1,twoLevel+mOpt2;twoLevelよりも小さいという仮定を導入する。簡略化のための仮定及び本願開示の実施形態によれば、図7にて説明されるアルゴリズム4が得られる。アルゴリズム4は、数式(1)で表される最適化問題についての良好な3レベル対称配分を効率的に探索する。
【0044】
本願開示の先のセクションにて提示された対称配分でなされたと同様に、特定の選択肢(m,m,m)のみを検討することによって探索空間を狭めることができる。具体的には、m及びmについての所与の選択肢について、発明者は
の個別の値各々に対応する最大のmに注目範囲を限定し、これによって、次の候補値が得られる。
【0045】
【数9】
【0046】
ここで、Kminは、
を満たす最小の整数Kであり、Kmaxは、
を満たす最大の整数Kである。また、距離閾値Dは、アルゴリズムのステップ(1503)〜(1515)で定義された(インナー)ループのサイズの3分の2となるように設定される。
【0047】
本願開示の様々な実施形態によって提案される対称配分は、容易にkレベルをサポートするように一般化されることができる。ここでk=4,5,6,...等である。このようなkレベル対称配分では、空でないノードが各々c、2c,...,kcのデータの量を格納するようにストレージバジェットTを配分することができる。ここでcは対応する定量又は基礎的ストレージブロックSのサイズであり
である。
【0048】
〔数値実験〕
このセクションでは、上述のアルゴリズムの性能を、リカバリ失敗確率の観点から評価する。
【0049】
〔A. n=4の場合における表IIの最適解との比較〕
n=4については、アルゴリズム1及びアルゴリズム3によって得られた1レベル及び2レベル対称配分の性能を、網羅的に計算された表II(図3)から得られた精密最適解と、それぞれ比較することができる。発明者は、1≦T≦4となるストレージバジェット範囲と、0.5から1の間で独立的かつ画一的に選出されたノードアクセス確率p(1≦i≦n)について検討した。図8は、アクセス確率について、典型的なケースにおける結果を示す。本願開示の実施形態による1レベル及び2レベル対称配分は、一般的には精密最適配分良好に近似するものとなることを発明者は発見した。また、特定の限定されたTの範囲については、最適解を得るためには2レベル対称配分が必要となることをも発明者は発見した(例えば、本件においてはm=1,m=3の場合)。
【0050】
〔B. nが大きい値となる場合における他の既存のアルゴリズムとの比較〕
このセクションでは、大きい値のnについての性能に関して、アルゴリズム2、3、4を、非特許文献6で提示される既存のアルゴリズム(即ち、最大分散、チェルノフ閉形式、チェルノフ反復)と、比較する。比較においては、バジェット範囲は1.2≦T≦2とし、また、ノードアクセス確率pは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,p,p,p)に分散されたデータ(x,x,x,x)の量を表す。これらのパケットは、これらがデコードされなければならない遅延の範囲に従って送信される。ハッチングが掛けられた図17Bのボックスは、各送信パケット内の時間ステップ2(例えば、時間ステップ2において作成された場合)におけるデータの量を表す。時間ステップiにて送信されたパケットが時間ステップjまでに受信される確率はpj−iであり、遅延の値Δ=j−iについて、pΔは遅延Δについて増加する関数である。各送信事象にて利用可能な最大総パケットサイズ(例えば、バジェット等)とデコーディング確率pΔを与えられれば、各送信されたパケット(p,p,p,p)についての最適配分パケットサイズ(x,x,x,x)を、最適化問題(1)を用いて導出することができる。よって、これに関連する解法は、非均質ストレージ配分問題との関係で提示した解法に従うこととなる。本願開示によるこのような教示事項とこれら2つの問題間での相似性とを与えられれば、当業者はこのような教示事項を、非均質な構成要素を備える他のシステムにも適用できる。
【0057】
本願開示の様々な実施形態及び先のセクションで述べた様々な実施形態において、非均質分散ストレージ配分最適化の問題に関して、複数レベルの対称配分を探索する数式(1)によってもたらされる様々なアルゴリズムが提供されている。レベル数及び対称配分の柔軟性が増大するにつれて、アルゴリズムの実行時間(例えば、コンピュータプロセッサを用いる場合の実行時間)が延びる。しかし、提示した数値実験によれば、本願開示の様々な実施形態に基づいて提案された対称配分は、少ないレベル(例えば、1レベルや2レベル等)を伴うものであって、比較的低い複雑性を伴い、比較的短い実行時間を伴うものであったとしても、多くのシナリオにて既存のより複雑な配分スキームに勝る性能をもたらすことができることが示されている。
【0058】
〔ハードウェア考慮事項〕
本願開示の図1にて提示され、かつ前述のセクションで説明された分散非均質システムについて再度言及すると、図1内の対応するボックス(例えば、「ストレージノードi」と称されるボックス)によって表されるストレージノードが様々なハードウェア/ファームウェア/ソフトウェアの組合せの形をとることができ、これによって提供される様々なアルゴリズムの効率性に影響を与えずに、図1に表されるシステムの非均質的性質を作出することができることを、当業者は容易に理解することができる。各ストレージノードは、実質的に、例えば、単一のハードディスクドライブ、単一のコンピュータベースのワークステーション、ネットワーク化されたサーバを備えるデータセンタ、ストレージアレイ又は単一のインターネットプロバイダ等のデータを格納することができるエンティティとみなされることができる。
【0059】
1つの例示的な実装例によれば、各ストレージノードは異なるクラウドサービスプロバイダであることができ、関連付けられた仮想プライベートサーバ(VPS)及び対応するストレージシステムを用いて、データオブジェクトxの部分についてのソース(110)とストレージと通信することができる。各クラウドサービスプロバイダ(例えば、ストレージノード等)は既知の統計的アップタイム/ダウンタイム(例えば、ノードが80%又は70%又は...%の時間だけ利用可能となっていること等)を有していることができ、これをさらに用いて、データコレクタ(115)を介してのデータオブジェクトリカバリに関しての関連付けられたアクセス/信頼度モデル(例えば、確率pでクラウドサービスが利用可能となっていること等)を導出することができる。
【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】
本願開示について幾つかの実施形態を説明した。もっとも、本願開示の趣旨及び範囲から逸脱せずに様々な変更を加えることができるということは理解されるべきことである。したがって、他の実施形態も後述の請求の範囲の範疇内に含まれることになる。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17A
図17B
図18