JP2014154087A - データ均等分散配置方法 - Google Patents

データ均等分散配置方法 Download PDF

Info

Publication number
JP2014154087A
JP2014154087A JP2013025589A JP2013025589A JP2014154087A JP 2014154087 A JP2014154087 A JP 2014154087A JP 2013025589 A JP2013025589 A JP 2013025589A JP 2013025589 A JP2013025589 A JP 2013025589A JP 2014154087 A JP2014154087 A JP 2014154087A
Authority
JP
Japan
Prior art keywords
base
region
hash
space
hash space
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2013025589A
Other languages
English (en)
Inventor
Yoshio Kawamo
祥男 河面
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2013025589A priority Critical patent/JP2014154087A/ja
Publication of JP2014154087A publication Critical patent/JP2014154087A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

【課題】サービス提供の可用性を高める。
【解決手段】データ分散配置装置10は、拠点装置20ごと、対象のユーザデータ23aごとに、ユーザデータ23aに基づくハッシュ値を算出する。そして、ハッシュ値が当該リージョンまたは隣接リージョンに含まれるか否かを判定する。算出したハッシュ値が当該リージョンまたは隣接リージョンに含まれる場合には、リージョンコードを置換したハッシュ値が含まれるハッシュ空間上の区間に対応する、当該リージョン以外かつ隣接リージョン以外の拠点へ、対象のユーザデータ23aのバックアップを配置すると決定する。算出したハッシュ値が当該リージョンおよび隣接リージョンに含まれない場合には、算出したハッシュ値が含まれるハッシュ空間上の区間に対応する拠点へ、対象のユーザデータ23aのバックアップを配置すると決定する。
【選択図】図2

Description

