JP4952276B2 - 分散データ管理システムおよび方法 - Google Patents

分散データ管理システムおよび方法 Download PDF

Info

Publication number
JP4952276B2
JP4952276B2 JP2007025226A JP2007025226A JP4952276B2 JP 4952276 B2 JP4952276 B2 JP 4952276B2 JP 2007025226 A JP2007025226 A JP 2007025226A JP 2007025226 A JP2007025226 A JP 2007025226A JP 4952276 B2 JP4952276 B2 JP 4952276B2
Authority
JP
Japan
Prior art keywords
data
data processing
distributed
node
distribution
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.)
Active
Application number
JP2007025226A
Other languages
English (en)
Other versions
JP2008191904A (ja
Inventor
大志 加藤
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.)
NEC Corp
Original Assignee
NEC 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 NEC Corp filed Critical NEC Corp
Priority to JP2007025226A priority Critical patent/JP4952276B2/ja
Publication of JP2008191904A publication Critical patent/JP2008191904A/ja
Application granted granted Critical
Publication of JP4952276B2 publication Critical patent/JP4952276B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、サーバが存在しないピアツーピアネットワークにおける分散データ管理システムに係り、特に分散ハッシュ表技術を応用した分散データ管理システムおよび方法に関するものである。
サーバが存在せず、任意のノードが任意の時刻に参加することができ、かつ任意のノードが任意の時刻に離脱することができるピアツーピアネットワークにおいて、データ共有を実現する技術として、分散ハッシュ表技術が知られている。ピアツーピアネットワークでは、図4に示すように、複数のノード200がネットワーク100を介して接続されている。ネットワーク100は、多くの場合IP(Internet Protocol )ネットワークであるが、IPネットワークに限定するものではない。
図4のようなピアツーピアネットワークに関して、分散ハッシュ表技術の代表例であるChordシステムが特許文献1に記載されている。また、分散ハッシュ表技術の応用例であるスキップネットが特許文献2に記載されている。以降では、分散ハッシュ表技術としてChordシステムを対象に説明する。
Chordシステムにおいては、データはID(識別子)と関連づけられて格納される。データに関連づけるIDは、データのハッシュ値もしくはデータを特徴づけるキーのハッシュ値とすることが一般的である。当該ハッシュ値を計算するためのハッシュ関数としては、例えばSHA−1(Secure Hash Algorithm 1 )ハッシュ関数が使用される。Chordシステムにおいては、ノードには予め前記ハッシュ値の空間と同じ空間にIDを定めておき、ノードのIDとデータのIDの距離を定義してデータを分散管理する。
すなわち、あるデータの管理ノードは、当該データのIDに一番距離の小さいIDを持つノードとする。データを登録する場合は当該データの管理ノードへ登録し、データを取得する場合は当該データの管理ノードから取得する。距離は、ID空間の最大値(例えば、2の160乗)を法とした除算により定義する。大規模なピアツーピアネットワークにおいても効率的に管理ノードを探すことができるように、Chordシステムでは経路表を管理してオーバレイネットワークを構成する。
Chordシステムのノード200は、図5に示すように、データ格納手段201と、データ処理手段202と、通信処理手段203と、経路表処理手段204と、経路表格納手段205とから構成される。ノード200の動作は以下のとおりである。
まず、経路表処理手段204は、データを登録もしくは取得する際に、経路表格納手段205に格納された経路表を用いて、当該データのIDと最も近いIDを持つノードが自ノードであるか否かを判断する。
当該データのIDと最も近いIDを持つノードが自ノードである場合、データ処理手段202は、データ格納手段201にデータを登録するか、もしくはデータ格納手段201からデータを取得する。
当該データのIDと最も近いIDを持つノードが自ノードでない場合、通信処理手段203は、当該データの登録のメッセージもしくは取得のメッセージを、当該データのIDと可能な限り近いIDを持つ別のノードに転送する。以降のノードにおいても同様の転送を繰り返すことにより、当該データのIDと最も近いIDを持つノードにメッセージが到達する。
Chordシステムにおける経路表は、例えば、自ノードのIDとの距離が2のi乗に最も近いIDを持つノードのID及びアドレスをエントリとして格納している。ただし、距離の最小単位を1とし、2のi乗はID空間を越えないようなiを用いるものとする。例えばID空間の最大値を2の160乗とすれば、iは0≦i≦159を満たす。このような経路表の構成法により、Chordシステムでは、任意のノードから別の任意のノードに辿り着くまでのホップ数がO(log(N))となる。ただし、Nはネットワークの大きさ、すなわちネットワークに参加しているノード数を表し、O()はオーダを意味する。
実際には、ホップ数の分布には幅があり、ホップ数の平均値はホップ数の最大値のおよそ半分になることが知られている。また、logの底はID空間のワード数に一致し、前記の例では2となる。すなわち、ホップ数の平均値は、log(N)/log(2)/2となる。O(log(N))のホップ数はNの増加に対して比較的緩やかに増加するため、Chordシステムはネットワークの大きさに対して効率的である。
特開2005−354364号公報 特開2004−266796号公報
Chordシステムおよび一般的な分散ハッシュ表技術を用いた分散データ管理システムにおいては、データ取得にO(log(N))のホップ数を必要とするため、次のような問題点があった。
第1の問題点は、ネットワークがある程度の大きさを超えると、ホップ数による遅延が無視できないほど大きくなることである。例えば、ネットワークに参加しているノード数を1000000ノード、すなわちN=1000000とすると、ホップ数の平均値は、log(100000)/log(2)/2=9.96となる。仮に、1ホップにかかるネットワーク遅延が100ミリ秒とすると、合計で1秒近い遅延になり、用途によっては許容できない場合がある。すなわち、遅延がホップ数に比例しているため、大規模なネットワークではホップ数の増加によりデータ取得にかかる遅延が大きくなるという問題がある。
第2の問題点は、受動的にデータの存在を知る可能性が低いことである。その理由は、データ取得の明示的な要求がない限り、基本的にはデータが配信されないためである。データの登録に際して転送途中に関与するノードは存在するものの少数であり、キーの情報を無くしてデータの存在を知りうるノードの割合は限られる。この問題はネットワークが大きいほど顕著になる。
本発明の目的は、分散ハッシュ表技術を用いた分散データ管理システムにおいて、データ取得にかかる遅延を軽減することができる分散データ管理システムおよび方法を提供することにある。
本発明の他の目的は、分散ハッシュ表技術を用いた分散データ管理システムにおいて、データ取得の要求がなくとも、将来のデータ処理を予測してデータを配信することができる分散データ管理システムおよび方法を提供することにある。
本発明は、ピアツーピアネットワークにおける分散データ管理システムにおいて、ネットワークに接続される各ノードが、他ノードと前記ネットワークを介して通信する通信処理手段と、データを記憶するデータ格納手段と、前記通信処理手段が受信したデータ処理要求に応じて、前記データ格納手段に格納されたデータを処理するデータ処理手段と、前記データ処理要求の履歴を記憶するデータ処理要求履歴格納手段と、前記データ処理要求の履歴を基に他ノードのデータ処理パターンを予測して、このノードにデータを事前に配信するか否かを判断するデータ処理予測手段と、このデータ処理予測手段から配信の指示を受けたときに、指示されたデータを前記他ノードに配信するデータ事前配信手段と、経路表を記憶する経路表格納手段と、この経路表格納手段に格納された経路表の情報に基づいて、前記通信処理手段が受信したメッセージの転送先を決定する経路表処理手段とを備え、前記経路表は、分散ハッシュ表技術を用いて構築され、前記データ処理予測手段は、前記データ処理要求の履歴を基に過去から現在までの前記データ処理パターンを求め、このデータ処理パターンから将来のデータ処理パターンを予測して、事前配信しない場合のデータ取得にかかるコストがデータ事前配信にかかるコストを上回ると判断した場合に、データの事前配信を決定することを特徴とするものである。
データ処理予測手段は、データ処理要求の履歴をデータ処理要求履歴格納手段に格納し、データ処理要求履歴格納手段に格納されたデータ処理要求の履歴をもとに、将来のデータ処理を予測する。例えば、データ取得の分布が時間に対して一様であると仮定すると、あるデータXに対する単位時間あたりの取得要求数をもとにデータXに対する将来の取得要求数を予測することができる。この予測に基づき、データXに対する将来の取得要求にかかるコスト(メッセージ数やメッセージ量)がデータXを事前に配信するためにかかるコストより多いと判断される場合は、データ事前配信手段によりデータXはすべてのまたは一部のノードに事前に配信される。このような構成を採用し、データ処理を予測し、必要に応じてデータを事前に配信することで、データ取得にかかる遅延を軽減することができ、本発明の目的を達成することができる。また、データ処理を予測し、必要に応じてデータを事前に配信することで、データ取得要求に関わらずデータを配信することができ、本発明の他の目的を達成することができる。
また、本発明の分散データ管理システムの1構成例において、前記データ事前配信手段は、前記経路表格納手段に格納された経路表の情報を用いてデータを事前に配信するものである。
また、本発明の分散データ管理システムの1構成例において、前記データ処理予測手段は、特定のノードのグループを事前配信範囲として、この事前配信範囲についてのみ前記データ処理パターンを予測し、前記データ事前配信手段は、前記ノードのグループに対してのみデータを事前に配信するものである。
また、本発明の分散データ管理システムの1構成例において、前記データ処理予測手段は、他ノードにおける過去から現在までのデータ取得頻度と将来のデータ取得頻度とが線形の関係にあると仮定して、将来のデータ取得頻度を前記データ処理パターンとして予測するものである。
また、本発明の分散データ管理システムの1構成例において、前記データ処理予測手段は、データ登録時点から現在までの時間をT1とし、現在からデータの有効期限までの時間をT2とし、データ登録時点から現在までのデータ取得回数をKとしたときに、将来のデータ取得回数の予測値をK×T2/T1とするものである。
また、本発明の分散データ管理方法において、ネットワークに接続される各ノードは、自ノードの通信処理手段が受信したデータ処理要求に応じて、自ノードのデータ格納手順に格納されたデータを処理するデータ処理手順と、前記データ処理要求の履歴を記憶するデータ処理要求履歴格納手順と、前記データ処理要求の履歴を基に他のノードのデータ処理パターンを予測して、このノードにデータを事前に配信するか否かを判断するデータ処理予測手順と、このデータ処理予測手順で事前配信が決定されたデータを前記他のノードに配信するデータ事前配信手順と、経路表格納手段に格納された経路表の情報に基づいて、前記通信処理手段が受信したメッセージの転送先を決定する経路表処理手順とを実行し、前記経路表は、分散ハッシュ表技術を用いて構築され、前記データ処理予測手順は、前記データ処理要求の履歴を基に過去から現在までの前記データ処理パターンを求め、このデータ処理パターンから将来のデータ処理パターンを予測して、事前配信しない場合のデータ取得にかかるコストがデータ事前配信にかかるコストを上回ると判断した場合に、データの事前配信を決定するようにしたものである。
本発明によれば、データ処理要求の履歴を基に他ノードのデータ処理パターンを予測して、このノードにデータを事前に配信するか否かを判断し、事前配信が決定されたデータを他ノードに配信するようにしたので、データ取得にかかる遅延を軽減することができる。その理由は、将来のデータ処理を予測して、必要に応じてデータを他ノードに事前に配信することで、事前配信されたノードでは、当該データの取得要求が発生した場合に、データを自ノードのデータ格納手段から即座に取得できるためである。また、本発明では、データ取得要求を行わないノードにもデータを配信することができる。その理由は、将来のデータ処理を予測して、必要に応じてデータを事前に配信することで、全てのもしくは一部のノードに能動的にデータが配信されるためである。
また、本発明では、経路表格納手段に格納された経路表の情報を用いてデータを事前に配信することにより、データ事前配信手段が別途配信のための情報を管理する必要がなくなる。
また、本発明では、データ処理要求の履歴を基に過去から現在までのデータ処理パターンを求め、このデータ処理パターンから将来のデータ処理パターンを予測して、事前配信しない場合のデータ取得にかかるコストとデータ事前配信にかかるコストとを比較することにより、データ処理予測手段はデータを事前に配信するか否かを判断することができる。
また、本発明では、特定のノードのグループを事前配信範囲として、この事前配信範囲についてのみデータ処理パターンを予測することにより、特定のノードのグループに対してのみデータを事前に配信することができる。
また、本発明では、他ノードにおける過去から現在までのデータ取得頻度と将来のデータ取得頻度とが線形の関係にあると仮定することにより、過去から現在までのデータ取得頻度から将来のデータ取得頻度をデータ処理パターンとして予測することができる。
[第1の実施の形態]
次に、本発明を実施するための最良の形態について図面を参照して詳細に説明する。図1は本発明の第1の実施の形態に係る分散データ管理システムにおけるノードの構成を示すブロック図である。本実施の形態の分散データ管理システムを適用するピアツーピアネットワークの構成は図4に示したとおりであるので、ネットワークを100、ノードを200とする。図1では、1つのノード200についてのみ記載しているが、図4に示したように、同様の構成のノード200が複数存在することは言うまでもない。
図1に示すように、ノード200は、データ格納手段201と、データ処理手段202と、通信処理手段203と、経路表処理手段204と、経路表格納手段205と、データ処理予測手段206と、データ処理要求履歴格納手段207と、データ事前配信手段208とから構成されている。このノード200の各手段は、それぞれ概略つぎのように動作する。
データ格納手段201は、分散ハッシュ表全体に格納されるデータの一部、すなわち自ノードが管理するデータを記憶している。
データ処理手段202は、通信処理手段203からデータ処理要求を受けたときに、このデータ処理要求をデータ処理予測手段206へ出力すると共に、データ処理要求に応じてデータ処理を実行し、必要であればデータ処理の結果を通信処理手段203を通じて要求元のノード200もしくはクライアント(不図示)に返送する。
通信処理手段203は、ネットワーク100を介して他のノード200もしくはクライアントからメッセージを受けたときに、当該メッセージがデータ処理要求であればデータ処理手段202に当該要求を出力し、当該メッセージが経路表更新要求であれば経路表処理手段204に当該要求を出力し、いずれの要求であっても必要であれば当該要求を別のノード200に転送する。
経路表処理手段204は、通信処理手段203から経路表更新要求を受けたときに、経路表格納手段205に格納された経路表を更新し、必要であれば、別のノード200に対して新規に経路表更新要求を送信する。また、経路表処理手段204は、メッセージの転送の必要性および転送先を判断する。
経路表格納手段205は、経路表処理手段204により管理される経路表を記憶している。経路表は、分散ハッシュ表技術を用いて構築される。
データ処理予測手段206は、データ処理手段202から逐次もしくは定期的にデータ処理要求を受けて、このデータ処理要求を履歴としてデータ処理要求履歴格納手段207に格納する。また、データ処理予測手段206は、データ処理要求履歴格納手段207に格納されているデータ処理要求履歴に基づいて将来のデータ処理を予測し、あるデータを事前に配信すべきと判断すれば、データ事前配信手段208に対して当該データの事前配信を指示する。
データ事前配信手段208は、データ処理予測手段206からデータ事前配信の指示を受けたときに、指示されたデータをデータ格納手段201から取り出して、このデータをネットワーク100を介して自ノード以外の全てのノード200もしくは一部のノード200のデータ事前配信手段208に事前配信する。
事前配信されたデータを受信したノード200では、データ事前配信手段208が受信したデータをデータ格納手段201に格納する。
あるデータを事前に配信すべきか否かを判断するための参考情報としては、例えば当該データの単位時間あたりの取得回数(配信側から見た場合には配信回数)や、当該データの残りの有効時間内での線形予測取得回数がある。また、当該データが更新されたデータである場合には、更新前の古いデータの取得頻度(配信頻度)を参考情報として用いてもよいし、データの類似性が判定できる場合には、当該データの類似データの取得頻度を参考情報として用いてもよい。
また、データの事前配信範囲、すなわち事前配信先のノードを予め限定し、この事前配信範囲のみに関する当該データの前記参考情報を用いて、データを事前に配信すべきか否かを判断するようにしてもよい。
なお、データ取得頻度とデータ取得回数は前記参考情報として同等の意味を有するが、データ取得の数を明確な期間を定めずに求めた場合はデータ取得頻度とし、ある特定の期間について求めた場合はデータ取得回数とする。
次に、図1及び図2のフローチャートを参照して本実施の形態の全体の動作について詳細に説明する。
まず、ノード200の通信処理手段203は、ネットワーク100を介して別のノード200もしくはクライアントからメッセージを受信する(ステップA1)。メッセージを受信した通信処理手段203は、このメッセージに含まれる要求の種類に応じて要求を振り分ける。すなわち、メッセージに含まれる要求がデータ処理要求の場合はデータ処理手段202に出力し、経路表更新要求の場合は経路表処理手段204に出力する(ステップA2)。
データ処理手段202は、通信処理手段203からデータ処理要求を受けた場合に、このデータ処理要求に応じてデータを処理する(ステップA3)。データ処理要求には、データ登録要求とデータ取得要求の2種類がある。
データ処理手段202は、データ登録要求を受けた場合、この要求に含まれるデータをデータ格納手段201に登録し、要求に対する返信が必要な場合は(例えば返信すべきことが予め定められている場合など)、データ登録が完了したことを示すデータ処理結果を通信処理手段203及びネットワーク100を介して要求元のノード200もしくはクライアントに返信する。また、データ処理手段202は、データ取得要求を受けた場合、この要求に該当するデータをデータ格納手段201から取得し、取得したデータを通信処理手段203及びネットワーク100を介して要求元のノード200もしくはクライアントに返信する。
次に、データ処理手段202は、通信処理手段203から受けたデータ処理要求をデータ処理予測手段206に出力し、データ処理予測手段206は、このデータ処理要求を履歴としてデータ処理要求履歴格納手段207に格納する(ステップA4)。
続いて、データ処理予測手段206は、データ処理要求履歴格納手段207に格納されているデータ処理要求の履歴を参照して、あるデータについて過去から現在までのデータ取得パターン(データ取得回数又はデータ取得頻度)を履歴から求め、このデータについての将来のデータ取得パターンを予測し、事前配信しない場合のデータ取得にかかるコスト(メッセージ数やメッセージ量)がデータ事前配信にかかるコストを上回ると判断した場合には、データ事前配信手段208に当該データの事前配信を指示する(ステップA5)。
データ事前配信手段208は、データ事前配信の指示を受けると、指示されたデータをネットワーク100を介して自ノード以外の全てのノード200もしくは一部のノード200へ事前配信する(ステップA6)。
事前配信されたデータを受信したノード200では、データ事前配信手段208が受信したデータを自ノードのデータ格納手段201に格納する。
一方、経路表処理手段204は、通信処理手段203から経路表更新要求を受けた場合に、経路表格納手段205に格納された経路表を経路表更新要求に応じて更新する(ステップA7)。経路表更新要求は、例えば新たなノード200がネットワーク100に追加されたときに生成される。続いて、経路表処理手段204は、新たに経路表を更新する必要があるか否かを判断する(ステップA8)。通信処理手段203は、経路表処理手段204により新たに経路表を更新する必要があると判断された場合、新たな経路表更新要求をネットワーク100を介して送信する(ステップA9)。
次に、経路表処理手段204は、ステップA1で通信処理手段203が受けたメッセージの転送が必要か否かを判断する(ステップA10)。メッセージの転送が必要な場合としては、例えばメッセージが自ノード宛でない場合がある。経路表処理手段204は、メッセージの転送が必要と判断した場合、経路表格納手段205に格納された経路表の情報に基づいてメッセージの転送先を決定する。通信処理手段203は、経路表処理手段204により転送が必要と判断された場合、メッセージをネットワーク100を介して転送先のノード200に転送する(ステップA11)。
なお、図2のステップA2において、通信処理手段203が受信した1つのメッセージに複数の要求が含まれる場合もある。また、ステップA5およびステップA8については、メッセージを受信する以外のイベント、例えば定期的なイベントにより実行される場合もある。
次に、本実施の形態の効果について説明する。本実施の形態では、データ処理要求の履歴をデータ処理要求履歴格納手段207に格納し、データ処理予測手段206がデータ処理要求の履歴を利用して将来のデータ取得要求のパターンを予測し、データを事前に配信するとコスト(メッセージ数やメッセージ量)が少なく済むと判断される場合に、データを事前配信することにより、データが事前配信されたノードにおいては以後の当該データの取得が即座に完了するので、全体としてデータ取得にかかる時間を軽減することができる。
Chordシステムおよび一般的な分散ハッシュ表技術を用いた分散データ管理システムにおいて、一回のデータ取得にかかるコストはO(log(N))であり、一般的なデータ配信にかかるコストはO(N)であるから、あるデータの取得回数が将来にわたってO(N/log(N))回見込まれる場合は、データを事前配信することによるコストの増加はない。
[第2の実施の形態]
次に、本発明の第2の発明を実施するための最良の形態について図面を参照して詳細に説明する。図3は本発明の第2の実施の形態に係る分散データ管理システムにおけるノードの構成を示すブロック図であり、図1と同一の構成には同一の符号を付してある。
本実施の形態は、図1に示した第1の実施の形態の構成と比較して、経路表格納手段205とデータ事前配信手段208aとが接続している点で異なる。
本実施の形態においては、データ事前配信手段208aは、データを事前配信する際に、経路表格納手段205に格納されている経路表の情報を用いて、データの事前配信先を決定する。
第1の実施の形態では、データ事前配信手段208が事前配信のための情報を管理している必要があるが、本実施の形態では、データ事前配信手段208aが経路表格納手段205に格納されている経路表の情報を用いることにより、データ事前配信手段208aが別途配信のための情報を管理する必要がなくなるという効果がある。
一般に、分散ハッシュ表技術では、任意のノードにO(log(N))ホップで到達するために経路表を管理してネットワークを構成するが、このネットワークは任意のノードを根とした木とみなせることが多い。そこで、本実施の形態では、データ事前配信手段208aがデータを事前配信する際にその木を使って事前配信することにより、新たにネットワーク構造を用意する必要がなくなる。
[第3の実施の形態]
次に、具体的な例を用いて本発明を実施するための最良の形態の動作を説明する。本実施の形態は、第1の実施の形態をより具体的に説明するものである。本実施の形態では、分散ハッシュ表技術の例としてChordシステムを想定し、データを事前配信する技術としては二分木の構造をもったアプリケーションレイヤマルチキャストを想定している。分散ハッシュ表技術の他の例としては、KademliaやPastryなどが知られている。データの事前配信の技術としては、アプリケーションレイヤマルチキャストだけでなく、IPマルチキャストも利用することができる。
図1に示したデータ格納手段201とデータ処理手段202と通信処理手段203と経路表処理手段204と経路表格納手段205は、Chordシステムの構成要素である。Chordシステムの詳細は例えば特許文献1に開示されている。
本実施の形態においては、通常のChordシステムと異なり、事前に配信されたデータを取得すること、および履歴を記録することの2つの理由により、データ処理要求が常にデータ処理手段202に出力されるようにする。
以下では、Chordシステムの構成要素を除いたデータ処理予測手段206と、データ処理要求履歴格納手段207と、データ事前配信手段208とについて詳細に説明する。データ処理要求履歴格納手段207は、メモリもしくはファイルシステム上のデータベースであり、例えばCSV(Comma Separated Values)形式のファイルを保存する。CSVファイルの一行は、<時刻>,<取得/登録>,<ノード情報>,<キー>,<データ>,<有効期限>とする。ただし、<データ>および<有効期限>はデータ登録要求の場合のみ必要である。また、<データ>および<有効期限>はデータ格納手段201と重複する場合は省略することもできる。<ノード情報>はIPアドレスに加え、分散ハッシュ表(経路表)が提供するIDやグループの情報などによって構成される。
データ処理予測手段206は、データ処理手段202からデータ処理要求を受けると、このデータ処理要求を逐次にもしくは定期的にデータ処理要求履歴格納手段207のCSVファイルに追記する。また、データ処理予測手段206は、CSVファイルへの追記と同期的もしくは非同期的に、データ処理要求に対応したデータもしくはデータ格納手段201に格納されている全てのデータについて、それらのデータを事前に配信すべきか否かを判断する。
データを事前に配信すべきか否かを判断するためには、予めもしくは動的に配信にかかるコストを見積もる必要がある。ここで、データのサイズは十分に小さいと仮定し、ストレージコストを無視すると、コストはメッセージ送受信の量となる。データサイズが固定の場合は、メッセージ送受信の量はメッセージ数と同等であり、以下ではコストとしてメッセージ数を考える。
二分木によるマルチキャストでは、すべてのノードが厳密に1回メッセージを受信するため、N個のノードにデータを事前配信するコストはNである。ところで、分散ハッシュ表を用いた場合には、一般にデータ取得にO(log(N))のコストがかかり、Chordシステムでは、データ取得に平均的にlog(N)/log(2)/2のコストがかかる。仮に、あるデータについて今後の取得回数もしくは取得ノード数がMであるとすると、このデータ取得にかかるコストの合計の期待値は、M×log(N)/log(2)/2になる。
データ事前配信手段208は、このコストの合計の期待値M×log(N)/log(2)/2がデータの事前配信コストNより大きければ、データを事前配信すべきと判断する。データ事前配信手段208で利用されるネットワークは、すべてのノード200によって一つの二分木を構成する。データは二分木の根に相当するノード200から事前配信される。根に相当するノード200に負荷が集中しないように、複数の二分木を構成する場合もある。
データの事前配信を受けたノード200では、事前配信されたデータがデータ格納手段201に格納される。以後、このノード200において当該データの取得要求が発生した場合には、データ格納手段201から当該データを取得することができるので、データ取得が即座に完了する。
次に、データ事前配信手段208が将来のデータ取得頻度(データ取得回数)Mを予測する方法について説明する。Mの予測方法には2種類ある。第一の方法は、過去から現在までのデータ取得頻度と将来のデータ取得頻度とが線形の関係にあると仮定する方法である。この方法では、例えばデータ登録時点から現在までの時間をT1とし、現在からデータの有効期限までの時間をT2とし、データ登録時点から現在までのデータ取得回数をKとすると、現在からデータの有効期限までのデータ取得回数はM=K×T2/T1と予測することができる。また、例えば単位時間T(例えば1分)におけるデータ取得回数の平均値をLとし、前記のT2を用いると、現在からデータの有効期限までのデータ取得回数はM=L×T2/Tと予測することができる。
M=K×T2/T1又はM=L×T2/Tの予測例では、現在からデータの有効期限までの時間T2が必要であるが、T2が定められていない場合は、例えばT2をT1の半分とすればよい。また、例えばあるデータを更新する場合には、当該データの過去の取得頻度を今後の取得頻度としてMを予測することができる。また、例えばデータの類似性が判定できる場合には、当該データに類似したデータの過去の取得頻度を当該データの今後の取得頻度としてMを予測することができる。
第二の方法は、過去から現在までのデータ取得頻度と将来のデータ取得頻度とが非線形の関係にあると仮定する方法である。この方法では、例えばデータ登録時点から現在までのデータ取得回数をKとすると、将来のデータ取得回数はM=K/2と予測することができる。また、例えばデータ取得頻度が単調減少するものとして、データ登録時点から現在までのデータ取得パターンよりデータ取得頻度の減少の傾きJを推定する。現在のデータ取得頻度をLとすれば、将来のデータ取得頻度はM=L×L/J/2と予測することができる。また、例えばデータ取得頻度は2次関数に従って減少するものとして、データ登録時点から現在までのデータ取得パターンより最少二乗法により2次関数を推定して、将来のデータ取得頻度Mを予測することもできる。
また、前記第一の方法、および第二の方法の両方の場合において、データの事前配信範囲を限定し、この事前配信範囲のみの取得パターンを利用して将来のデータ取得頻度(データ取得回数)Mを予測するようにしてもよい。この場合、データ事前配信手段208は、事前配信範囲のみのデータ事前配信コストよりも事前配信しない場合のデータ取得にかかるコストの合計の期待値M×log(N)/log(2)/2が大きければ、データを事前配信すべきと判断し、当該範囲にデータを事前配信する。
事前配信範囲としては、例えばIPネットワークのサブネットを用いてグループ化したノード200のグループや、IPマルチキャストのグループ、あるいは分散ハッシュ表(経路表)が提供するグループ情報を用いてグループ化したノード200のグループなどがある。
IPネットワークのサブネットを用いてグループ化する場合は、IPアドレスをビット列とみなして、あるプレフィックス長を用いプレフィックスが一致するIPアドレスを持つノードをグループ化する。データ事前配信手段208は、グループ毎にデータ取得頻度Mを予測し、事前配信しない場合のデータ取得にかかるコストの合計の期待値M×log(N’)/log(2)/2が事前配信範囲のデータ事前配信コストN’より大きければ、データを事前配信すべきと判断し、当該事前配信範囲のグループにデータを事前配信する。ただし、N’は当該グループ中のノード数である。
また、IPアドレスのプレフィックスを用いたデータの事前配信を行う場合、アプリケーションレイヤマルチキャストの二分木は、IPアドレスのプレフィックス一致長が長いノード同士を近くに接続するように構成する。
なお、第1〜第3の実施の形態におけるノード200は、例えばCPU、記憶装置およびインタフェースを備えたコンピュータとこれらのハードウェア資源を制御するプログラムによって実現することができる。このようなコンピュータを動作させるためのプログラムは、フレキシブルディスク、CD−ROM、DVD−ROM、メモリカードなどの記録媒体に記録された状態で提供される。CPUは、読み込んだプログラムを記憶装置に書き込み、このプログラムに従って第1〜第3の実施の形態で説明した処理を実行する。
本発明は、ネットワーク上で、あるノードから別のノードへ情報を配信するといった用途に適用できる。また、受信ノードを特定しないで情報を配信するといった用途にも適用可能である。
本発明の第1の実施の形態に係る分散データ管理システムにおけるノードの構成を示すブロック図である。 本発明の第1の実施の形態に係る分散データ管理システムの動作を示すフローチャートである。 本発明の第2の実施の形態に係る分散データ管理システムにおけるノードの構成を示すブロック図である。 ピアツーピアネットワークの構成例を示すブロック図である。 従来のChordシステムにおけるノードの構成を示すブロック図である。
符号の説明
100…ネットワーク、200…ノード、201…データ格納手段、202…データ処理手段、203…通信処理手段、204…経路表処理手段、205…経路表格納手段、206…データ処理予測手段、207…データ処理要求履歴格納手段、208,208a…データ事前配信手段。

