(57)【要約】【課題】特定のキーに対してバースト的に大量のリクエストが発生した時に、特定のノードに負荷が集中しないように負荷を分散することのできる分散データの管理方法および管理システムを提供する。【解決手段】キーにバースト的なアクセスが発生し（１）、分散処理ノードの負荷が上昇すると（２）、分散処理ノードは、キーのＩＤから１をプラスしたＩＤを引数にして、バッファーノードリスト管理サーバーにバッファーノード要求メッセージを送信する（３）。バッファーノードリスト管理サーバーは、バッファーノードリストを検索し、ＩＤが割り当てられていないバッファーノードに、キーのＩＤから１をプラスしたＩＤを割り当てる（４）。ＩＤを割り当てられたバッファーノードがＩＤ空間にマッピングされ（５）、キーの担当が、バッファーノードに切り替わる（６）。【選択図】図３
2008005449.tif 000002
【特許請求の範囲】
【請求項１】
始点と終点を結んだハッシュ値の円のＩＤ空間を有するＰ２Ｐネットワークにおける分散データの管理方法において、
アクセスが集中したキーのＩＤから１をプラスしたＩＤをバッファーノードに割り当て、ＩＤが割り当てられたバッファーノードを前記ＩＤ空間にマッピングさせて前記Ｐ２Ｐネットワークに参加させ、前記バッファーノードに前記キーを担当させることを特徴とする分散データの管理方法。
【請求項２】
始点と終点を結んだハッシュ値の円のＩＤ空間を有するＰ２Ｐネットワークにおける分散データの管理方法において、
Ｐ２Ｐネットワーク上の分散処理ノードが、管理サーバーに、キーのＩＤから１をプラスしたＩＤを引数にしてメッセージを送信すると、管理サーバーが、前記メッセージに含まれているＩＤをバッファーノードリストに書き込み、バッファーノードリストから、ＩＤに対応するバッファーノードのＩＰアドレスを取得し、バッファーノードのＩＰアドレスを含むメッセージを前記分散処理ノードに返信し、
前記分散処理ノードが、返信されたメッセージから取得したＩＰアドレスを宛先に指定してバッファーノードに対して参加メッセージを送信すると、前記参加メッセージを受信したバッファーノードが、参加メッセージに含まれているＩＤを用いて前記Ｐ２Ｐネットワークに参加の処理を行い、前記キーを担当することを特徴とする分散データの管理方法。
【請求項３】
前記管理サーバーは、前記バッファーノードからバッファーノードの離脱メッセージを受信すると、離脱メッセージを送信したバッファーノードのＩＰアドレスに対応する前記バッファーノードリストのＩＤをクリアすることを特徴とする請求項２に記載の分散データの管理方法。
【請求項４】
前記分散処理ノードは、キーにアクセスが集中して負荷が上昇したときに、前記管理サーバーに、キーのＩＤから１をプラスしたＩＤを引数にしてメッセージを送信することを特徴とする請求項２または３に記載の分散データの管理方法。
【請求項５】
始点と終点を結んだハッシュ値の円のＩＤ空間を有するＰ２Ｐネットワークにおける分散データの管理システムであって、
前記ＩＤ空間にマッピングされて前記Ｐ２Ｐネットワークに参加するバッファーノードと、
各バッファーノードのＩＰアドレスを少なくとも格納するバッファーノードリストと、
キーのＩＤから１をプラスしたＩＤを引数にしたメッセージを受信すると、前記メッセージに含まれているＩＤを前記バッファーノードリストに書き込み、バッファーノードリストから、ＩＤに対応するバッファーノードのＩＰアドレスを取得し、バッファーノードのＩＰアドレスを含むメッセージを返信するバッファーノード管理装置と、
前記バッファーノード管理装置に、アクセスが集中したキーのＩＤから１をプラスしたＩＤを引数にしてメッセージを送信し、バッファーノード管理装置から返信されたメッセージに含まれるバッファーノードのＩＰアドレスを取得すると、取得したＩＰアドレスを宛先に指定してバッファーノードに対してＩＤを含む参加メッセージを送信する分散処理ノードとを備えることを特徴とする分散データの管理システム。
【請求項６】
前記バッファーノード管理装置は、前記Ｐ２Ｐネットワークに参加したバッファーノードからバッファーノードの離脱メッセージを受信すると、離脱メッセージを送信したバッファーノードのＩＰアドレスに対応する前記バッファーノードリストのＩＤをクリアすることを特徴とする請求項５に記載の分散データの管理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークに接続されたノードが互いに連携してデータの管理処理を行うピアツーピアネットワーク上での分散データの管理方法および管理システムに関するものである。
【背景技術】
【０００２】
ピアツーピア（ｐｅｅｒ  ｔｏ  ｐｅｅｒ：以下、Ｐ２Ｐと記載）ネットワーク上のオーバーレイネットワーク技術としてＣｈｏｒｄの分散ハッシュテーブル（Ｄｉｓｔｒｉｂｕｔｅｄ  Ｈａｓｈ  Ｔａｂｌｅ；以下、ＤＨＴと記載）技術が提案されている。ＣｈｏｒｄのＤＨＴ技術は、従来の高性能のサーバーとシステム運用技術を要するクライアントサーバー技術やクラスタリング技術に対して、高性能のコンピュータを必要とせず、規模に対する柔軟な拡張性と耐故障性を有することから注目を集めている（非特許文献１、２参照）。
【０００３】
図１は、ＣｈｏｒｄのＤＨＴにより、キー（データ）を管理するノードを割り当てる方法を説明する図である。Ｃｈｏｒｄの方式では、ハッシュ関数によってキーとノードを、始点と終点を結んだハッシュの値の円の空間（ＩＤ空間）にマッピングする。ノードは、前のノードとの間に配置されたキーを担当する。キーの検索時に、ＤＨＴサービスの利用者が、キーをハッシュ関数に入力し、任意のノードにキーのハッシュ値を含んだ検索のリクエストを渡すと、受け取ったノードは、キーを担当するノードを検索し、担当するノードに検索のリクエストを渡す。キーを担当するノードは、検索のリクエストを受け取ると、リクエストに対する検索結果を利用者に返答する。ノードをＰ２Ｐネットワークに参加させるときは、ノードの識別名をハッシュ関数に入力し、出力した値をＩＤ空間にマッピングする。マッピングされたノードが、マッピングした位置に近接したノードにノードが参加したことを通知することにより、キーを担当するノードが参加したノードに移動する。
【０００４】
Ｃｈｏｒｄの方式では、ハッシュ関数によりキーが一様にノードに配分され、効率的に負荷が分散されるので、効率的な検索が可能であり、また、ノードの参加・離脱を自律的に制御できるので、柔軟な機能拡張性、耐故障性を有し、単一故障点（シングルポイントオブフェイラ）を排除することができる。
【非特許文献１】Ｈａｒｉ  Ｂａｌａｋｒｉｓｎａｎ，ｅｔ  ａｌ．“Ｌｏｏｋｉｎｇ  ｕｐ  ＤＡＴＡ  ｉｎ  Ｐ２Ｐ  Ｓｙｓｔｅｍｓ”ＣＯＭＭＵＮＩＣＡＴＩＯＮＳ  ＯＦ  ＴＨＥ  ＡＣＭ  Ｆｅｂｒｕａｒｙ  ２００３／Ｖｏｌ．４６，Ｎｏ．２
【非特許文献２】Ｓｔｏｉｃａ，Ｉ．，ｅｔ  ａｌ．“Ｃｈｏｒｄ：Ａ  Ｓｃａｌａｂｌｅ  Ｐｅｅｒ−ｔｏ−ｐｅｅｒ  Ｌｏｏｋｕｐ  Ｐｒｏｔｏｃｏｌ  ｆｏｒ  Ｉｎｔｅｒｎｅｔ  Ａｐｐｌｉｃａｔｉｏｎｓ．”Ｉｎ  Ｐｒｏｃｅｅｄｉｎｇ  ｏｆ  ＡＣＭ  ＳＩＧＣＯＭＭ，ＳａｎＤｉａｇｏ（Ａｕｇｕｓｔ  ２００１）
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、従来のＣｈｏｒｄの方式では、特定のキーに対してバースト的に大量のリクエストが発生した時には、そのキーを担当するノードに負荷が集中し、性能が低下するという問題がある。これは、ノードを参加させることによって、負荷を分散させようとしても、ハッシュ関数によってノードの位置がＩＤ空間にマッピングされるので、必ずしも負荷が上がったキーを担当するノードの処理が負荷分散するとは限らないためである。
【０００６】
図２は、ノードを参加させても負荷が分散しないことを説明する図である。担当するキーの数はハッシュ関数によって各ノードにバランスよく配置されるが、例えば、キーＫに対応するデータにアクセスが集中すると（１）、ノードＡにアクセスが集中し、負荷が上昇する（２）。この時、ノードＢを参加させても（３）、ハッシュ関数によってノードの位置が決定され、配置されるので、キーＫの担当ノードになるとは限らない。キーＫを担当する位置にハッシュ値が収まる可能性は低く（確率は１／Ｎである。Ｎはノード数）、ノードＡの負荷は下がらない。
【０００７】
そのため、複数のノードにキーの複製を生成することによって、負荷の分散を行っていた。これは、キーに対する書き込みのアクセスが少なく、キーの読み込みのアクセスが多い場合には有効である。例えば、人気のあるファイル（コンテンツ）は一度登録されると、それに対するダウンロードアクセスは大量に発生するが、そのファイルが更新されることは、ダウンロードの数に比べると極めて少ない。しかし、キーに対する書き込みの処理が大量に発生し、また、そのキーに対するデータのダウンロードも大量に発生する場合、キーを複製したのでは、キーの同期をとるための処理が多くなり、効率が下がる。
【０００８】
本発明は、このような問題点に鑑みてなされたものであり、本発明の目的は、特定のキーに対してバースト的に大量のリクエストが発生したときにおいても、特定のノードに負荷が集中しないように負荷を分散させることのできる分散データの管理方法および管理システムを提供することにある。
【課題を解決するための手段】
【０００９】
上記目的を達成するため、本発明は、始点と終点を結んだハッシュ値の円のＩＤ空間を有するＰ２Ｐネットワークにおける分散データの管理方法において、アクセスが集中したキーのＩＤから１をプラスしたＩＤをバッファーノードに割り当て、ＩＤが割り当てられたバッファーノードを前記ＩＤ空間にマッピングさせて前記Ｐ２Ｐネットワークに参加させ、前記バッファーノードに前記キーを担当させることを特徴とする。
【００１０】
また、本発明は、始点と終点を結んだハッシュ値の円のＩＤ空間を有するＰ２Ｐネットワークにおける分散データの管理方法において、Ｐ２Ｐネットワーク上の分散処理ノードが、管理サーバーに、キーのＩＤから１をプラスしたＩＤを引数にしてメッセージを送信すると、管理サーバーが、前記メッセージに含まれているＩＤをバッファーノードリストに書き込み、バッファーノードリストから、ＩＤに対応するバッファーノードのＩＰアドレスを取得し、バッファーノードのＩＰアドレスを含むメッセージを前記分散処理ノードに返信し、前記分散処理ノードが、返信されたメッセージから取得したＩＰアドレスを宛先に指定してバッファーノードに対して参加メッセージを送信すると、前記参加メッセージを受信したバッファーノードが、参加メッセージに含まれているＩＤを用いて前記Ｐ２Ｐネットワークに参加の処理を行い、前記キーを担当することを特徴とする。
【００１１】
前記管理サーバーは、前記バッファーノードからバッファーノードの離脱メッセージを受信すると、離脱メッセージを送信したバッファーノードのＩＰアドレスに対応する前記バッファーノードリストのＩＤをクリアすることが好ましい。
【００１２】
前記分散処理ノードは、キーにアクセスが集中して負荷が上昇したときに、前記管理サーバーに、キーのＩＤから１をプラスしたＩＤを引数にしてメッセージを送信することが好ましい。
【００１３】
また、本発明は、始点と終点を結んだハッシュ値の円のＩＤ空間を有するＰ２Ｐネットワークにおける分散データの管理システムであって、前記ＩＤ空間にマッピングされて前記Ｐ２Ｐネットワークに参加するバッファーノードと、各バッファーノードのＩＰアドレスを少なくとも格納するバッファーノードリストと、キーのＩＤから１をプラスしたＩＤを引数にしたメッセージを受信すると、前記メッセージに含まれているＩＤを前記バッファーノードリストに書き込み、バッファーノードリストから、ＩＤに対応するバッファーノードのＩＰアドレスを取得し、バッファーノードのＩＰアドレスを含むメッセージを返信するバッファーノード管理装置と、前記バッファーノード管理装置に、アクセスが集中したキーのＩＤから１をプラスしたＩＤを引数にしてメッセージを送信し、バッファーノード管理装置から返信されたメッセージに含まれるバッファーノードのＩＰアドレスを取得すると、取得したＩＰアドレスを宛先に指定してバッファーノードに対してＩＤを含む参加メッセージを送信する分散処理ノードとを備えることを特徴とする。
【００１４】
前記バッファーノード管理装置は、前記Ｐ２Ｐネットワークに参加したバッファーノードからバッファーノードの離脱メッセージを受信すると、離脱メッセージを送信したバッファーノードのＩＰアドレスに対応する前記バッファーノードリストのＩＤをクリアすることが好ましい。
【発明の効果】
【００１５】
本発明は、特定のキーに対してバースト的に大量のリクエストが発生したときに、特定のノードに負荷が集中しないように負荷を分散させることができるので、データへの更新が動的に上昇したときにおいても効率的な検索が可能となる。
【発明を実施するための最良の形態】
【００１６】
次に、本発明の実施の形態について図面を参照して説明する。図３および図４は、本発明の分散データの管理方法を説明する図であり、図３は、バッファーノードがＰ２Ｐネットワークに参加するときの処理を説明する図である。キーにバースト的なアクセスが発生すると（１）、分散処理ノードの負荷（ＣＰＵ使用率等）が上昇し（２）、分散処理ノードは、バッファーノードリスト管理サーバーにバッファーノードのアドレスを要求するバッファーノード要求メッセージを送信する（３）。バッファーノード要求メッセージによってバッファーノードリスト管理サーバーから得たバッファーノードのＩＰアドレスとポート番号にキーのＩＤ（ハッシュ値）から１をプラスしたＩＤを割り当てる（４）。分散処理ノードは、ＤＨＴの機能によってバッファーノードリスト管理サーバーから得たバッファーノードを、始点と終点を結んだハッシュ値の円のＩＤ空間にマッピングさせてＰ２Ｐネットワークに参加させる（５）。キーが、参加したノードに移動し、キーの担当が、参加したノードに切り替わる（６）。
【００１７】
図４は、バッファーノードがＰ２Ｐネットワークから離脱するときの処理を説明する図である。キーのアクセスが下がり、負荷が一定量を下回ると（１）、参加したバッファーノードが離脱し（２）、離脱したバッファーノードは、バッファーノードリスト管理サーバーに、離脱したことを通知する離脱メッセージを送信する（３）。離脱メッセージを受信すると、バッファーノードリスト管理サーバーは、バッファーノードリストの離脱メッセージを送信してきたバッファーノードリストのＩＤをクリアする（４）。そしてキーを担当するノードが変更となる（５）。
【００１８】
図５は、バッファーノードリスト管理サーバーの構成図である。バッファーノードリスト管理サーバー１は、バッファーノードリスト１１とバッファーノード管理装置１２を備える。バッファーノードリスト１１は記憶手段であり、各バッファーノードのＩＰアドレスとポート番号とＩＤの値を格納する。バッファーノード管理装置１２は、バッファーノード登録処理部１２１と、バッファーノード削除処理部１２２と、バッファーノードＩＤ登録処理部１２３と、バッファーノードＩＤクリア処理部１２４を備える。
【００１９】
バッファーノード登録処理部１２１は、バッファーノードの登録要求に対して、バッファーノードリスト１１にバッファーノードのＩＰアドレスとポート番号を登録し格納する。バッファーノード削除処理部１２２は、バッファーノードの削除要求に対して、バッファーノードリスト１１から、ＩＤが割り当てられていないレコードを削除する。
【００２０】
バッファーノードＩＤ登録処理部１２３は、分散処理ノードからバッファーノード要求メッセージを受信すると、ＩＤの入っていないバッファーノードリスト１１の中からレコードを選択し、バッファーノード要求メッセージに含まれているＩＤをバッファーノードリスト１１のＩＤの欄に書き込む。次に、バッファーノードリスト１１から、ＩＤに対応するバッファーノードのＩＰアドレスとポート番号を取得し、バッファーノードのＩＰアドレスとポート番号をバッファノード要求メッセージを送信した分散処理ノードに返信する。バッファーノードＩＤクリア処理部１２４は、バッファーノードの離脱メッセージをバッファーノードから受信すると、バッファーノードリスト１１において、送信元のバッファーノードのＩＰアドレスとポート番号に対応するＩＤをクリアする。
【００２１】
図６は、分散処理ノードの構成図である。分散処理ノード２は、マシン処理負荷計測部２１と、キー処理負荷計測部２２と、バッファーノード要求送信部２３と、ＤＨＴ処理部２４とを備える。また、分散処理ノード２は、バッファーノードリスト管理サーバーのＩＰアドレスを保持する。
【００２２】
マシン処理負荷計測部２１は、ノードのＣＰＵ使用率、メモリ使用率等を計測し、一定値を超えるとアラームを送信する。キー処理負荷計測部２２は、分散処理ノードが保持しているキーの処理負荷（ＣＰＵ使用率等）を計測する。
【００２３】
バッファーノード要求送信部２３は、マシン処理負荷計測部２１からアラームが送信されると、キー処理負荷計測部２２からキーの処理負荷を取得し、最も負荷がかかっているキーのＩＤ（ハッシュ値）を取得する。次に、取得したＩＤから１をプラスしたＩＤを引数にして、バッファーノードリスト管理サーバーにバッファーノード要求メッセージを送信し、バッファーノードリスト管理サーバーから返信されたメッセージに含まれるバッファーノードのＩＰアドレスとポート番号を取得すると、ＤＨＴ処理部２４にバッファーノードの参加を要求する。ＤＨＴ処理部２４は、ＤＨＴの機能を有する。
【００２４】
図７は、バッファーノードの構成図である。バッファーノード３は、マシン処理負荷計測部３１と、バッファーノード離脱要求送信部３２と、ＤＨＴ処理部３３とを備える。マシン処理負荷計測部３１は、ノードのＣＰＵ使用率、メモリ使用率等を計測し、処理負荷が一定値を下回ると、ネットワークからの離脱処理を行い、バッファーノード離脱要求送信部３２は、バッファーノードリスト管理サーバーにバッファーノードの離脱メッセージを送信する。ＤＨＴ処理部３３は、ＤＨＴの機能を有する。
【００２５】
図８〜図１５は、本発明の分散データの管理方法を詳細に説明する図である。図中の番号に基づいて説明する。
【００２６】
図８において、キーＫは、ＤＨＴによって、分散処理ノードであるノードＡが担当しているものとする。キーＫに対し、送信ノードからキーがキーＫであるデータに対してバースト的な書き込みが発生する（１）。
【００２７】
図９において、ノードＡのマシン処理負荷計測部が、キーＫへのバースト的な書き込みによって、処理負荷（ＣＰＵ使用率等）が上昇し、一定値を超えると、ノードＡのキー処理負荷計測部は、書き込みが上昇しているキーＫを検出する（２）。次に、ノードＡのバッファーノード要求送信部は、キーＫ（ハッシュ値）から１をプラスしたＩＤを引数にして、バッファーノードリスト管理サーバーにバッファーノード要求メッセージを送信する（３）。
【００２８】
図１０において、バッファーノードリスト管理サーバーが、ノードＡからバッファーノード要求メッセージを受信すると、バッファーノードリスト管理サーバーのバッファーノードＩＤ登録処理部は、バッファーノードリストを検索し、ＩＤの割り当てられていないバッファーノードに対して、ノードＡから受信したバッファーノード要求メッセージに含まれているＩＤをバッファーノードリストに書き込み、書き込んだ行のＩＰアドレスとポート番号を取得し、バッファーノードのＩＰアドレスとポート番号をノードＡに返信する（４）。ノードＡは、返信されてきたＩＰアドレスとポート番号とＩＤを指定してバッファーノードをＤＨＴの機能を利用して参加の処理を行う（５）。
【００２９】
図１１において、ＩＤ空間で前のノードとキーＫとの間に上記ＩＤの値を持つバッファーノードがＰ２Ｐネットワークに参加したことにより、ＤＨＴの機能によりキーＫを担当するノードがバッファーノードに切り替わる。キーＫがバッファーノードに移動するとともに、ＤＨＴの機能によりキーＫを検索すると、キーＫを担当するノードとしてバッファーノードのアドレスが返答される（６）。
【００３０】
図１２において、ＤＨＴの機能により、データの書き込み要求メッセージは新たに参加したバッファーノードに転送される（７）。
【００３１】
図１３において、バッファーノードの負荷が減少し、バッファーノードのマシン処理負荷計測部が負荷の減少を検知する（８）。
【００３２】
図１４において、バッファーノードは、ＤＨＴの機能である離脱処理を行う（９）。離脱処理を行うことによってＤＨＴの機能によりキーがＩＤ空間で右方向で最初に現れるノードＡに移動する（１０）。
【００３３】
図１５において、離脱したバッファーノードのバッファーノード離脱要求送信部は、バッファーノードリスト管理サーバーにバッファーノード離脱メッセージを送信する（１１）。バッファーノードリスト管理サーバーのバッファーノードＩＤクリア処理部１２４は、バッファーノード離脱メッセージをバッファーノードから受信すると、バッファーノードリストにおける、送信元のバッファーノードのＩＰアドレスに対応するＩＤの値をクリアする（１２）。
【００３４】
最後に、上述した実施の形態で用いられるメッセージについて説明する。バッファーノード要求メッセージは、ＤＨＴに参加している分散処理ノードが、バッファノード管理サーバーに送信するメッセージであり、ＩＤを送信し、バッファノードのＩＰアドレスとポート番号を取得する。バッファーノード離脱メッセージは、ＤＨＴに参加しているバッファーノードが、バッファーノード管理サーバーに送信するメッセージである。ＩＤをバッファーノード管理サーバーに送信する。受信したバッファーノード管理サーバーは、受信したメッセージに含まれるＩＤをリストからクリアする。
【図面の簡単な説明】
【００３５】
【図１】Ｃｈｏｒｄの分散ハッシュテーブルにより、キー（データ）を管理するノードを割り当てる方法を説明する図である。
【図２】ノードを参加させても負荷が分散しないことを説明する図である。
【図３】バッファーノードがＰ２Ｐネットワークに参加するときの処理を説明する図である。
【図４】バッファーノードがＰ２Ｐネットワークから離脱するときの処理を説明する図である。
【図５】バッファーノードリスト管理サーバーの構成図である。
【図６】分散処理ノードの構成図である。
【図７】バッファーノードの構成図である。
【図８】本発明の分散データ管理方法を詳細に説明する図である。
【図９】本発明の分散データ管理方法を詳細に説明する図である。
【図１０】本発明の分散データ管理方法を詳細に説明する図である。
【図１１】本発明の分散データ管理方法を詳細に説明する図である。
【図１２】本発明の分散データ管理方法を詳細に説明する図である。
【図１３】本発明の分散データ管理方法を詳細に説明する図である。
【図１４】本発明の分散データ管理方法を詳細に説明する図である。
【図１５】本発明の分散データ管理方法を詳細に説明する図である。
【符号の説明】
【００３６】
１  バッファーノードリスト管理サーバー
２  分散処理ノード
３  バッファーノード
１１  バッファーノードリスト
１２  バッファーノード管理装置
２１，３１  マシン処理負荷計測部
２２  キー処理負荷計測部
２３  バッファーノード要求送信部
２４，３３  ＤＨＴ処理部
３２  バッファーノード離脱要求送信部
１２１  バッファーノード登録処理部
１２２  バッファーノード削除処理部
１２３  バッファーノードＩＤ登録処理部
１２４  バッファーノードＩＤクリア処理部
【図１】
2008005449.tif 000003
【図２】
2008005449.tif 000004
【図３】
2008005449.tif 000005
【図４】
2008005449.tif 000006
【図５】
2008005449.tif 000007
【図６】
2008005449.tif 000008
【図７】
2008005449.tif 000009
【図８】
2008005449.tif 000010
【図９】
2008005449.tif 000011
【図１０】
2008005449.tif 000012
【図１１】
2008005449.tif 000013
【図１２】
2008005449.tif 000014
【図１３】
2008005449.tif 000015
【図１４】
2008005449.tif 000016
【図１５】
2008005449.tif 000017