本発明は、広域災害に対応したデータ均等分散配置方法に関する。
近年、データセンタなどの拠点との通信により加入者に提供されるサービスが普及してきている。このようなサービスは、サービスを提供する拠点が災害を被った場合でも、サービスを継続して提供する可用性が求められる。そのため、サービス提供のために拠点が用いるデータのバックアップが、他の地点に位置する他の拠点に予め配置される。そして、サービスを提供する拠点が災害を被ってサービス提供不可となった場合に、予めデータのバックアップが配置された他の拠点が、代替してサービスを継続して提供する。
例えば、複数の拠点から各拠点のデータのバックアップを配置する他の拠点を等確率で決定するために利用可能な方法としてコンシステントハッシュ法がある。コンシステントハッシュ法は、円環座標軸上に、拠点のIP(Internet Protocol)アドレスなどに基づく各拠点のハッシュ値をそれぞれ対応付ける。そして、コンシステントハッシュ法は、当該拠点に配置されるデータに基づくハッシュ値が円環座標軸上の時計回り方向で最も近いハッシュ値に対応付けられた拠点に、当該拠点のデータのバックアップを配置する。
また、例えば、複数の拠点から各拠点のデータのバックアップを配置する他の拠点を等確率で決定するために利用可能な方法として、分散ハッシュテーブル法がある。分散ハッシュテーブル法は、前述のコンシステントハッシュ法をベースとし、拠点に対応付けられたハッシュ値の上位の所定ビットを、地理的位置情報を示すリージョンコードとする。そして、分散ハッシュテーブル法は、地理的な密集度が高い拠点群にはより小さい桁数のリージョンコードを割り当て、地理的な密集度が低い拠点群にはより大きいリージョンコードを割り当てる。よって、分散ハッシュテーブル法は、円環座標軸上に、各拠点のハッシュ値それぞれをおおむね等間隔に対応付けることになる。これにより、分散ハッシュテーブル法は、各拠点に配置されるデータに基づくハッシュ値が円環座標軸上の時計回り方向で最も近いハッシュ値に対応付けられた拠点を選択する際に、より均等に拠点を選択できる。
D.Karger、E.Lehman、T.Leighton、M.Levine、D.Lewin、R.Panigrahy、"Consistent Hashing and Random Trees:Distributed Caching Protocols for Relieving Hot Spots on the World Wide Web"、STOC’97 Proceedings of the Twenty-Ninth annual ACM Symposium on Theory of Computing pp.654-663、Elpaso、Texas、1997 S.Zhou、G.R.Ganger、P.Steekiste、"Balancing Locality Randomness in DHTs"、Carnegie Mellon University Technical Report CMU-CS-03-203、Novenber 2003
しかしながら、上述の従来技術では、災害の影響が広域にわたり、サービスを提供する拠点および当該拠点のデータのバックアップが配置された他の拠点が同時に運用不可となった場合に、サービスを継続して提供することができない。すなわち、サービス提供の可用性が十分でない。
本願が開示する技術は、上記に鑑みてなされたものであって、災害の影響により、サービスを提供する拠点および当該拠点のデータのバックアップが配置された他の拠点が同時に運用不可となることを回避し、サービス提供の可用性を高めることを目的とする。
本願が開示するデータ均等分散配置方法は、一つの実施形態として、所定エリアを分割エリアへ順序を付けて分割する。そして、データ均等分散配置方法は、分割された分割エリアそれぞれに位置する拠点の数に応じて、nビット(nは自然数)のハッシュ空間を、順序にしたがって連続する、分割エリアそれぞれに対応する部分ハッシュ空間へ分割する。そして、データ均等分散配置方法は、分割された部分ハッシュ空間のうちの分割エリアそれぞれに対応する部分ハッシュ空間へ、分割エリアそれぞれに位置する前記拠点をマッピングする。そして、データ均等分散配置方法は、拠点に配置されるデータそれぞれに基づくnビットのハッシュ値を算出する。そして、データ均等分散配置方法は、生成された記拠点それぞれに配置されるデータのハッシュ値に基づいて、当該データのバックアップ配置先の拠点を決定する。すなわち、データ均等分散配置方法は、部分ハッシュ空間のうち、マッピングされた当該拠点が含まれる当該部分ハッシュ空間以外かつ当該部分ハッシュ空間に隣接する隣接部分ハッシュ空間以外の部分ハッシュ空間に対応する分割エリアに位置する拠点を決定する。
本願が開示する技術によれば、災害の影響により、サービスを提供する拠点および当該拠点のデータのバックアップが配置された他の拠点が同時に運用不可となることを回避し、サービス提供の可用性を高めることができる。
図1は、エリアと、リージョンの概要を示す図である。 図2は、データ分散配置システムを示すブロック図である。 図3Aは、拠点情報を示す図である。 図3Bは、コンシステントハッシュデータのフォーマットを示す図である。 図4Aは、ハッシュ空間情報を示す図である。 図4Bは、ハッシュ空間を示す図である。 図4Cは、ハッシュ空間における各区間を示す図である。 図5Aは、ユーザデータを示す図である。 図5Bは、バックアップデータを示す図である。 図6Aは、エリア分割処理を示すフローチャートである。 図6Bは、ハッシュ空間生成処理を示すフローチャートである。 図6Cは、バックアップデータの配置拠点決定処理を示すフローチャートである。 図7は、バックアップデータの配置拠点を決定する処理の一例を示す図である。 図8Aは、バックアップデータの配置拠点の決定の均一性を示す図である。 図8Bは、バックアップデータの配置拠点の決定の均一性を示す図である。 図9は、バックアップデータの配置拠点の決定の均一性を示す図である。 図10は、バックアップデータの配置拠点決定処理プログラムを実行するコンピュータの一例を示す図である。
以下に、本願が開示する技術にかかるデータ均等分散配置方法の実施形態を図面に基づいて説明する。なお、以下の実施形態は、本願が開示する技術を限定するものではなく、また、各実施形態は、矛盾しない範囲内で適宜組み合わせることができる。
[実施形態]
(「エリア」と「リージョン」について)
図1を参照して、実施形態が前提とする「エリア」と「リージョン」について説明する。図1に示すとおり、「エリア」は日本の東日本エリアである。そして、東日本エリアは、北海道リージョン、東北リージョン、北関東リージョン、南関東リージョンの各「リージョン」へ分割される。そして、東日本エリアに位置する後述の拠点は、8拠点であるとする。また、エリアをリージョンに分割した結果、北海道リージョン、東北リージョンの各リージョンに位置する拠点は、それぞれ2拠点(拠点A、拠点B)、1拠点(拠点C)である。また、エリアをリージョンに分割した結果、北関東リージョン、南関東リージョンの各リージョンに位置する拠点は、それぞれ1拠点(拠点D)、4拠点(拠点E、拠点F、拠点G、拠点H)となるとする。
図1に示すように、「エリア」は、後述のバックアップデータの配置拠点決定処理の対象である拠点を全て含む地図情報である。また、「リージョン」は、エリアを分割したものである。各リージョンは、当該リージョン内で災害が発生した場合に、災害の影響が波及しうる範囲をカバーするように設定される。すなわち、あるリージョン内で災害が発生した場合に、災害の影響の波及範囲は、当該リージョン内および後述の「隣接リージョン」内に収まると想定される。例えば、リージョンの形状は、矩形である。そして、図1に示すように、各リージョンの矩形の相対する2辺の最小距離が200km以上となるように、日本の東日本エリアが、北海道リージョン、東北リージョン、北関東リージョン、南関東リージョンの4つのリージョンに分割される。
そして、各リージョンは、例えば北海道リージョンなどの所定のリージョンを出発点とする、例えばヒルベルト曲線が通過する順序で順序付けられるとする。図1に示す例によれば、東日本エリアを分割した各リージョンは、北海道リージョン、東北リージョン、北関東リージョン、南関東リージョンの順序で順序付けられる。実施形態では、各リージョンをヒルベルト曲線が通過する順序を「所定の通過順序」と呼ぶこととする。
また、「所定の通過順序」における当該リージョンの前後のリージョンを「隣接リージョン」と呼ぶこととする。例えば、当該リージョンが北海道リージョンである場合、隣接リージョンは東北リージョンである。また、例えば、当該リージョンが東北リージョンである場合、隣接リージョンは北海道リージョンおよび北関東リージョンである。また、例えば、当該リージョンが北関東リージョンである場合、隣接リージョンは東北リージョンおよび南関東リージョンである。また、例えば、当該リージョンが南関東リージョンである場合、隣接リージョンは北関東リージョンである。
なお、実施形態における、エリアおよびリージョンは、一例を示すに過ぎない。本願が開示する技術は、任意のエリアおよび任意のリージョンであっても適用できる。
(データ分散配置システムの概要)
図2は、データ分散配置システムを示すブロック図である。図2に示すように、データ分散配置システム1は、ネットワーク2を介して接続されたデータ分散配置装置10、拠点装置20(20A〜20H)を有する。データ分散配置装置10、拠点装置20は、分散した地点に位置する収容施設にそれぞれ収容される。拠点装置20を収容する収容施設を拠点と呼ぶ。拠点は、例えばデータセンタなどである。
なお、データ分散配置装置10は、拠点装置20を収容するいずれかの拠点に拠点装置とともに併置されてもよい。また、図2に示すように、データ分散配置システム1は、前述の拠点A〜Hの8拠点に対応する8つの拠点装置20A〜20Hを有するとするが、これに限らず、任意の複数の拠点装置を有するとしてもよい。
(データ分散配置装置の構成)
データ分散配置装置10は、通信部11、制御部12、記憶部13を有する。通信部11は、データ分散配置装置10がネットワーク2を介して拠点装置20と通信するためのインターフェースである。制御部12は、データ分散配置装置10の装置全体の制御を実行するとともに、データ分散配置装置10における各種処理、例えば後述のエリア分割処理、バックアップデータの配置拠点決定処理などを実行する。記憶部13は、後述の拠点情報13a、ハッシュ空間情報13bを記憶する。
制御部12は、エリア分割部12a、ハッシュ空間生成部12b、バックアップ拠点決定部12c、バックアップ制御部12dを有する。エリア分割部12aは、データ分散配置装置10に接続された入力部(不図示)から入力されたエリアを、予め人為的に決められた分割条件に従って複数のリージョンに分割する。
そして、エリア分割部12aは、エリアをリージョンへ分割した場合のエリア、各リージョン、各リージョンに位置する各拠点の対応関係を、図3Aに示す拠点情報13aの一部として、記憶部13に記憶させる。
ハッシュ空間生成部12bは、10ビットのハッシュ空間を生成する。図3Bに示すように、10ビットのハッシュ空間の各バイナリ値は、上位Xビットの「リージョンコード」と、下位(10−X)ビットの「ランダムビット」を含む10ビットのバイナリ値“0000000000”〜“1111111111”である。ここで、Xは1≦X≦Yなる自然数である。また、Yについては後述する。そして、バイナリ値“0000000000”〜“1111111111”を円環座標軸に座標として均等に配置することにより、10ビットのハッシュ空間が生成される。以下では、バイナリ値“0000000000”〜“1111111111”を円環座標軸に座標として均等に配置したものを、ハッシュ空間と呼ぶ。なお、ハッシュ空間のビット数は10ビットであるとするが、これに限らず、ハッシュ空間のビット数は、エリアをリージョンに分割する分割数、各リージョンに位置する拠点数などに応じて、適宜変更可能である。
ここで、「リージョンコード」は、各リージョンを識別するバイナリ値である。また、「ランダムビット」は、同一のリージョンコードが付与された各リージョン内で、各拠点を識別するバイナリ値である。また、ハッシュ空間において、円環座標軸は、円周上の所定点を原点“0000000000”とし、時計回り方向に座標値が増加する座標軸である。そして、円環座標軸は、座標“1111111111”の次の座標が原点となるサイクリックな座標系である。10ビットのハッシュ空間は、円環座標軸上に、210個の座標を含むことになる。
なお、各リージョンのリージョンコードのビット数Xの決定方法は、次のとおり、Zhouらの方法(非特許文献2参照)を用いる。すなわち、ビット数Xの最大値Yは、エリアに属する拠点数をビット表現しうる最小のビット数である。実施形態では、東日本エリアに位置する拠点は8拠点であり、8を表現するために要するビット数の最小値は3である。よって、ハッシュ空間生成部12bは、求めたビット数の最小値3を、リージョンコードのビット数Xの最大値Yとする。
また、各リージョンのリージョンコードのビット数の決定方法は、次のとおりである。すなわち、北海道リージョンに属する拠点数は2であるので、2を表現するために要するビット数の最小値は1である。よって、ハッシュ空間生成部12bは、ビット数Xの最大値3から1を差し引いた2を、北海道リージョンのリージョンコードのビット数とする。ハッシュ空間生成部12bは、他のリージョンについても、同様にリージョンコードのビット数を求める。すると、東北リージョンのリージョンコードのビット数は3、北関東リージョンのリージョンコードのビット数は3、南関東リージョンのリージョンコードのビット数は1となる。
また、ハッシュ空間生成部12bは、エリアにおける各リージョンの「所定の通過順序」で、各リージョンにリージョンコードを付与する。東日本エリアにおいて、北海道リージョン、東北リージョン、北関東リージョン、南関東リージョンの「所定の通過順序」で各リージョンが位置する場合を考える。この場合、ハッシュ空間生成部12bは、各リージョンのリージョンコードのビット数を考慮して、北海道リージョン、東北リージョン、北関東リージョン、南関東リージョンの「所定の通過順序」で昇順となるように各リージョンにリージョンコードを付与する。すなわち、ハッシュ空間生成部12bは、北海道リージョンには“00”、東北リージョンには“010”、北関東リージョンには“011”、南関東リージョンには“1”のリージョンコードを付与する。
また、ハッシュ空間生成部12bは、生成したハッシュ空間を、各リージョンに対応する部分ハッシュ空間へ分割する。ハッシュ空間生成部12bは、ハッシュ空間を部分ハッシュ空間へ分割する際に、各リージョンのリージョンコードを用いる。ハッシュ空間生成部12bは、北海道リージョンのリージョンコードが“00”であるので、ハッシュ空間において、円環座標軸のうち上位2ビットが“00”の座標群である円環座標軸上の区間を北海道リージョンに対応する部分ハッシュ空間とする。ハッシュ空間生成部12bは、他のリージョンについても、同様にして円環座標軸上の区間に部分ハッシュ空間を対応付ける。
そして、ハッシュ空間生成部12bは、部分ハッシュ空間のそれぞれに、対応するリージョンに属する拠点を対応付ける。ハッシュ空間生成部12bは、例えばIPアドレスなどの各拠点を識別する識別情報、所定のハッシュ関数、ハッシュキーを用いて、拠点ごとに10ビットのコンシステントハッシュ値(以下、ハッシュ値とよぶ)を算出する。そして、ハッシュ空間生成部12bは、算出した各拠点のハッシュ値の上位Xビットを、各拠点が位置するリージョンのリージョンコードで置換する。
例えば、ハッシュ空間生成部12bは、北海道リージョンに位置する拠点AのIPアドレスなどに基づくハッシュ値が“aaaaaaaaaa”であった場合に、“aaaaaaaaaa”の上位2ビットを北海道リージョンのリージョンコード“00”で置換する。このようにして、拠点Aのハッシュ値は、”00aaaaaaaa”となる。ハッシュ空間生成部12bは、この”00aaaaaaaa”を拠点Aの拠点IDとする。そして、ハッシュ空間生成部12bは、ハッシュ空間の円環座標軸上の座標“00aaaaaaaa”に、拠点Aを対応付ける。ハッシュ空間生成部12bは、他の拠点についても、同様にして拠点IDを算出し、各拠点IDをハッシュ空間の円環座標軸上の座標に対応付ける。なお、例えばハッシュ値のバイナリ表現を“aaaaaaaaaa”とする場合、各ビットはそれぞれ“0”または“1”のいずれかであり、全てのビットが同一値であることを示すものではない。他のハッシュ値の表現についても同様である。
そして、ハッシュ空間生成部12bは、各リージョン、各リージョンに付与したリージョンコード、各拠点に付与した拠点IDの対応関係を、図3Aに示す拠点情報13aの一部として、記憶部13に記憶させる。なお、図3Aに示すように、例えば北海道リージョンにおいて、拠点Aの拠点ID“00aaaaaaaa”と、拠点Bの拠点ID“00bbbbbbbb”の大小関係は、ハッシュ値のランダム性により一意ではない。しかし、図3Aに示す例では“00aaaaaaaa”<“00bbbbbbbb”であるとする。同様に、複数の拠点が位置する他のリージョンにおいても、各拠点IDは、図3A示す順序で昇順であるとする。例えば、拠点IDの昇順で拠点をソートすることにより、図3Aに示すように拠点名が上から下へ並ぶことになる。
また、ハッシュ空間生成部12bは、各拠点の拠点IDに基づいて、ハッシュ空間における円環座標軸上の各拠点間の区間を生成する。例えば、拠点Aの拠点ID“00aaaaaaaa”は、時計回り方向の円環座標軸上において原点“0000000000”から最初に拠点が対応付けられる座標である。また、拠点Bの拠点ID“00bbbbbbbb”は、時計回り方向の円環座標軸上において拠点Aの次の拠点Bが対応付けられる座標である。ここで、“00aaaaaaaa”および“00bbbbbbbb”の中点は、“(00aaaaaaaa+00bbbbbbbb)÷10”(ただし、“10”はバイナリ値である)の商であるとする。“00aaaaaaaa”および“00bbbbbbbb”の中点を“AAAAAAAAAA”とする。よって、ハッシュ空間生成部12bは、“0000000000≦Ha<AAAAAAAAAA”であるハッシュ値Haの区間を区間Aとする。区間Aに対応する拠点は、拠点Aである。
また、拠点Cの拠点ID“010ccccccc”は、時計回り方向の円環座標軸上において“00bbbbbbbb”の次に拠点が対応付けられる座標である。ここで、“00bbbbbbbb”および“010ccccccc”の中点は、“(00bbbbbbbb+010ccccccc)÷10”(ただし、“10”はバイナリ値である)の商であるとする。“00bbbbbbbb”および“010ccccccc”の中点を“BBBBBBBBBB”とする。よって、ハッシュ空間生成部12bは、“AAAAAAAAAA≦Ha<BBBBBBBBBB”であるハッシュ値Haの区間を区間Bとする。区間Bに対応する拠点は、拠点Bである。同様にして、ハッシュ空間生成部12bは、区間C〜区間Gを生成する。そして、ハッシュ空間生成部12bは、時計回り方向の円環座標軸上において、拠点Gの拠点ID“1ggggggggg”および拠点Hの拠点ID“1hhhhhhhhh”の中点を、“(1ggggggggg+1hhhhhhhhh)÷10”(ただし、“10”はバイナリ値である)の商である“GGGGGGGGGG”とする場合、“GGGGGGGGGG≦Ha≦1111111111”の区間を区間Hとする。区間Hに対応する拠点は、拠点Hである。
そして、ハッシュ空間生成部12bは、生成した各区間、ハッシュ値Ha、各拠点の対応関係を、図4Aに示すハッシュ空間情報13bとして、記憶部13に記憶させる。図4Aに示すように、ハッシュ空間情報13bによれば、例えば区間Aに属するハッシュ値Haは“0000000000≦Ha<AAAAAAAAAA”である。また、図4Aに示すように、区間Aは、拠点Aに対応付けられることが分かる。他の区間についても同様である。
なお、拠点情報13aおよびハッシュ空間情報13bに基づき、ハッシュ空間の円環座標軸上に各リージョン、各拠点および各リージョンを図示すると、図4Bのようになる。図4Bによれば、ハッシュ空間生成部12bは、10ビットのハッシュ空間を4つの部分ハッシュ空間へ分割することが分かる。すなわち、4つの部分ハッシュ空間とは、北海道リージョンに対応する“0000000000≦Ha<0100000000”、東北リージョンに対応する“0100000000≦Ha<0110000000”、北関東リージョンに対応する“0110000000≦Ha<100000000”、南関東リージョンに対応する“1000000000≦Ha<000000000”である。
また、図4Bによれば、ハッシュ空間生成部12bは、10ビットのハッシュ空間の円環座標軸上において、拠点Aを座標“00aaaaaaaa”へ、拠点Bを座標“00bbbbbbbb”へ、拠点Cを座標“010ccccccc”へ、拠点Dを座標“011ddddddd”へ対応付けることが分かる。同様に、ハッシュ空間生成部12bは、10ビットのハッシュ空間の円環座標軸上において、拠点Eを座標“1eeeeeeeee”へ、拠点Fを座標“1fffffffff”へ、拠点Gを座標“1ggggggggg”へ、拠点Hを座標“1hhhhhhhhh”へ対応付けることが分かる。
なお、図4Bに示すように、当該リージョンが北海道リージョンである場合、東北リージョンが隣接リージョンとなることが分かる。同様に、当該リージョンが東北リージョンである場合、北海道リージョンおよび北関東リージョンが隣接リージョンとなることが分かる。同様に、当該リージョンが北関東リージョンである場合、東北リージョンおよび南関東リージョンが隣接リージョンとなることが分かる。同様に、当該リージョンが南関東リージョンである場合、北関東リージョンが隣接リージョンとなることが分かる。
また、図4Cによれば、ハッシュ空間生成部12bは、ハッシュ値Haに対して、“0000000000≦Ha<AAAAAAAAAA”の区間Aを拠点Aに対応する区間、“AAAAAAAAAA≦Ha<BBBBBBBBBB”の区間Bを拠点Bに対応する区間とすることが分かる。同様に、ハッシュ空間生成部12bは、“BBBBBBBBBB≦Ha<CCCCCCCCCC”の区間Cを拠点Cに対応する区間、“CCCCCCCCCC≦Ha<DDDDDDDDDD”の区間Dを拠点Dに対応する区間とすることが分かる。同様に、ハッシュ空間生成部12bは、“DDDDDDDDDD≦Ha<EEEEEEEEEE”の区間Eを拠点Eに対応する区間、“EEEEEEEEEE≦Ha<FFFFFFFFFF”の区間Fを拠点Fに対応する区間とすることが分かる。同様に、ハッシュ空間生成部12bは、“FFFFFFFFFF≦Ha<GGGGGGGGGG”の区間Gを拠点Gに対応する区間、“GGGGGGGGGG≦Ha≦1111111111”の区間Hを拠点Hに対応する区間とすることが分かる。
バックアップ拠点決定部12cは、拠点装置20それぞれが記憶するユーザデータのバックアップデータを配置する他の拠点装置20を決定する。バックアップ拠点決定部12cは、同一拠点に配置されるユーザデータであっても、ユーザデータごとに、ユーザデータのバイナリデータに基づくハッシュ値に応じて、異なる他の拠点装置20へバックアップデータを配置する。
バックアップ拠点決定部12cは、拠点装置20ごと、対象のユーザデータごとに、ユーザデータのバイナリデータ、所定のハッシュ関数、所定のハッシュキーを用いて、ユーザデータごとのハッシュ値を算出する。そして、バックアップ拠点決定部12cは、算出したハッシュ値の上位Xビット(1≦X≦3)と、拠点情報13aを参照し、ハッシュ値が当該リージョンまたは隣接リージョンに含まれるか否かを判定する。
そして、バックアップ拠点決定部12cは、算出したハッシュ値が当該リージョンまたは隣接リージョンに含まれると判定した場合には、リージョンコードの置換をおこなう。すなわち、バックアップ拠点決定部12cは、対象のユーザデータのバイナリデータに基づくハッシュ値を、当該リージョン以外かつ隣接リージョン以外のリージョンに含まれる拠点数で除算した剰余(以下、モジュロ値と呼ぶ)を算出する。
そして、バックアップ拠点決定部12cは、算出したモジュロ値の、リージョンコードのビット数の最大値に相当するビット数Yのバイナリ値を算出する。そして、バックアップ拠点決定部12cは、算出したYビットのモジュロ値のバイナリ値を、当該リージョン以外かつ隣接リージョン以外でハッシュ空間上の円環座標軸上で時計回り方向で最初に位置するリージョンのリージョンコードへ加算する。そして、バックアップ拠点決定部12cは、対象のユーザデータのバイナリデータに基づくハッシュ値の上位Yビットへ加算した変換リージョンコードを算出する。そして、バックアップ拠点決定部12cは、変換リージョンコードでハッシュ値の上位Yビットを置換する。
そして、バックアップ拠点決定部12cは、変換リージョンコードでリージョンコードと置換したハッシュ値と、ハッシュ空間情報13bに基づき、ハッシュ値が含まれる区間を算出する。そして、バックアップ拠点決定部12cは、ハッシュ空間情報13bに基づき、算出した区間に対応付けられる拠点に対象のユーザデータを配置すると決定する。
一方、バックアップ拠点決定部12cは、対象のユーザデータに基つくハッシュ値が当該リージョンおよび隣接リージョンのいずれにも含まれないと判定した場合には、リージョンコードの置換をおこなわない。すなわち、バックアップ拠点決定部12cは、ハッシュ空間情報13bに基づき、ハッシュ値が含まれる区間を算出する。そして、バックアップ拠点決定部12cは、ハッシュ空間情報13bに基づき、算出した区間に対応付けられる拠点に対象のユーザデータを配置すると決定する。
バックアップ制御部12dは、対象のユーザデータが配置される拠点から、バックアップ拠点決定部12cにより決定された対象のユーザデータのバックアップを配置する拠点へ、当該ユーザデータを複写などによりバックアップする。なお、バックアップ制御部12dは、データ分散配置装置10から独立した装置であってもよい。すなわち、バックアップ制御部12dは、バックアップ拠点決定部12cの指示により、対象のユーザデータをある拠点から他の拠点へバックアップする別装置であってもよい。
または、対象のユーザデータのバックアップは、バックアップ拠点決定部12cの指示により、該当する2つの拠点が自律的にバックアップデータの送信、ならびに、受信および記憶をおこなうとしてもよい。
(拠点装置の構成)
拠点装置20(20A〜20H)は、いずれも同様の構成である。拠点装置20は、通信部21、制御部22、記憶部23を有する。通信部21は、拠点装置20がネットワーク2を介してデータ分散配置装置10ならびに他の拠点装置20と通信するためのインターフェースである。制御部22は、拠点装置20の装置全体の制御を実行する。記憶部23は、ユーザデータ23a、バックアップデータ23bを記憶する。
ユーザデータ23aは、拠点装置20が提供するサービスを提供するために用いるユーザデータである。例えば、図5Aに示すように、ユーザデータ23aは、ユーザデータ名に各バイナリデータが対応付けられて管理される。また、バックアップデータ23bは、拠点装置20が配置される当該リージョン以外かつ隣接リージョン以外のリージョンに配置される他の拠点装置20に配置されるユーザデータのバックアップである。バックアップデータ23bは、当該拠点装置20が位置する当該リージョン以外かつ隣接リージョン以外のリージョンに位置する他の拠点装置20に配置されるユーザデータのバックアップデータが、データ分散配置装置10の決定にしたがい配置されたものである。例えば、図5Bに示すように、バックアップデータ23bは、バックアップデータ名に、バックアップ元を示す拠点、各バイナリデータが対応付けられて管理される。
(データ分散配置装置の処理:エリア分割処理)
図6Aは、エリア分割処理を示すフローチャートである。データ分散配置装置10の制御部12のエリア分割部12aは、データ分散配置装置10に接続された入力部(不図示)から入力された、例えば災害波及範囲を考慮したエリア分割指示を受け付ける(ステップS11)。続いて、エリア分割部12aは、エリア分割指示にしたがって、分割対象のエリアを分割して複数のリージョンを生成する(ステップS12)。続いて、エリア分割部12aは、エリアをリージョンへ分割した場合のエリア、各リージョン、各リージョンに含まれる拠点の対応関係を、拠点情報13aの一部として、記憶部13に記憶させる(ステップS13)。
(データ分散配置装置の処理:ハッシュ空間生成処理)
図6Bは、ハッシュ空間生成処理を示すフローチャートである。データ分散配置装置10の制御部12のハッシュ空間生成部12bは、拠点情報13aを参照し、各リージョンのリージョンコードを決定する(ステップS21)。続いて、ハッシュ空間生成部12bは、決定したリージョンコードに基づき、10ビットのハッシュ空間を、各リージョンコードに対応する部分ハッシュ空間へ分割する(ステップS22)。
続いて、ハッシュ空間生成部12bは、各リージョンに位置する各拠点の識別情報に基づき算出したハッシュ値のリージョンコードに該当する桁のビットを当該リージョンのリージョンコードで置換して、各拠点の拠点IDを算出する(ステップS23)。各拠点の拠点IDは、各拠点装置20をハッシュ空間の円環座標上の座標へ対応付けるものである。言い換えると、各拠点装置20は、各拠点IDにより、ハッシュ空間および部分ハッシュ空間へマッピングされることになる。続いて、ハッシュ空間生成部12bは、各リージョン、各リージョンコード、各拠点IDの関係を拠点情報13aの一部として記憶部13に記憶させる(ステップS24)。
続いて、ハッシュ空間生成部12bは、ハッシュ空間の円環座標軸上の座標へ各拠点IDを対応付けた場合に、円環座標軸上における各拠点間に各拠点を対応関係付けることにより、各拠点に対応する円環座標軸上の区間を算出する(ステップS25)。続いて、ハッシュ空間生成部12bは、各区間、各ハッシュ値の範囲、各拠点の対応関係をハッシュ空間情報13bとして記憶部13に記憶させる(ステップS26)。
(データ分散配置装置の処理:バックアップデータの配置拠点決定処理)
図6Cは、バックアップデータの配置拠点決定処理を示すフローチャートである。データ分散配置装置10の制御部12のバックアップ拠点決定部12cは、1つの拠点装置20を選択し、選択した拠点装置20に配置されるバックアップ対象のユーザデータのバイナリデータを1つ選択する(ステップS31)。続いて、バックアップ拠点決定部12cは、選択したバイナリデータに基づきハッシュ値を算出する(ステップS32)。
続いて、バックアップ拠点決定部12cは、算出したハッシュ値のリージョンコードが、当該拠点装置20が位置する当該リージョンまたは隣接リージョンのリージョンコードのいずれかと一致するか否かを判定する(ステップS33)。バックアップ拠点決定部12cは、ハッシュ値のリージョンコードが、当該拠点装置20が位置する当該リージョンまたは隣接リージョンのリージョンコードのいずれかと一致すると判定する場合(ステップS33Yes)、ステップS34へ処理を移す。一方、バックアップ拠点決定部12cは、ハッシュ値のリージョンコードが、当該拠点装置20が位置する当該リージョンおよび隣接リージョンのリージョンコードのいずれかとも一致しないと判定する場合(ステップS33No)、ステップS37へ処理を移す。
ステップS34では、バックアップ拠点決定部12cは、当該リージョン以外かつ隣接リージョン以外に位置する拠点数の値による、当該バックアップ対象のバイナリデータのモジュロ値を算出する。続いて、バックアップ拠点決定部12cは、円環座標軸上で、当該リージョン以外かつ隣接リージョン以外で時計回り方向で最初に位置するリージョンのリージョンコードに、算出したモジュロ値のバイナリ表現を加算する。そして、バックアップ拠点決定部12cは、加算結果である変換リージョンコードを算出する(ステップS35)。続いて、バックアップ拠点決定部12cは、ハッシュ値リージョンコードを変換リージョンコードで置換する(ステップS36)。
続いて、バックアップ拠点決定部12cは、リージョンコードを変換リージョンコードで置換したハッシュ値が含まれる区間に対応する拠点に当該ユーザデータのバックアップを配置すると決定する(ステップS37)。続いて、バックアップ拠点決定部12cは、未選択のユーザデータがあるか否かを判定する(ステップS38)。すなわち、ステップS38では、バックアップ拠点決定部12cは、同一の拠点装置20にバックアップ先を決定していないユーザデータがあるか否かを判定する。さらに、ステップS38では、バックアップ拠点決定部12cは、同一の拠点装置20の全てのユーザデータのバックアップ先拠点を決定したならば、他の拠点装置20にバックアップ先を決定すべきユーザデータがあるか否かを判定する。
バックアップ拠点決定部12cは、未選択のユーザデータがあると判定した場合(ステップS38Yes)、ステップS31へ処理を移し、未選択のユーザデータがないと判定した場合(ステップS38No)、処理を終了する。
(バックアップデータの配置拠点を決定する処理の一例)
図7は、バックアップデータの配置拠点を決定する処理の一例を示す図である。例えば、北海動リージョンの拠点Aに配置されるユーザデータ3およびユーザデータ4を考える。バックアップ拠点決定部12cは、ユーザデータ3に基づくハッシュ値3a“0110000011”を算出したとする。ハッシュ値3aの上位2ビット“01”および上位3ビット“011”は、北海道リージョンおよび隣接リージョンである東北リージョンのいずれでもないため、バックアップ拠点決定部12cは、リージョンコードの置換はおこなわない。そして、バックアップ拠点決定部12cは、ハッシュ空間情報13bに基づき、ハッシュ値3aが含まれる区間Dを算出する。そして、図7に示すように、バックアップ拠点決定部12cは、ハッシュ空間情報13bに基づき、区間Dに対応付けられる北関東の拠点Dへ、ユーザデータ3のバックアップデータを配置すると決定する。
また、バックアップ拠点決定部12cは、ユーザデータ4に基づくハッシュ値4a“0100000010”を算出したとする。ハッシュ値4aの上位3ビット“010”は、北海道リージョンの隣接リージョンである東北リージョンに該当する。東北リージョンに北海道リージョンのユーザデータのバックアップデータを配置することはできない。そこで、バックアップ拠点決定部12cは、リージョンコードの置換をおこなう。すなわち、バックアップ拠点決定部12cは、北海道リージョンおよび東北リージョンを除く東日本エリアの拠点数5でハッシュ値4aを除算し、モジュロ値3を算出したとする。そして、バックアップ拠点決定部12cは、モジュロ値3のYビットのバイナリ値“011”を、北海道リージョン以外かつ東北リージョン以外でハッシュ空間上の円環座標軸上で時計回り方向で最初に位置する北関東リージョンのリージョンコード“011”へ加算する。加算の結果、バックアップ拠点決定部12cは、“110”を得る。そして、バックアップ拠点決定部12cは、“110”で、ハッシュ値4aの上位Yビットすなわちリージョンコードを置換して、ハッシュ値4b“1100000010”を得る。
そして、バックアップ拠点決定部12cは、上位Yビットを置換したハッシュ値4bと、ハッシュ空間情報13bに基づき、ハッシュ値4bが含まれる区間Gを算出する。そして、図7に示すように、バックアップ拠点決定部12cは、ハッシュ空間情報13bに基づき、算出した区間Gに対応付けられる南関東の拠点Gにユーザユーザデータ4のバックアップデータを配置すると決定する。
(バックアップデータの配置拠点の決定の均一性)
図8Aおよび図8Bは、バックアップデータの配置拠点の決定の均一性を示す図である。例えば、北海動リージョンの拠点Aに配置されるユーザデータ5を考える。バックアップ拠点決定部12cは、ユーザデータ5のバイナリデータ5aに基づくハッシュ値6“010XXXXXXX”を算出したとする。ただし、“010XXXXXXX”の表記において、“010”は、東北リージョンのリージョンコードである。また、“010XXXXXXX”の表記において、“X”は“0”または“1”のいずれかのビットであり、全てのビットが同一であることを示すものではない。
図8Aに示すように、ハッシュ値6は、北海道リージョンの隣接リージョンである東北リージョンの拠点Cに対応する区間Cに含まれるため、リージョンコードの置換を要する。そこで、バックアップ拠点決定部12cは、上述した方法の変換リージョンコード算出およびリージョンコードの置換をおこなう。先ず、バックアップ拠点決定部12cは、ハッシュ値6のリージョンコードを、円環座標軸上の時計回り方向で北海道リージョンおよび東北リージョンの次に位置する北関東リージョンのリージョンコード“011”で置き換え、図8Bに示すハッシュ値7を得る。
そして、バックアップ拠点決定部12cは、東日本エリアの北海道リージョンおよび東北リージョン以外のリージョンに位置する拠点数を示す値の5でバイナリデータ5aを除算した場合のモジュロ値を算出する。ここで、拠点数を示す値の5のモジュロ値として、0、1、2、3、4が均等に出現する。モジュロ値が0の場合は、バックアップ拠点決定部12cは、ハッシュ値7のリージョンコード“011”に“000”を加算した変換リージョンコード“011”でハッシュ値7のリージョンコードを置換してハッシュ値7aを得る。なお、ここでは、ハッシュ値7と、ハッシュ値7aは、同一値であり、リージョンコードの変換は実質的にはおこなわれない。そして、バックアップ拠点決定部12cは、ハッシュ値7aが含まれる区間Dに対応する拠点へ、ユーザデータ5のバックアップを配置すると決定する。
また、モジュロ値が1の場合は、バックアップ拠点決定部12cは、ハッシュ値7のリージョンコード“011”に“001”を加算した変換リージョンコード“100”でハッシュ値7のリージョンコードを置換してハッシュ値7bを得る。そして、バックアップ拠点決定部12cは、ハッシュ値7bが含まれる区間Eに対応する拠点へ、ユーザデータ5のバックアップを配置すると決定する。モジュロ値が2〜4の場合も、モジュロ値が1の場合と同様である。
(実施形態による効果)
各モジュロ値は、発生頻度が等確率であるため、モジュロ値に基づいて変換リージョンコードによりリージョンコードを変換したハッシュ値は、当該リージョン以外かつ隣接リージョン以外の各区間に均等に属することになる。よって、図9に示すように、当該拠点のバックアップ先拠点を決定する際に、均等に配置先を決定するため、ユーザデータのバックアップを、当該拠点が位置するリージョン以外かつ隣接リージョン以外のリージョンに位置する他の拠点へ均等に配置することができる。すなわち、当該拠点の拠点装置20に配置される各ユーザデータのバックアップを、当該リージョン以外かつ隣接リージョン以外の、当該リージョンで発生した災害による影響が波及しない位置的位置に位置する他の拠点の他の拠点装置へ分散配置する。よって、当該拠点装置20が災害を被りサービス提供を継続できなくなっても、他の拠点装置20が、当該他の拠点装置20へ分散配置された各ユーザデータのバックアップデータを用いてサービス提供を継続し、サービス提供の可用性を高めることができる。また、広域災害の影響が波及しない複数の拠点に均等にバックアップデータを配置するので、広域災害発生時に、災害発生拠点で提供していたサービス提供を代行することによるバックアップ拠点への負荷増大が、特定の拠点に集中することを回避できる。
以上の実施形態によれば、データ分散配置装置10は、拠点装置20ごと、対象のユーザデータごとに、ユーザデータに基づくハッシュ値を算出する。そして、データ分散配置装置10は、ハッシュ値が当該リージョンまたは隣接リージョンに含まれるか否かを判定する。算出したハッシュ値が当該リージョンまたは隣接リージョンに含まれる場合には、データ分散配置装置10は、リージョンコードを置換したハッシュ値が含まれるハッシュ空間上の区間に対応する、当該リージョン以外かつ隣接リージョン以外の拠点へ、対象のユーザデータのバックアップを配置すると決定する。算出したハッシュ値が当該リージョン以外かつ隣接リージョン以外に含まれる場合には、データ分散配置装置10は、算出したハッシュ値が含まれるハッシュ空間上の区間に対応する拠点へ、対象のユーザデータのバックアップを配置すると決定する。
[他の実施形態]
さて、これまで本願が開示する技術の実施形態について説明したが、本願が開示する技術は上述した実施形態以外にも、種々の異なる形態にて実施されてよいものである。そこで、以下では本願が開示する技術に含まれる他の実施形態を説明する。
(1)リージョンについて
実施形態では、リージョンは、矩形領域で範囲が決められるとした。しかし、これに限らず、例えば、リージョンは、面積に基づいて各範囲が決められてもよい。この場合、各リージョンの面積は、当該リージョン内で災害が発生した場合に、災害の影響が波及しうる範囲をカバーするように設定される。また、リージョンは、過去の災害情報、災害予測情報などの分割条件に基づいて、データ分散配置装置10が自動的に各範囲を決定することとしてもよい。
(2)ハッシュ空間への拠点のマッピングについて
実施形態では、ハッシュ空間へ拠点をマッピングする方法として、データ分散配置装置10が、各拠点の識別情報に基づく拠点IDをハッシュ空間の円環座標軸上の対応する座標へ対応付けるとした。しかし、これに限らず、データ分散配置装置10は、各リージョンに対応するハッシュ空間の円環座標軸上に、各部分ハッシュ空間に対応する円環座標軸上の端点を除き、それぞれのリージョンに位置する拠点を均等間隔で割り当てるようにしてもよい。
(3)変換リージョンコードの算出方法について
実施形態では、変換リージョンコードの算出方法として、データ分散配置装置10が、当該リージョン以外かつ隣接リージョン以外に位置する拠点数の値による、当該バックアップ対象のバイナリデータのハッシュ値のモジュロ値を算出する。そして、データ分散配置装置10が、円環座標軸上で、当該リージョン以外かつ隣接リージョン以外で時計回り方向で最初に位置するリージョンのリージョンコードに、算出したモジュロ値のバイナリ表現を加算する。そして、データ分散配置装置10が、加算結果である変換リージョンコードを算出するとした。
しかし、これに限らず、データ分散配置装置10が、円環座標軸上で、当該リージョン以外かつ隣接リージョン以外で時計回り方向で最後に位置するリージョンのリージョンコードから、算出したモジュロ値のバイナリ表現を減算する。そして、データ分散配置装置10が、減算結果である変換リージョンコードを算出するとしてもよい。このようにしても、各モジュロ値の出現確率の均等性により、当該拠点のユーザデータのバックアップデータを、当該リージョン以外かつ隣接リージョン以外のリージョンの各拠点へ均等に配置することができる。
(4)システム構成など
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示のように構成されていることを要しない。すなわち、各装置の分散および統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散または統合して構成することができる。例えば、エリア分割部12a、ハッシュ空間生成部12b、バックアップ拠点決定部12c、バックアップ制御部12dを適宜任意の単位に統合してもよい。例えば、ハッシュ空間生成部12b、バックアップ拠点決定部12c、バックアップ制御部12dを統合してもよい。また、例えば、ハッシュ空間生成部12bおよびバックアップ拠点決定部12cを統合してもよい。また、例えば、バックアップ拠点決定部12cおよびバックアップ制御部12dを統合してもよい。
また、データ分散配置装置10および拠点装置20においておこなわれる各処理は、全部または任意の一部が、CPU(Central Processing Unit)およびCPUにより解析実行されるプログラムにて実現されてもよい。また、データ分散配置装置10および拠点装置20においておこなわれる各処理は、ワイヤードロジックによるハードウェアとして実現されてもよい。
また、実施形態において説明した各処理のうち、自動的におこなわれるものとして説明した処理の全部または一部を手動的におこなうこともできる。もしくは、手動的におこなわれるものとして説明した処理の全部または一部を公知の方法で自動的におこなうこともできる。この他、上述および図示の処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて適宜変更することができる。
(5)データ構成など
図3Aに示す拠点情報13aおよび図4Aに示すハッシュ空間情報13bは、各情報の保持形態の一例を示すに過ぎない。例えば、拠点情報13aおよびハッシュ空間情報13bは、各情報の各項目をいずれの情報に含めるかを適宜変更してもよい。例えば、拠点情報13aの拠点IDをハッシュ空間情報13bに含めてもよい。また、拠点情報13aおよびハッシュ空間情報13bを格納する各テーブルは、適宜分散または統合してもよい。また、データ分散配置装置10は、ハッシュ空間情報13bに代えて、図4Bおよび図4Cに示す情報をテーブルに格納して用いてもよい。
(6)プログラム
また、実施形態において説明した制御部12が実行する処理をコンピュータが実行可能な言語で記述したプログラムを作成することもできる。例えば、制御部12が実行する処理をコンピュータが実行可能な言語で記述したデータ分散配置決定プログラムを作成することもできる。この場合、コンピュータがデータ分散配置決定プログラムを実行することにより、実施形態と同様の効果を得ることができる。さらに、データ分散配置決定プログラムをコンピュータ読み取り可能な記録媒体に記録して、記録媒体に記録されたデータ分散配置決定プログラムをコンピュータに読み込ませて実行することにより実施形態と同様の処理を実現できる。以下に、図2に示したデータ分散配置装置10と同様の機能を実現するプログラムを実行するコンピュータの一例を説明する。
図10は、監視プログラムを実行するコンピュータ1000を示す図である。コンピュータ1000は、メモリ1010、CPU1020を有する。また、コンピュータ1000は、ハードディスクドライブインタフェース1030、ディスクドライブインタフェース1040、シリアルポートインタフェース1050、ビデオアダプタ1060、ネットワークインタフェース1070を有する。これらは、バス1080によって接続される。
図10に示すように、メモリ1010は、ROM(Read Only Memory)1011およびRAM1012を含む。ROM1011は、例えば、BIOS(Basic Input Output System)等のブートプログラムを記憶する。また、ハードディスクドライブインタフェース1030は、ハードディスクドライブ1031に接続される。また、ディスクドライブインタフェース1040は、ディスクドライブ1041に接続される。ディスクドライブ1041には、磁気ディスクや光ディスクなどの着脱可能な記憶媒体が挿入される。シリアルポートインタフェース1050は、例えばマウス1051、キーボード1052に接続される。また、ビデオアダプタ1060は、例えばディスプレイ1061に接続される。
ここで、図10に例示するように、ハードディスクドライブ1031は、例えば、OS1091、アプリケーションプログラム1092、プログラムモジュール1093、プログラムデータ1094を記憶する。すなわち、データ分散配置決定プログラムは、コンピュータ1000によって実行される指令が記述されたプログラムモジュールとして、例えばハードディスクドライブ1031に記憶される。
また、実施形態で説明した各種データは、プログラムデータとして、例えばメモリ1010やハードディスクドライブ1031に記憶される。そして、CPU1020が、メモリ1010やハードディスクドライブ1031に記憶されたプログラムモジュール1093やプログラムデータ1094を必要に応じてRAM1012に読み出す。そして、CPU1020が、エリア分割手順、データ分散配置決定手順、バックアップ拠点決定手順、バックアップ制御手順を実行する。
なお、データ分散配置決定プログラムにかかるプログラムモジュール1093およびプログラムデータ1094は、ハードディスクドライブ1031に記憶される場合に限られない。すなわち、プログラムモジュール1093およびプログラムデータ1094は、着脱可能な記憶媒体に記憶され、ディスクドライブなどを介してCPU1020によって読み出されてもよい。データ分散配置決定プログラムにかかるプログラムモジュール1093およびプログラムデータ1094は、ネットワーク(LAN(Local Area Network)、WAN(Wide Area Network)など)を介して接続された他のコンピュータに記憶されていてもよい。そして、プログラムモジュール1093およびプログラムデータ1094は、ネットワークインタフェース1070を介してCPU1020によって読み出され、実行されてもよい。
1 データ分散配置システム
10 データ分散配置装置
11 通信部
12 制御部
12a エリア分割部
12b ハッシュ空間生成部
12c バックアップ拠点決定部
12d バックアップ制御部
13 記憶部
13a 拠点情報
13b ハッシュ空間情報
20、20A〜20H 拠点装置