Claims (6)

  1. ピアツーピアネットワークにおける分散データ管理システムにおいて、
    ネットワークに接続される各ノードは、
    他ノードと前記ネットワークを介して通信する通信処理手段と、
    データを記憶するデータ格納手段と、
    前記通信処理手段が受信したデータ処理要求に応じて、前記データ格納手段に格納されたデータを処理するデータ処理手段と、
    前記データ処理要求の履歴を記憶するデータ処理要求履歴格納手段と、
    前記データ処理要求の履歴を基に他ノードのデータ処理パターンを予測して、このノードにデータを事前に配信するか否かを判断するデータ処理予測手段と、
    このデータ処理予測手段から配信の指示を受けたときに、指示されたデータを前記他ノードに配信するデータ事前配信手段と
    経路表を記憶する経路表格納手段と、
    この経路表格納手段に格納された経路表の情報に基づいて、前記通信処理手段が受信したメッセージの転送先を決定する経路表処理手段とを備え、
    前記経路表は、分散ハッシュ表技術を用いて構築され、
    前記データ処理予測手段は、前記データ処理要求の履歴を基に過去から現在までの前記データ処理パターンを求め、このデータ処理パターンから将来のデータ処理パターンを予測して、事前配信しない場合のデータ取得にかかるコストがデータ事前配信にかかるコストを上回ると判断した場合に、データの事前配信を決定することを特徴とする分散データ管理システム。
  2. 請求項記載の分散データ管理システムにおいて、
    前記データ事前配信手段は、前記経路表格納手段に格納された経路表の情報を用いてデータを事前に配信することを特徴とする分散データ管理システム。
  3. 請求項1又は2記載の分散データ管理システムにおいて、
    前記データ処理予測手段は、特定のノードのグループを事前配信範囲として、この事前配信範囲についてのみ前記データ処理パターンを予測し、
    前記データ事前配信手段は、前記ノードのグループに対してのみデータを事前に配信することを特徴とする分散データ管理システム。
  4. 請求項1乃至のいずれか1項に記載の分散データ管理システムにおいて、
    前記データ処理予測手段は、他ノードにおける過去から現在までのデータ取得頻度と将来のデータ取得頻度とが線形の関係にあると仮定して、将来のデータ取得頻度を前記データ処理パターンとして予測することを特徴とする分散データ管理システム。
  5. 請求項記載の分散データ管理システムにおいて、
    前記データ処理予測手段は、データ登録時点から現在までの時間をT1とし、現在からデータの有効期限までの時間をT2とし、データ登録時点から現在までのデータ取得回数をKとしたときに、将来のデータ取得回数の予測値をK×T2/T1とすることを特徴とする分散データ管理システム。
  6. ピアツーピアネットワークにおける分散データ管理方法において、
    ネットワークに接続される各ノードは、
    自ノードの通信処理手段が受信したデータ処理要求に応じて、自ノードのデータ格納手段に格納されたデータを処理するデータ処理手順と、
    前記データ処理要求の履歴を記憶するデータ処理要求履歴格納手順と、
    前記データ処理要求の履歴を基に他のノードのデータ処理パターンを予測して、このノードにデータを事前に配信するか否かを判断するデータ処理予測手順と、
    このデータ処理予測手順で事前配信が決定されたデータを前記他のノードに配信するデータ事前配信手順と
    経路表格納手段に格納された経路表の情報に基づいて、前記通信処理手段が受信したメッセージの転送先を決定する経路表処理手順とを実行し、
    前記経路表は、分散ハッシュ表技術を用いて構築され、
    前記データ処理予測手順は、前記データ処理要求の履歴を基に過去から現在までの前記データ処理パターンを求め、このデータ処理パターンから将来のデータ処理パターンを予測して、事前配信しない場合のデータ取得にかかるコストがデータ事前配信にかかるコストを上回ると判断した場合に、データの事前配信を決定することを特徴とする分散データ管理方法。