Claims (5)

  1. 所定エリアに位置する拠点それぞれのデータのバックアップを前記所定エリアに位置する他の拠点へ配置するデータ分散配置装置が実行するデータ均等分散配置方法であって、
    前記所定エリアを分割エリアへ順序を付けて分割するエリア分割工程と、
    前記エリア分割工程により分割された分割エリアそれぞれに位置する前記拠点の数に応じて、nビット(nは自然数)のハッシュ空間を、前記順序にしたがって連続する、前記分割エリアそれぞれに対応する部分ハッシュ空間へ分割する空間分割工程と、
    前記空間分割工程により分割された部分ハッシュ空間のうちの前記分割エリアそれぞれに対応する部分ハッシュ空間へ、前記分割エリアそれぞれに位置する前記拠点をマッピングするマッピング工程と、
    前記拠点に配置されるデータそれぞれに基づく前記nビットのハッシュ値を算出するハッシュ値算出工程と、
    前記ハッシュ値算出工程により生成された前記拠点それぞれに配置されるデータの前記ハッシュ値に基づいて、前記部分ハッシュ空間のうち、前記マッピング工程によりマッピングされた当該拠点が含まれる当該部分ハッシュ空間以外かつ当該部分ハッシュ空間に隣接する隣接部分ハッシュ空間以外の部分ハッシュ空間に対応する前記分割エリアに位置する拠点を、当該データのバックアップ配置先の拠点と決定する決定工程と、
    を含んだことを特徴とするデータ均等分散配置方法。
  2. 前記決定工程により選択された部分ハッシュ空間に対応する前記分割エリアに位置する前記他の拠点へ前記拠点それぞれのデータのバックアップを配置する配置工程
    をさらに含んだことを特徴とする請求項1に記載のデータ均等分散配置方法。
  3. 前記エリア分割工程は、前記所定エリア内において災害をともなう事象が発生した場合に当該事象による災害が波及しうる範囲に基づいて、前記所定エリアを前記分割エリアへ分割する
    ことを特徴とする請求項1または2に記載のデータ均等分散配置方法。
  4. 前記nビットのハッシュ空間を時計回り方向の円環座標で表した場合の座標表現である前記nビットのバイナリ値は、上位ビットのリージョンコードおよび下位ビットのランダムビットを含み、
    前記リージョンコードのビット数Xは、前記部分ハッシュ空間にそれぞれに対応する前記分割エリアに位置する前記拠点の数をバイナリ表現する際のビット数に相当し、前記Xの最大値Yについて、1≦X≦Y<n(X、Yは自然数)であり、
    前記マッピング工程は、前記拠点の識別情報に基づき算出した前記nビットのハッシュ値である拠点IDについて、前記部分ハッシュ空間にそれぞれに対応する前記分割エリアに位置する前記拠点の数をバイナリ表現する際のビット数に応じた上位Xビット(Xは前記Xに等しい)を、当該分割エリアに対応する前記リージョンコードで置換した当該拠点IDに該当する当該部分ハッシュ空間の座標へマッピングことにより、当該分割エリアに対応する部分ハッシュ空間へ当該分割エリアに位置する当該拠点をマッピングする
    ことを特徴とする請求項1、2または3に記載のデータ均等分散配置方法。
  5. 前記nビットのハッシュ空間を時計方向回り方向の円環座標で表した場合の座標表現である前記nビットのバイナリ値は、上位ビットのリージョンコードおよび下位ビットのランダムビットを含み、
    前記リージョンコードのビット数Xは、前記部分ハッシュ空間にそれぞれに対応する前記分割エリアに位置する前記拠点の数をバイナリ表現する際のビット数に相当し、前記Xの最大値Yについて、1≦X≦Y<n(X、Yは自然数)であり、
    前記部分ハッシュ空間のそれぞれについて、当該部分ハッシュ空間以外かつ当該部分ハッシュ空間の次に位置する隣接部分ハッシュ空間以外の部分ハッシュ空間に対応する前記分割エリアの拠点数の合計値をZ(Zは1≦Z<nなる自然数)とする場合に、
    前記決定工程は、
    前記ハッシュ値が、前記部分ハッシュ空間のうち、当該ハッシュ値に対応する当該拠点が位置する当該分割エリアに対応する当該部分ハッシュ空間に含まれる、もしくは、前記隣接部分ハッシュ空間に含まれるか否かを判定し、
    前記ハッシュ値が、当該ハッシュ値に対応する当該拠点が位置する当該分割エリアに対応する当該部分ハッシュ空間に含まれず、かつ、前記隣接部分ハッシュ空間に含まれないと判定された場合に、当該ハッシュ値が含まれる前記部分ハッシュ空間を選択し、
    前記ハッシュ値が、当該ハッシュ値に対応する当該拠点が位置する当該分割エリアに対応する当該部分ハッシュ空間に含まれる、もしくは、前記隣接部分ハッシュ空間に含まれると判定された場合に、当該部分ハッシュ空間以外かつ前記隣接部分ハッシュ空間以外の前記ハッシュ空間のうちの当該隣接部分ハッシュ空間の次に位置する部分ハッシュ空間に対応するリージョンコードに、当該ハッシュ値を前記Zで除算した剰余のバイナリ表現を加算した変換リージョンコードで当該ハッシュ値のリージョンコードを置換し、リージョンコードを置換後の当該ハッシュ値が含まれる部分ハッシュ空間において、当該ハッシュ値に最も近い座標が対応付けられた拠点を決定する
    ことを特徴とする請求項1〜4のいずれか1つに記載のデータ均等分散配置方法。