JP2007025226A 2007-02-05 2007-02-05 分散データ管理システムおよび方法 Active JP4952276B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007025226A JP4952276B2 (ja) 2007-02-05 2007-02-05 分散データ管理システムおよび方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007025226A JP4952276B2 (ja) 2007-02-05 2007-02-05 分散データ管理システムおよび方法

Publications (2)

Publication Number Publication Date
JP2008191904A JP2008191904A (ja) 2008-08-21
JP4952276B2 true JP4952276B2 (ja) 2012-06-13

Family

ID=39751954

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007025226A Active JP4952276B2 (ja) 2007-02-05 2007-02-05 分散データ管理システムおよび方法

Country Status (1)

Country Link
JP (1) JP4952276B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5845877B2 (ja) * 2011-12-20 2016-01-20 富士通株式会社 情報処理装置、データ制御方法およびデータ制御プログラム
CN113923222B (zh) * 2021-12-13 2022-05-31 云和恩墨(北京)信息技术有限公司 数据处理方法及装置

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003030087A (ja) * 2001-07-17 2003-01-31 Fujitsu Ltd コンテンツ配信ネットワークシステム
US7613796B2 (en) * 2002-09-11 2009-11-03 Microsoft Corporation System and method for creating improved overlay network with an efficient distributed data structure
JP4271620B2 (ja) * 2004-06-10 2009-06-03 日本電信電話株式会社 分散型データ処理/管理装置及びその方法