JP2013025589A 2013-02-13 2013-02-13 データ均等分散配置方法 Pending JP2014154087A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2013025589A JP2014154087A (ja) 2013-02-13 2013-02-13 データ均等分散配置方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013025589A JP2014154087A (ja) 2013-02-13 2013-02-13 データ均等分散配置方法

Publications (1)

Publication Number Publication Date
JP2014154087A true JP2014154087A (ja) 2014-08-25

Family

ID=51575864

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013025589A Pending JP2014154087A (ja) 2013-02-13 2013-02-13 データ均等分散配置方法

Country Status (1)

Country Link
JP (1) JP2014154087A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110457128A (zh) * 2019-07-11 2019-11-15 阿里巴巴集团控股有限公司 任务分配方法、装置和系统

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110457128A (zh) * 2019-07-11 2019-11-15 阿里巴巴集团控股有限公司 任务分配方法、装置和系统
CN110457128B (zh) * 2019-07-11 2023-12-22 创新先进技术有限公司 任务分配方法、装置和系统

Similar Documents

Publication Publication Date Title
US10229004B2 (en) Data transfer priority levels
US10303546B2 (en) Accessing data when transferring the data between storage facilities
US10671328B2 (en) Method for generating addresses in a dispersed storage network
US9959169B2 (en) Expansion of dispersed storage network (DSN) memory
US9594639B2 (en) Configuring storage resources of a dispersed storage network
US20190163572A1 (en) Allocating data based on memory device performance in a dispersed storage network
US9838478B2 (en) Identifying a task execution resource of a dispersed storage network
US9923838B2 (en) Accessing a dispersed storage network
US20170193023A1 (en) Estimating a number of entries in a dispersed hierarchical index
US20180077238A1 (en) Selecting a data storage resource of a dispersed storage network
US10402122B2 (en) Transferring encoded data slices in a dispersed storage network
US10037171B2 (en) Accessing common data in a dispersed storage network
US20150378626A1 (en) Accessing data while migrating storage of the data
US20130151928A1 (en) Transforming Data in a Distributed Storage and Task Network
US20170155709A1 (en) Dynamic resource selection for uploading multi-part data in a dispersed storage network
US10922198B1 (en) Cloning failing memory devices in a dispersed storage network
US10419538B2 (en) Selecting memory for data access in a dispersed storage network
US20130232392A1 (en) Managing memory utilization in a distributed storage and task network
US11474729B2 (en) Updating the configuration of storage units of a storage network
US10275185B2 (en) Fail-in-place supported via decentralized or Distributed Agreement Protocol (DAP)
US10678462B2 (en) Rebalancing data storage in a dispersed storage network
WO2013121736A1 (ja) 乱数発生装置、乱数発生方法、オブジェクト配置装置、並びにコンピュータ・プログラム
JP2014154087A (ja) データ均等分散配置方法
US10506045B2 (en) Memory access using deterministic function and secure seed
US10459797B2 (en) Making trade-offs between rebuild scanning and failing memory device flexibility