Also Published As

Publication number Publication date
JP2008191904A (ja) 2008-08-21

Similar Documents

Publication Publication Date Title
US8010488B2 (en) Information distribution system, information processing device and memory medium
JP5029373B2 (ja) ノード、経路制御方法および経路制御プログラム
US9635107B2 (en) System and method for managing data delivery in a peer-to-peer network
US8984096B2 (en) Method and apparatus for transmitting data in a peer-to-peer network
US7558875B2 (en) Measurement-based construction of locality-aware overlay networks
Tang et al. GoCast: Gossip-enhanced overlay multicast for fast and dependable group communication
US8250171B2 (en) Content delivery apparatus, content delivery method, and content delivery program
US20070230468A1 (en) Method to support mobile devices in a peer-to-peer network
US20110208828A1 (en) Node apparatus and computer-readable storage medium for computer program
JP2009543447A5 (ja)
JP2009543447A (ja) ランデブーフェデレーション内の近傍域間通信
WO2010127618A1 (zh) 一种实现流媒体内容服务的系统和方法
KR101511154B1 (ko) 이분 피어 오버레이를 사용함으로써, p2p모드로 피어 사이에 콘텐츠 데이터를 배포하기 위한 디바이스 및 방법
CN103957269A (zh) 点对点p2p网络节点选择方法及点对点p2p重定向服务器
CN103139081A (zh) 分布式哈希表路由表更新方法及节点
JP4952276B2 (ja) 分散データ管理システムおよび方法
JP2010536259A5 (ja)
US20210153098A1 (en) Automatic routing in a mesh network of wireless messaging devices
JP4527627B2 (ja) コンテンツの配信装置,コンテンツ配信ネットワークおよびコンテンツ配信方法
CN101616061A (zh) 路径确定方法、路径确定装置及网络系统
JP5408697B2 (ja) コンテンツ配信方法およびシステム
JP2008236536A (ja) 通信システム、ノード装置、ノード処理プログラム、及びサーバ機能制御方法
KR20110063083A (ko) 해시를 이용한 게시-구독 네트워크 구성 방법 및 통신 지원 방법
Mir et al. Data forwarding with finite buffer capacity in opportunistic networks
JP2009230686A (ja) コンテンツ管理サーバ及びコンテンツ管理プログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100119

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20111020

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20111101

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120104

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20120214

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120227

R150 Certificate of patent or registration of utility model

Ref document number: 4952276

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150323

Year of fee payment: 3