(57)【要約】【課題】ＤＨＴを用いた方式において、効率的にキャッシュメモリを用いたショートカットパスによる転送を行うことができる分散型データ処理装置を得ること。【解決手段】リダイレクション生成部１１が、ＤＨＴによる転送によって自身が管理するＩＤ宛のデータパケットを受信した場合、データパケットに含まれる送信先のＩＤ、このＩＤが示すノード１のＩＰアドレス、およびデータパケットの優先度を含むリダイレクションメッセージを生成して受信したデータパケットの送信元のノード１に送信し、キャッシュ管理部９は、リダイレクションメッセージに含まれる優先度が予め定められた優先度閾値より優先度が高い場合に、前記リダイレクションメッセージに含まれる送信先のＩＤおよびこのＩＤが示すノード１のＩＰアドレスをキャッシュメモリ１０に登録する。【選択図】        図１
2008172706.tif 000002
【特許請求の範囲】
【請求項１】
分散ハッシュテーブル（ＤＨＴ）を用いてデータパケットを転送する分散型データ処理システムに適用される分散型データ処理装置であって、
ＤＨＴを用いることなく直接送信先の分散型データ処理装置にデータパケットを転送するショートカットパスに関する情報として、送信先となる分散型ノード処理装置のＩＤに対応付けて該ＩＤが示す分散型ノード処理装置のＩＰアドレスが登録されるキャッシュメモリと、
ＤＨＴによる転送によって自身が管理するＩＤ宛のデータパケットを受信した場合、該データパケットに含まれる送信先のＩＤおよび該ＩＤが示す分散型データ処理装置のＩＰアドレスを含むリダイレクションメッセージを生成し、生成したリダイレクションメッセージを受信したデータパケットの送信元の分散型データ処理装置に送信するリダイレクション生成部と、
所定の判定条件を満たしている場合に、受信したリダイレクションメッセージに基づいてショートカットパスに関する情報をキャッシュメモリに登録するキャッシュ管理部と、
前記キャッシュメモリに登録されたショートカットパスに関する情報に基づいて、データパケットの送信先となる分散型データ処理装置に対するショートカットパスが登録されているか否かを判定して、ショートカットパスが登録されている場合にはショートカットパスを用いてデータパケットを送信し、ショートカットパスが登録されていない場合には前記ＤＨＴによってデータパケットを送信するＤＨＴ基本処理部と、
を備えることを特徴とする分散型データ処理装置。
【請求項２】
前記所定の判定条件にデータパケットの優先度および／または自身と送信先の分散型データ処理装置との距離を用いること、
を特徴とする請求項１に記載の分散型データ処理装置。
【請求項３】
前記リダイレクション生成部は、
前記リダイレクションメッセージにデータパケットの優先度を含め、
前記キャッシュ管理部は、
前記リダイレクションメッセージに含まれる優先度が予め定められた優先度閾値より優先度が高い場合に、前記リダイレクションメッセージに含まれる送信先のＩＤおよび該ＩＤが示す分散型データ処理装置のＩＰアドレスをキャッシュメモリに登録すること、
を特徴とする請求項２に記載の分散型データ処理装置。
【請求項４】
前記リダイレクション生成部は、
前記リダイレクションメッセージにデータパケットの優先度を含め、
前記キャッシュ管理部は、
前記キャッシュメモリに登録されているショートカットパスに関する情報の数が予め定められたエントリー数閾値以下の場合には前記リダイレクションメッセージに含まれる優先度に依存することなく前記リダイレクションメッセージに含まれる送信先のＩＤおよび該ＩＤが示す分散型データ処理装置のＩＰアドレスをキャッシュメモリに登録し、前記キャッシュメモリに登録されているショートカットパスに関する情報の数が予め定められたエントリー数閾値より多い場合には、前記リダイレクションメッセージに含まれる優先度が予め定められた優先度閾値より優先度が高い場合のみ、前記リダイレクションメッセージに含まれる送信先のＩＤおよび該ＩＤが示す分散型データ処理装置のＩＰアドレスをキャッシュメモリに登録すること、
を特徴とする請求項２に記載の分散型データ処理装置。
【請求項５】
前記キャッシュメモリには、前記ショートカットパスに関する情報として、送信先となる分散型ノード処理装置のＩＤに対応付けて該ＩＤが示す分散型ノード処理装置のＩＰアドレスおよび優先度が登録され、
前記リダイレクション生成部は、
前記リダイレクションメッセージにデータパケットの優先度を含め、
前記キャッシュ管理部は、
前記キャッシュメモリの登録領域に空きがある場合には前記リダイレクションメッセージに含まれる優先度に依存することなく前記リダイレクションメッセージに含まれる送信先のＩＤおよび該ＩＤが示す分散型データ処理装置のＩＰアドレスをキャッシュメモリに登録し、前記キャッシュメモリの登録領域に空きがない場合には、前記キャッシュメモリに登録された優先度の中で前記リダイレクションメッセージに含まれる優先度よりも優先度の低いものを選択し、選択した優先度に対応付けられたＩＤおよびＩＰアドレスを前記キャッシュメモリから削除して前記リダイレクションメッセージに含まれる送信先のＩＤおよび該ＩＤが示す分散型データ処理装置のＩＰアドレスをキャッシュメモリに登録すること、
を特徴とする請求項２に記載の分散型データ処理装置。
【請求項６】
前記キャッシュ管理部は、
前記リダイレクションメッセージに含まれる送信先のＩＤと自装置のＩＤとから装置間の距離を算出し、算出した距離が予め定められた距離閾値より遠い場合に、前記リダイレクションメッセージに含まれる送信先のＩＤおよび該ＩＤが示す分散型データ処理装置のＩＰアドレスをキャッシュメモリに登録すること、
を特徴とする請求項２に記載の分散型データ処理装置。
【請求項７】
前記キャッシュ管理部は、
前記リダイレクションメッセージに含まれる送信先のＩＤと自装置のＩＤとから装置間の距離を算出し、前記キャッシュメモリに登録されているショートカットパスに関する情報の数が予め定められたエントリー数閾値以下の場合には算出した距離に依存することなく前記リダイレクションメッセージに含まれる送信先のＩＤおよび該ＩＤが示す分散型データ処理装置のＩＰアドレスをキャッシュメモリに登録し、前記キャッシュメモリに登録されているショートカットパスに関する情報の数が予め定められたエントリー数閾値より多い場合には、算出した距離が予め定められた距離閾値より遠い場合のみ、前記リダイレクションメッセージに含まれる送信先のＩＤおよび該ＩＤが示す分散型データ処理装置のＩＰアドレスをキャッシュメモリに登録すること、
を特徴とする請求項２に記載の分散型データ処理装置。
【請求項８】
前記キャッシュメモリには、前記ショートカットパスに関する情報として、送信先となる分散型ノード処理装置のＩＤに対応付けて該ＩＤが示す分散型ノード処理装置のＩＰアドレスおよび距離が登録され、
前記キャッシュ管理部は、
前記リダイレクションメッセージに含まれる送信先のＩＤと自装置のＩＤとから装置間の距離を算出し、前記キャッシュメモリの登録領域に空きがある場合には算出した距離に依存することなく、前記リダイレクションメッセージに含まれる送信先のＩＤおよび該ＩＤが示す分散型データ処理装置のＩＰアドレスと算出した距離とをキャッシュメモリに登録し、前記キャッシュメモリの登録領域に空きがない場合には、前記キャッシュメモリに登録された距離の中で算出した距離よりも近いものを選択し、選択した距離に対応付けられたＩＤおよびＩＰアドレスを前記キャッシュメモリから削除して前記リダイレクションメッセージに含まれる送信先のＩＤおよび該ＩＤが示す分散型データ処理装置のＩＰアドレスと算出した距離とをキャッシュメモリに登録すること、
を特徴とする請求項２に記載の分散型データ処理装置。
【請求項９】
自身が管理するＩＤが変更された場合に送信先のＩＤと該ＩＤを管理する分散型データ処理装置のＩＰアドレスを含むキャッシュ更新メッセージを生成し、生成したキャッシュ更新メッセージを前記分散型データ処理システムの全ての分散型データ処理装置に送信するキャッシュ更新要求部、
をさらに備え、
前記キャッシュ管理部は、
受信したキャッシュ更新メッセージに含まれるＩＤが前記キャッシュメモリに登録されている場合には、当該ＩＤに対応付けられているＩＰアドレスを前記キャッシュ更新要求メッセージに含まれるＩＰアドレスに変更すること、
を特徴とする請求項１〜８のいずれか一つに記載の分散型データ処理装置。
【請求項１０】
自身が管理するＩＤを他の分散型データ処理装置に移行した後に移行したＩＤ宛のデータパケットをショートカットパスによる転送で受信した場合、受信したデータパケットをＩＤを移行した分散型データ処理装置に直接送信するショートカットパケット転送部、
をさらに備えることを特徴とする請求項１〜９のいずれか一つに記載の分散型データ処理装置。
【請求項１１】
前記ショートカットパス転送部は、
自身が管理するＩＤを他の分散型データ処理装置に移行してから所定の時間内に移行したＩＤ宛のデータパケットをショートカットパスによる転送で受信した場合のみ受信したデータパケットを送信すること、
を特徴とする請求項１０に記載の分散型データ処理装置。
【請求項１２】
受信したデータパケットを並べ替えるパケット並べ替え部、
をさらに備え、
前記ＤＨＴ基本処理部は、
前記データパケットを送信する際にデータパケットの順番を示す情報をデータパケット内に含ませ、
前記パケット並べ替え部は、
前記データパケットの順番を示す情報に基づいてパケットを並べ替えること、
を特徴とする請求項１〜１１のいずれか一つに記載の分散型データ処理装置。
【請求項１３】
ＤＨＴによる転送からショートカットパスによる転送にデータパケットの転送が変更される際に、ショートカットパスによる転送のデータパケットを予め定められた時間だけ遅延させて送信する遅延挿入部、
をさらに備えることを特徴とする請求項１〜１１のいずれか一つに記載の分散型データ処理装置。
【請求項１４】
分散ハッシュテーブル（ＤＨＴ）を用いてデータパケットを転送する分散型データ処理システムに適用される分散型データ処理装置であって、
ＤＨＴを用いることなく直接送信先の分散型データ処理装置にデータパケットを転送するショートカットパスに関する情報として、送信先となる分散型ノード処理装置のＩＤに対応付けて該ＩＤが示す分散型ノード処理装置のＩＰアドレスが登録されるキャッシュメモリと、
ＤＨＴによる転送によって自身が管理するＩＤ宛のデータパケットを受信した場合、該データパケットに含まれる送信元のＩＤおよび該ＩＤが示す分散型データ処理装置のＩＰアドレスを前記キャッシュメモリに登録するショートカットパス学習部と、
前記キャッシュメモリに登録されたショートカットパスに関する情報に基づいて、データパケットの送信先となる分散型データ処理装置に対するショートカットパスが登録されているか否かを判定して、ショートカットパスが登録されている場合にはショートカットパスを用いてデータパケットを送信し、ショートカットパスが登録されていない場合には前記ＤＨＴによってデータパケットを送信するＤＨＴ基本処理部と、
を備えることを特徴とする分散型データ処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＤＨＴ（Distributed  Hash  Table）を用いた分散型データ処理装置に関するものであり、特に、高速にデータを転送するためＤＨＴを用いてデータを転送した後に、送信先装置が送信元装置に対して自装置のＩＰアドレスを通知し、送信元装置が通知されたＩＰアドレスをキャッシュに登録してショートカットパスによる転送によってデータを転送する分散型データ処理装置に関するものである。
【背景技術】
【０００２】
Ｐ２Ｐ（Peer to Peer）技術の１つである分散ハッシュテーブル（ＤＨＴ：Distributed  Hash  Table）を用いた従来技術として、たとえば、非特許文献１および非特許文献２がある。
【０００３】
非特許文献１には、ＤＨＴの一種であるＣｈｏｒｄ方式に関する技術が開示されている。具体的には、非特許文献１に記載されたＣｈｏｒｄ方式では、ＩＤ空間を１次元の円周、すなわちＩＤ＝０を起点として、ＩＤ＝１，２，…，２m-1（ｍはＩＤのビット数）の順に、２mで再び起点に戻る循環構造とし、ノードとデータのキーの双方がハッシュ関数によって同一のＩＤ空間にマッピングする。ＩＤ空間上の２点間の距離は、２つのＩＤ値の差（絶対値）であり、ＩＤ値ｋを有するキーは、円周上でｋの時計回りで前方の最も近い位置のノードに保持される。このようなネットワークでは、各々のノードが少なくとも自身のＳＵＣＣＥＳＳＯＲノード（時計回りで自ノードのつぎのノード）へのリンクを保持していれば、バケツリレー式にデータの転送を行うことによって任意のノード間においてデータが到達する。しかしながら、この場合、ノード数Ｎに対してＯ（Ｎ）回の転送回数が必要となり、スケーラブルではなくなってしまう。そのため、各ノードにはＳＵＣＣＥＳＳＯＲノードとは別にいくつかのノードへのリンクを有する。リンクする相手は自身から見て円周の１／２k（１≦ｋ≦ｍ）周分前方にあるノード、すなわち自身のＩＤ値ｎに対してｓｕｃｃｅｓｓｏｒノード（ｎ＋２m-k）のＩＤを有するノード群とし、このノード群をｆｉｎｇｅｒと称する。このｆｉｎｇｅｒの利用によって、非特許文献1に記載の従来技術では、１転送ごとに探索空間を半減させることを可能としており、転送回数はＯ（ｌｏｇＮ）回としている。
【０００４】
このように非特許文献１に記載の従来技術では、ｆｉｎｇｅｒを利用することで、転送回数をＯ（ｌｏｇＮ）回としているが、ノード数が非常に多くなると、この転送回数も無視できなくなる。非特許文献２に記載の従来技術では、非特許文献１に記載されたＣｈｏｒｄを改善したＩ３システムに関する技術が開示されている。この非特許文献２に記載のＩ３システムでは、ＤＨＴを使用してデータを宛先のノードに転送した際に、送信先のノードが送信元のノードに対して自ノードのアドレスを通知し、送信元のノードが通知されたアドレスを保持し、以後の送信先のノードに対するデータはＤＨＴを使用するのではなく保持したアドレスを用いたショートカットパスで直接転送するようにしている。
【０００５】
【非特許文献１】I. Stoica, R. Morris, D. Karger, M. Frans Kaashoek, H. Balakrishnan, "Chord: A scalable peer-to-peer lookup service for Internet applications," ACM SIGCOMM (2001), pp. 149-160.
【非特許文献２】Ion Stoica, Daniel Adkins, Shelley Zhuang, Scott Shenker, Sonesh Surana, "Internet Indirection Infrastructure," Proceedings of ACM SIGCOMM, August, 2002
【発明の開示】
【発明が解決しようとする課題】
【０００６】
上記非特許文献２に記載の従来技術では、ＤＨＴを使用してデータを宛先のノードに転送した際に、送信先のノードが送信元のノードに対して自ノードのアドレスを通知し、送信元のノードが通知されたアドレスをキャッシュメモリに保持し、以後の送信先のノードに対するデータはＤＨＴを使用するのではなくキャッシュメモリに保持したアドレスを用いたショートカットパスで直接転送するようにしているため、上記非特許文献１と比較して、２度目からのデータ転送の時間は短縮することができる。
【０００７】
しかしながら、キャッシュメモリの記憶容量には限りがあり、保持することができるエントリー（送信先のノードのＩＤおよびアドレスの組）の数には限りがある。そのため、数多くの宛先との通信が行われる状況においては、エントリーが増加して最終的にキャッシュメモリに保持することができなくなる。上記非特許文献２に記載の従来技術では、通信の特性を考慮せずにキャッシュメモリにエントリーを保持するため、リアルタイム性を要求される遅延に厳しい通信がＤＨＴによって転送され、リアルタイム性を要求されない遅延による影響を受けにくい通信がショートカットパスによって転送されることがあり、効率的にキャッシュメモリを用いたショートカットパスによる転送を行うことができないという問題があった。
【０００８】
また、上記非特許文献２に記載の従来技術では、通常のＤＨＴによる転送からショートカットパスによる転送に移行する際に、パケットの順序逆転が発生する可能性がある。トランスポート層にＴＣＰ（Transmission  Control  Protocol）を使用している場合にパケットの順序逆転が発生すると輻輳回避の制御が働いてスループットが低下する可能性があるという問題もあった。
【０００９】
さらに、上記非特許文献２に記載の従来技術では、送信先のノードが送信元のノードに対して自ノードのアドレスを通知し、通知を受けた送信元のノードがキャッシュメモリにエントリーを保持するようにしているため、アドレスを通知するメッセージによってネットワークの帯域が消費されてしまい、スループットが低下してしまうという問題もあった。
【００１０】
本発明は、上記に鑑みてなされたものであって、ＤＨＴを用いた方式において、効率的にキャッシュメモリを用いたショートカットパスによる転送を行うことができる分散型データ処理装置を得ることを第１の目的とする。
【００１１】
本発明の第２の目的は、ＤＨＴを用いた方式において、ＤＨＴによる転送からショートカットパスによる転送への切替時に生じるパケットの順序逆転によって生じるスループットの低下を防止することができる分散型データ処理装置を得ることである。
【００１２】
本発明の第３の目的は、ＤＨＴを用いた方式において、ショートカットパスの設定によるスループットの低下を防止することができる分散型データ処理装置を得ることである。
【課題を解決するための手段】
【００１３】
上述した課題を解決し、目的を達成するために、本発明は、分散ハッシュテーブル（ＤＨＴ）を用いてデータパケットを転送する分散型データ処理システムに適用される分散型データ処理装置であって、ＤＨＴを用いることなく直接送信先の分散型データ処理装置にデータパケットを転送するショートカットパスに関する情報として、送信先となる分散型ノード処理装置のＩＤに対応付けて該ＩＤが示す分散型ノード処理装置のＩＰアドレスが登録されるキャッシュメモリと、ＤＨＴによる転送によって自身が管理するＩＤ宛のデータパケットを受信した場合、該データパケットに含まれる送信先のＩＤおよび該ＩＤが示す分散型データ処理装置のＩＰアドレスを含むリダイレクションメッセージを生成し、生成したリダイレクションメッセージを受信したデータパケットの送信元の分散型データ処理装置に送信するリダイレクション生成部と、所定の判定条件を満たしている場合に、受信したリダイレクションメッセージに基づいてショートカットパスに関する情報をキャッシュメモリに登録するキャッシュ管理部と、前記キャッシュメモリに登録されたショートカットパスに関する情報に基づいて、データパケットの送信先となる分散型データ処理装置に対するショートカットパスが登録されているか否かを判定して、ショートカットパスが登録されている場合にはショートカットパスを用いてデータパケットを送信し、ショートカットパスが登録されていない場合には前記ＤＨＴによってデータパケットを送信するＤＨＴ基本処理部と、を備えることを特徴とする。
【発明の効果】
【００１４】
この発明によれば、ＤＨＴを用いた転送によってデータパケットを受信した場合に、データパケットの送信元にＤＨＴを用いた転送ではなく、直接送信先にデータパケットを送信するショートカットパスを設定するためのリダイレクションメッセージを送信するとともに、送信先からリダイレクションメッセージを受信した場合、所定の判定条件を満たした場合のみショートカットパスに関する情報をキャッシュメモリに登録するようにしているため、効率的にキャッシュメモリを用いてショートカットパスによる転送を行うことができる分散型データ処理装置を得ることができるという効果を奏する。
【発明を実施するための最良の形態】
【００１５】
以下に、本発明にかかる分散型データ処理装置の実施の形態を図面に基づいて詳細に説明する。なお、この実施の形態によりこの発明が限定されるものではない。
【００１６】
実施の形態１．
図１〜図７を用いてこの発明の実施の形態１を説明する。本発明にかかる分散型データ処理装置を用いた分散型データ処理システムは、ＤＨＴ（Distributed  Hash  Table）を用いたＣｈｏｒｄ方式のネットワークシステムであり、複数の分散型データ処理装置（ノード）がネットワークを介して接続され、ＩＤ空間を１次元の円周、すなわちＩＤ＝０を起点として、ＩＤ＝１，２，…，２m-1（ｍはＩＤのビット数）の順に、２mで再び起点に戻る循環構造を構成し、ノードとデータのキーの双方がハッシュ関数によって同一のＩＤ空間にマッピングされている。
【００１７】
図１は、本発明にかかる分散型データ処理装置であるノード１の実施の形態１の構成を示すブロック図である。図１において、ノード１は、トランスポート層やアプリケーション層などのＤＨＴより上位のレイヤの処理を行う上位レイヤ処理部４と、ＤＨＴに関する処理を行うＤＨＴ処理部３と、ＩＰ（Internet  Protocol）層およびＩＰ層以下のレイヤに関する処理を行ないネットワーク２０に接続する下位レイヤ処理部２とを備えている。
【００１８】
ＤＨＴ処理部３は、ローカル管理データ６、ＳＵＣＣＥＳＳＯＲリスト７、ｆｉｎｇｅｒテーブル８、キャッシュメモリ１０、ＤＨＴ基本処理部５、優先度判定部１３とキャッシュ操作部１２とを有するキャッシュ管理部９、およびリダイレクション生成部１１を備えている。
【００１９】
ローカル管理データ６には、自身が管理するキーやデータなど登録される。ＳＵＣＣＥＳＳＯＲリスト７には、分散型データ処理システムにおけるｓｕｃｃｅｓｓｏｒノード（時計回りで自身のつぎのノード）およびｐｒｅｄｅｃｅｓｓｏｒノード（時計回りで自身の１つ前のノード）を含む、予め定められた数の自身と連続したノードのＩＤが登録される。ｆｉｎｇｅｒテーブル８には、自身から見て円周の１／２k（１≦ｋ≦ｍ）周分前方にあるノード、すなわち自身のＩＤの値ｎに対してｓｕｃｃｅｓｓｏｒノード（ｎ＋２m-k）のＩＤを有するノード群のＩＤの値および宛先ＩＰアドレスを組としたエントリーが登録される。キャッシュメモリ１０には、ショートカットパスに関する情報が登録される。ショートカットパスに関する情報は、具体的には、データパケットの送信先となるノード１のＩＤとこのＩＤが示すノード１のＩＰアドレス、すなわち宛先ＩＤと宛先ＩＰアドレスとを組としたショートカットパスのエントリーである。
【００２０】
ＤＨＴ基本処理部５は、ローカル管理データ６、ＳＵＣＣＥＳＳＯＲリスト７、およびｆｉｎｇｅｒテーブル８に登録された各種情報に基づいてＤＨＴに関する処理を行う。リダイレクション生成部１１は、受信したデータパケットがＤＨＴによって転送されたデータパケットであるか否かを判定し、ＤＨＴによって転送されたデータパケットである場合にはショートカットパスを設定するためのリダイレクションメッセージを生成する。リダイレクションメッセージは、受信したデータパケットに含まれる送信先のＩＤと、このＩＤが示すノード１のＩＰアドレス、および受信したデータパケットのＱｏＳ（quality  of  Service）による優先度が含まれる。リダイレクション生成部１１は、下位レイヤ処理部２を介して、生成したリダイレクションメッセージを受信したパケットの送信元のノードに送信する。
【００２１】
キャッシュ管理部９は、キャッシュメモリ１０を管理する。優先度判定部１３は、リダイレクションメッセージに含まれる優先度に基づいてショートカットパスのエントリーをキャッシュメモリ１０に登録するか否かを判定する優先度判定処理を行なう。
【００２２】
キャッシュ操作部１２は、優先度判定部１３の判定結果に基づいてショートカットパスのエントリーをキャッシュメモリ１０に登録する。また、キャッシュ操作部１２は、キャッシュメモリ１０に登録されたショートカットパスのエントリーの使用状況を監視し、監視結果に基づいてショートカットパスのエントリーをキャッシュメモリ１０から削除する。
【００２３】
つぎに、図２〜図７を参照して、この発明における分散型データ処理装置の動作および分散型データ処理システムの動作を説明する。まず、図２のショートカットパスのイメージを示す図を参照して、分散型処理データシステムのショートカットパスの設定の動作を説明する。図２において、ノード１ａ〜１ｆは、先の図１に示したノード１と同じ構成を備えており、ノード１ａがノード１ｄにデータパケットを送信する場合を示している。また、図２においては、通常のＤＨＴによるパケットの転送は、ノード１ａ、ノード１ｂ、ノード１ｃ、ノード１ｄ、ノード１ｅ、ノード１ｆ、ノード１ａの順に行われ、この転送順が時計回りとなる。
【００２４】
最初は、送信元であるノード１ａには送信先であるノード１ｄへのショートカットパスが設定されていない。そのため、ノード１ａは通常のＤＨＴによって、通常のＤＨＴ転送であることを示す情報を含むパケットを転送する。すなわち、送信元ノード１ａはノード１ｄ宛のパケットをノード１ｂに送信し、ノード１ｂはノード１ａから受信したノード１ｄ宛のパケットをノード１ｃに送信し、ノード１ｃはノード１ｂから受信したノード１ｄ宛のパケットをノード１ｄに送信する。
【００２５】
ノード１ｄは、受信したパケットが自ノード宛であることおよび通常のＤＨＴによって転送されたことを認識する。ノード１ｄは、パケットの送信元であるノード１ａがつぎに自ノード宛のパケットを転送する際にＤＨＴではなくショートカットパスを用いることが可能となるように、ノード１ａに対してリダイレクションメッセージを送信する。リダイレクションメッセージの送信は、直接ノード１ａ宛に送信してもよいし、ＤＨＴによってノード１ｅ、１ｆを介してノード１ａに送信してもよい。
【００２６】
上述したようにリダイレクションメッセージには、送信先のＩＤと、このＩＤが示すノードのＩＰアドレス、および受信したパケットのＱｏＳによる優先度が含まれている。この場合は、ノード１ｄのＩＤ、ノード１ｄのＩＰアドレス、および優先度が含まれている。ノード１ａは、これらの情報からノード１ｄに対するショートカットパスを設定し、以後、ＤＨＴを用いることなく設定したショートカットパスによってノード１ｄに対するパケットを転送する。すなわち、ノード１ｂ、１ｃを介することなく、直接ノード１ｄにパケットを転送する。
【００２７】
つぎに、図３〜図７のフローチャートを参照して、この発明における分散型データ処理装置の動作を説明する。まず、図３のフローチャートを参照して、この実施の形態１のノード１の送信処理の動作について説明する。上位レイヤ処理部４からデータ転送要求を受けると（ステップＳ１００）、ＤＨＴ基本処理部５は、データの宛先が自ノードが管理するＩＤか否かを判定する（ステップＳ１０１）。具体的には、ＤＨＴ基本処理部５は、ローカル管理データ６に登録されているＩＤの中に、データの宛先のＩＤと一致するＩＤが存在するか否かを検索する。ＤＨＴ基本処理部５は、検索の結果、ローカル管理データ６に登録されているＩＤの中にデータの宛先のＩＤと一致するＩＤが存在する場合にはデータの宛先は自ノードが管理するＩＤであると判定し、ローカル管理データ６に登録されているＩＤの中にデータの宛先のＩＤと一致するＩＤが存在しない場合にはデータの宛先は自ノードが管理するＩＤではないと判定する。データの宛先が自ノードが管理するＩＤであると判定した場合（ステップＳ１０１，Ｙｅｓ）、ＤＨＴ基本処理部５は、上位レイヤ処理部４の該当するプロセスにデータを送信する（ステップＳ１０２）。
【００２８】
データの宛先が自ノードが管理するＩＤではないと判定した場合（ステップＳ１０１，Ｎｏ）、ＤＨＴ基本処理部５は、キャッシュ操作部１２に処理を引き渡す。キャッシュ操作部１２は、キャッシュメモリ１０にデータの宛先が登録されているか否かを判定する（ステップＳ１０３）。キャッシュメモリ１０には、ＩＤおよびＩＰアドレスを組としたショートカットパスのエントリーが登録されている。
【００２９】
キャッシュメモリ１０に登録されたエントリーのＩＤの中にデータの宛先のＩＤが存在する場合（ステップＳ１０３，Ｙｅｓ）、キャッシュ操作部１２は、当該ＩＤに対応付けてキャッシュメモリ１０に登録されているＩＰアドレスを読み出してＤＨＴ基本処理部５に通知する。ＤＨＴ基本処理部５は、通知されたＩＰアドレス宛、すなわちデータの宛先ＩＤに対応付けてキャッシュメモリ１０に登録されているＩＰアドレスにデータを送信する（ステップＳ１０４）。具体的には、ＤＨＴ基本処理部５は、キャッシュ操作部１２から通知されたＩＰアドレスを用いてデータを転送するデータパケットを生成する。データパケットを生成する際に、ＤＨＴ基本処理部５は、たとえばデータパケット内の予め定められた領域のショートカットパスフラグをＯＮにして、ショートカットパスを用いてデータを転送することを示す情報をデータパケットに含ませる。ＤＨＴ基本処理部５は、生成したデータパケットを下位レイヤ処理部２を介してネットワーク２０に送信する。
【００３０】
一方、キャッシュメモリ１０に登録されたエントリーのＩＤの中にデータの宛先のＩＤが存在しない場合（ステップＳ１０３，Ｎｏ）、キャッシュ操作部１２は、キャッシュメモリ１０に登録が無い旨をＤＨＴ基本処理部５に通知する。ＤＨＴ基本処理部５は、ｆｉｎｇｅｒテーブル８を検索して宛先となるＩＰアドレスを選択し、選択したＩＰアドレスにデータパケットを送信する（ステップＳ１０５）。具体的には、ｆｉｎｇｅｒテーブル８には、自身から見て円周の１／２k（１≦ｋ≦ｍ）周分前方にあるノード、すなわち自身のＩＤ値ｎに対してｓｕｃｃｅｓｓｏｒノード（ｎ＋２m-k）のＩＤを有するノード群のＩＤおよび宛先のＩＰアドレスを組としたエントリーが登録されている。ＤＨＴ基本処理部５は、ｆｉｎｇｅｒテーブル８に登録されているＩＤの中からデータの宛先のＩＤと一致するＩＤを検索し、検索したＩＤ値に対応付けられた宛先アドレスを選択する。一致するＩＤが無い場合はデータの宛先ＩＤを超えない最大のＩＤのエントリーを選択する。ＤＨＴ基本処理部５は、選択した宛先アドレスを用いてデータを転送するデータパケットを生成する。データパケットを生成する際に、ショートカットパスフラグをＯＦＦにして、ＤＨＴを用いてデータ転送をすることを示す情報をデータパケットに含ませる。ＤＨＴ基本処理部５は、生成したデータパケットを下位レイヤ処理部２を介してネットワーク２０に送信する。
【００３１】
つぎに、図４のフローチャートを参照して、この発明における分散型データ処理装置であるノード１の受信処理の動作について説明する。下位レイヤ処理部２を介してネットワーク２０からパケットを受信すると（ステップＳ２００）、ＤＨＴ基本処理部５は、受信したパケットに含まれるデータの宛先が自ノードであるか否かを判定する（ステップＳ２０１）。受信したパケットに含まれるデータの宛先が自ノードではない場合（ステップＳ２０１，Ｎｏ）、ＤＨＴ基本処理部５は、ｆｉｎｇｅｒテーブル８を検索して宛先アドレスを選択し、選択した宛先アドレスにデータを送信する（ステップＳ２０２）。
【００３２】
受信したパケットに含まれるデータの宛先ＩＤが自身が管理するＩＤである場合（ステップＳ２０１，Ｙｅｓ）、ＤＨＴ基本処理部５は、受信したデータパケットを上位レイヤ処理部４に出力するとともに、受信したデータパケットがリダイレクションメッセージであるか否かを判定する（ステップＳ２０３）。受信したデータパケットがリダイレクションメッセージではない場合（ステップＳ２０３，Ｎｏ）、すなわち受信したデータパケットがデータ転送のデータパケットである場合、ＤＨＴ基本処理部５は、ローカル管理データ６に基づいてデータ処理を行なう。
【００３３】
また、ＤＨＴ基本処理部５は、データパケットがショートカットパスを用いて転送されたか否かを判定する（ステップＳ２０４）。先の図３のフローチャートを参照して説明した送信処理の動作において、送信元ノードは、ショートカットパスを用いて転送する場合にはショートカットパスフラグをＯＮにし、ＤＨＴを用いて転送する場合にはショートカットパスフラグをＯＦＦにしている。ＤＨＴ基本処理部５は、パケット内のショートカットパスフラグによって、当該パケットがショートカットパスを用いて転送されたか否かを判定する。データパケットがショートカットパスを用いて転送された場合、すなわちショートカットパスフラグがＯＮの場合、ＤＨＴ基本処理部５は、既に送信元ノードのキャッシュメモリ１０には自ノードとのショートカットパスが登録されていると認識して処理を終了する。
【００３４】
データパケットがショートカットパスを用いて転送されていない場合（ＤＨＴによる転送によって転送された場合）、すなわちショートカットパスフラグがＯＦＦの場合、ＤＨＴ基本処理部５は、送信元ノードのキャッシュメモリ１０には自ノードとのショートカットパスが登録されていないと認識する。ＤＨＴ基本処理部５は、受信したデータパケットの送信元ノードのＩＰアドレスと、受信したデータパケットに含まれる送信先のＩＤと、このＩＤが示すノード１のＩＰアドレス、および受信したデータパケットのＱｏＳ（quality  of  Service）による優先度を抽出してリダイレクション生成部１１に通知する。リダイレクション生成部１１は、通知された送信先のＩＤと、このＩＤが示すノード１のＩＰアドレス、および優先度を含むリダイレクションメッセージを生成する。リダイレクション生成部１１は、生成したリダイレクションメッセージを下位レイヤ処理部２を介してデータの送信元ノードに送信する（ステップＳ２０５）。
【００３５】
一方、受信したデータパケットがリダイレクションメッセージである場合（ステップＳ２０３，Ｙｅｓ）、ＤＨＴ基本処理部５は、リダイレクションメッセージをキャッシュ管理部９に通知し、キャッシュ管理部９は、リダイレクションメッセージに基づいてキャッシュメモリ１０にショートカットパスのエントリーを登録する登録処理を実行する（ステップＳ２０６）。
【００３６】
図５〜図７のフローチャートを参照して、登録処理の詳細な動作について説明する。登録処理は、リダイレクションメッセージに含まれる優先度に基づいて登録を行なうか否かが判定され、登録を行うと判定された場合のみショートカットパスのエントリーをキャッシュメモリ１０に登録をする。登録を行うか否かの判定条件は、様々なバリエーションがあるが、ここでは、以下の３つの条件について説明する。
（条件１）リダイレクションメッセージに含まれる優先度が所定の優先度より高い場合のみ登録する。
（条件２）キャッシュメモリ１０に登録されたエントリー数が所定のエントリー数以下の場合には優先度に依存することなく登録し、登録されたエントリー数が所定のエントリー数を越えた場合にはリダイレクションメッセージに含まれる優先度が所定の優先度より高いもののみを登録する。
（条件３）キャッシュメモリ１０に空きがある場合には無条件に登録を行い、キャッシュメモリ１０に空きが無い場合には登録されたエントリーの中からリダイレクションメッセージに含まれる優先度より低いエントリーを削除して登録する。
【００３７】
まず、図５のフローチャートを参照して、上記（条件１）の判定による登録処理の動作を説明する。優先度判定部１３は、リダイレクションメッセージに含まれる優先度を抽出し、抽出した優先度（対象パス優先度）と予め定められた優先度閾値とを比較する。対象パス優先度が優先度閾値より大きい場合（ステップＳ３００，Ｙｅｓ）、優先度判定部１３は対象パスを登録する旨をキャッシュ操作部１２に通知する。優先度判定部１３からの通知を受けると、キャッシュ操作部１２は、リダイレクションメッセージに含まれる送信先のＩＤと、このＩＤが示すノード１のＩＰアドレスとを抽出する。キャッシュ操作部１２は、抽出した送信先のＩＤと、このＩＤが示すノード１のＩＰアドレスとを組としたショートカットパスのエントリー、すなわちリダイレクションメッセージの内容をキャッシュメモリ１０に登録する（ステップＳ３０１）。対象パス優先度が優先度閾値以下の場合（ステップＳ３００，Ｎｏ）、優先度判定部１３は、リダイレクションメッセージを廃棄して処理を終了する。すなわち、優先度判定部１３はキャッシュ操作部１２に通知を行わないため、リダイレクションメッセージを受信してもショートカットパスのエントリーはキャッシュメモリ１０に登録されることはない。
【００３８】
つぎに、図６のフローチャートを参照して、上記（条件２）の判定による登録処理の動作を説明する。なお、優先度判定部１３は、キャッシュメモリ１０に登録されているエントリー数を記憶しているものとする。
【００３９】
優先度判定部１３は、登録エントリー数と予め定められたエントリー数閾値とを比較する。登録エントリー数がエントリー数閾値を越えている場合（ステップＳ４００，Ｙｅｓ）、優先度判定部１３は、リダイレクションメッセージに含まれる優先度を抽出し、抽出した優先度（対象パス優先度）と予め定められた優先度閾値とを比較する。対象パス優先度が優先度閾値より大きい場合（ステップＳ４０１，Ｙｅｓ）、または登録エントリー数がエントリー閾値以下の場合（ステップＳ４００，Ｎｏ）、優先度判定部１３は対象パスを登録する旨をキャッシュ操作部１２に通知するとともに、登録エントリー数をインクリメントしてカウントアップする。
【００４０】
優先度判定部１３からの通知を受けると、キャッシュ操作部１２は、リダイレクションメッセージに含まれる送信先のＩＤと、このＩＤが示すノード１のＩＰアドレスとを抽出する。キャッシュ操作部１２は、抽出した送信先のＩＤと、このＩＤが示すノード１のＩＰアドレスとを組としたエントリー、すなわちリダイレクションメッセージの内容をキャッシュメモリ１０に登録する（ステップＳ４０２）。対象パス優先度が優先度閾値以下の場合（ステップＳ４０１，Ｎｏ）、優先度判定部１３は、リダイレクションメッセージを廃棄して処理を終了する。すなわち、優先度判定部１３は、キャッシュ操作部１２に通知を行わないため、リダイレクションメッセージを受信してもショートカットパスのエントリーはキャッシュメモリ１０に登録されることはない。
【００４１】
つぎに、図７のフローチャートを参照して、上記（条件３）の判定による登録処理の動作を説明する。なお、キャッシュメモリ１０には、送信先のＩＤと、このＩＤが示すノード１のＩＰアドレスと、優先度との組がショートカットパスのエントリーとして登録されているものとする。
【００４２】
優先度判定部１３は、キャッシュメモリ１０の領域に空きがあるか否かを判定する。キャッシュメモリ１０の領域に空きがある場合（ステップＳ５００，Ｙｅｓ）、優先度判定部１３は、リダイレクションメッセージによる登録を行う旨をキャッシュ操作部１２に通知する。通知を受けるとキャッシュ操作部１２は、リダイレクションメッセージに含まれる送信先のＩＤと、このＩＤが示すノード１のＩＰアドレスと、優先度とを抽出する。キャッシュ操作部１２は、抽出した送信先のＩＤと、このＩＤが示すノード１のＩＰアドレスと、優先度とを組としたショートカットパスのエントリー、すなわちリダイレクションメッセージの内容をキャッシュメモリ１０に登録する（ステップＳ５０１）。
【００４３】
キャッシュメモリ１０の領域に空きがない場合（ステップＳ５００，Ｎｏ）、優先度判定部１３は、キャッシュメモリ１０に登録されたエントリーの優先度の中にリダイレクションメッセージに含まれる優先度より低いエントリーが存在するか否かを判定する（ステップＳ５０２）。具体的には、優先度判定部１３は、リダイレクションメッセージに含まれる優先度を抽出するとともに、キャッシュ操作部１２を介してキャッシュメモリ１０に登録された全てのエントリーの優先度を取得する。優先度判定部１３は、取得した優先度の中に抽出した優先度より優先度が低いものが存在するか否かを判定する。キャッシュメモリ１０に登録されたエントリーの優先度の中にリダイレクションメッセージに含まれる優先度より低いものが存在する場合（ステップＳ５０２，Ｙｅｓ）、優先度判定部１３は、キャッシュメモリ１０に登録されたエントリーの優先度の中でリダイレクションメッセージに含まれる優先度より低いエントリーをキャッシュメモリ１０から削除してリダイレクションメッセージの内容をキャッシュメモリ１０に登録する旨をキャッシュ操作部１２に通知する。通知を受けると、キャッシュ操作部１２は、通知されたエントリーをキャッシュメモリ１０から削除して、リダイレクションメッセージに含まれる送信先のＩＤと、このＩＤが示すノード１のＩＰアドレスと、優先度とを組としたショートカットパスのエントリーをキャッシュメモリ１０に登録する（ステップＳ５０３）。
【００４４】
一方、キャッシュメモリ１０に登録されたエントリーの優先度の中にリダイレクションメッセージに含まれる優先度より低いものが存在しない場合（ステップＳ５０２，Ｎｏ）、優先度判定部１３は、リダイレクションメッセージを廃棄して処理を終了する。すなわち、優先度判定部１３は、キャッシュ操作部１２に通知を行わないため、リダイレクションメッセージを受信してもショートカットパスのエントリーはキャッシュメモリ１０に登録されることはない。
【００４５】
つぎに、キャッシュメモリ１０に登録されているエントリーを削除する動作について説明する。キャッシュ操作部１２は、キャッシュメモリ１０の管理を行っており、キャッシュメモリ１０にエントリーを登録する際に、登録したエントリーに対応付けて図示しない計時機能を用いて登録してからの経過時間の計測を開始する。そして、経過時間が予め定められた登録時間を経過した場合、当該エントリーをキャッシュメモリ１０から削除する。
【００４６】
なお、登録した後に一定時間エントリーを使用しなかった場合、すなわち登録したショートカットパスを使用してデータパケットの転送を行わなかった場合に当該エントリーをキャッシュメモリ１０から削除するようにしてもよい。具体的には、登録処理によってキャッシュメモリ１０にエントリーを登録する際に、登録したエントリーに対応付けて図示しない計時機能を用いて登録してからの経過時間の計測を開始する。そして、先の図３のフローチャートを参照して説明した送信処理のステップＳ１０４においてキャッシュメモリ１０に登録されているＩＰアドレスにデータパケットを送信した場合、すなわちショートカットパスによってデータパケットを転送した際にこのＩＰアドレスを含むエントリーに対応付けられた計時機能をリセットして再度経過時間の計測を開始する。そして、経過時間が予め定められた未使用時間を経過した場合に当該エントリーをキャッシュメモリ１０から削除する。
【００４７】
以上説明したように、この実施の形態１においては、リダイレクション生成部１１が、ＤＨＴによる転送によって自身が管理するＩＤ宛のデータパケットを受信した場合、データパケットに含まれる送信先のＩＤ、このＩＤが示すノード１のＩＰアドレス、およびデータパケットの優先度を含むリダイレクションメッセージを生成して受信したデータパケットの送信元のノード１に送信し、キャッシュ管理部９は、リダイレクションメッセージに含まれる優先度が予め定められた優先度閾値より優先度が高い場合に、前記リダイレクションメッセージに含まれる送信先のＩＤおよびこのＩＤが示すノード１のＩＰアドレスをキャッシュメモリ１０に登録するようにしているため、効率的にキャッシュメモリ１０を用いて優先度の高いデータパケットをショートカットパスを用いて高速に転送することができる。
【００４８】
また、この実施の形態１においては、リダイレクション生成部１１が、ＤＨＴによる転送によって自身が管理するＩＤ宛のデータパケットを受信した場合、データパケットに含まれる送信先のＩＤ、このＩＤが示すノード１のＩＰアドレス、およびデータパケットの優先度を含むリダイレクションメッセージを生成して受信したデータパケットの送信元のノード１に送信し、キャッシュ管理部９は、キャッシュメモリ１０に登録されているショートカットパスに関する情報の数が予め定められたエントリー数閾値以下の場合にはリダイレクションメッセージに含まれる優先度に依存することなくリダイレクションメッセージに含まれる送信先のＩＤおよびこのＩＤが示すノード１のＩＰアドレスをキャッシュメモリ１０に登録し、キャッシュメモリ１０に登録されているショートカットパスに関する情報の数が予め定められたエントリー数閾値より多い場合には、リダイレクションメッセージに含まれる優先度が予め定められた優先度閾値より優先度が高い場合のみ、リダイレクションメッセージに含まれる送信先のＩＤおよびこのＩＤが示すノード１のＩＰアドレスをキャッシュメモリ１０に登録するようにしているため、効率的にキャッシュメモリ１０を用いて優先度の高いデータパケットをショートカットパスを用いて高速に転送することができる。
【００４９】
さらに、この実施の形態１においては、リダイレクション生成部１１が、ＤＨＴによる転送によって自身が管理するＩＤ宛のデータパケットを受信した場合、データパケットに含まれる送信先のＩＤ、このＩＤが示すノード１のＩＰアドレス、およびデータパケットの優先度を含むリダイレクションメッセージを生成して受信したデータパケットの送信元のノード１に送信し、キャッシュメモリの登録領域に空きがある場合にはリダイレクションメッセージに含まれる優先度に依存することなくリダイレクションメッセージに含まれる送信先のＩＤおよびこのＩＤが示すノード１のＩＰアドレスをキャッシュメモリに登録し、キャッシュメモリの登録領域に空きがない場合には、キャッシュメモリに登録された優先度の中でリダイレクションメッセージに含まれる優先度よりも優先度の低いものを選択し、選択した優先度に対応付けられたＩＤおよびＩＰアドレスをキャッシュメモリから削除してリダイレクションメッセージに含まれる送信先のＩＤおよびこのＩＤが示すノード１のＩＰアドレスをキャッシュメモリに登録するようにしているため、効率的にキャッシュメモリ１０を用いて優先度の高いデータパケットをショートカットパスを用いて高速に転送することができる。
【００５０】
なお、この実施の形態１では、上記（条件１）による判定を用いる場合、送信元ノードがリダイレクションメッセージに含まれる優先度と優先度閾値とを比較してショートカットパスのエントリーをキャッシュメモリ１０に登録するか否かを判定するようにしたが、送信先ノードがＤＨＴによる転送で受信したデータの優先度に基づいてショートカットパスのエントリーを送信元ノードのキャッシュメモリ１０に登録するか否かを判定するようにしてもよい。この場合、送信先ノードのＤＨＴ基本処理部５が、ＤＨＴによる転送によって受信したデータの優先度を送信先ノードの優先度判定部１３に通知し、送信先ノードの優先度判定部１３が通知された優先度と予め定められた優先度閾値とを比較し、通知された優先度が優先度閾値より大きいと判定した場合のみ、リダイレクション生成部１１にリダイレクションメッセージを生成させて送信元ノードに送信する。送信元ノードのキャッシュ操作部１２は、リダイレクションメッセージを受信した場合には無条件にリダイレクションメッセージの内容をキャッシュメモリ１０に登録する。
【００５１】
これにより、ショートカットパスを設定する場合のみ送信先ノードがリダイレクションメッセージを送信することとなり、無駄なメッセージがネットワーク上に送信されることがなくなるため、ネットワーク２０の帯域の消費を抑え、システムのスループットの低下を抑制することができる。
【００５２】
実施の形態２．
図８〜図１１を用いてこの発明の実施の形態２を説明する。先の実施の形態１では、ショートカットパスを登録するか否かの判定に、ＱｏＳにおける優先度を用いるようにしたが、この実施の形態２では、ショートカットパスを登録するか否かの判定に自ノード（送信元ノード）と送信先ノードとの距離を用いるものである。
【００５３】
図８は、この発明における分散型データ処理装置であるノード１の実施の形態２の構成を示すブロック図である。図８に示したこの実施の形態２のノード１は、先の図１に示した実施の形態１のノード１の優先度判定部１３を有するキャッシュ管理部９の代わりに、距離判定部１４を備えたキャッシュ管理部９ａを備えている。先の図１に示した実施の形態のノード１と同じ機能を持つ構成部分には同一符号を付し、重複する説明は省略する。
【００５４】
距離判定部１４は、自ノードのＩＤと送信先ノードのＩＤとの距離に基づいて、ショートカットパスのエントリーをキャッシュメモリ１０に登録するか否かを判定する。上述したように、本発明にかかる分散型データ処理装置を用いた分散型データ処理システムは、ＤＨＴ（Distributed  Hash  Table）を用いたＣｈｏｒｄ方式のネットワークシステムであり、複数の分散型データ処理装置（ノード）がネットワークを介して接続され、ＩＤ空間を１次元の円周、すなわちＩＤ＝０を起点として、ＩＤ＝１，２，…，２m-1（ｍはＩＤのビット数）の順に、２mで再び起点に戻る循環構造を構成し、ノードとデータのキーの双方がハッシュ関数によって同一のＩＤ空間にマッピングされている。距離判定部１４は、自ノードのＩＤと送信先ノードのＩＤとの差の絶対値を自ノードのＩＤと送信先ノードのＩＤとの距離として算出し、算出した距離を判定条件として用いる。登録を行うか否かの判定条件は、様々なバリエーションがあるが、ここでは、以下の３つの条件に付いて説明する。
【００５５】
（条件４）自ノードのＩＤと送信先ノードとのＩＤとの距離が所定の値より離れている場合のみ登録する。
（条件５）登録されたエントリー数が所定のエントリー数以下の場合には自ノードのＩＤと送信先ノートとのＩＤとの距離に依存することなく登録し、登録されたエントリー数が所定のエントリー数を越えた場合には自ノードのＩＤと送信先ノートとのＩＤとの距離が所定の値より離れている場合のみ登録する。
（条件６）キャッシュメモリ１０に空きがある場合には無条件に登録を行い、キャッシュメモリ１０に空きが無い場合には登録されたエントリーの中から自ノードのＩＤと送信先ノード（リダイレクションメッセージを送信したノード）のＩＤとの距離より近いエントリーを削除して登録する。
【００５６】
つぎに、この実施の形態２のノード１の動作について説明する。なお、この実施の形態２と先の実施の形態１との相違点は、キャッシュメモリ１０にエントリーを登録する登録処理のみであるので、ここでは、登録処理の動作のみを説明する。
【００５７】
まず、図９のフローチャートを参照して、上記（条件４）の判定による登録処理の動作を説明する。距離判定部１４は、リダイレクションメッセージに含まれる送信先のＩＤを抽出し、自ノードのＩＤと抽出した送信先のＩＤとの距離を算出する（ステップＳ６００）。距離判定部１４は、算出した距離と予め定められた距離閾値とを比較する。算出した距離が距離閾値より大きい場合（ステップＳ６０１，Ｙｅｓ）、距離判定部１４は、ショートカットパスを登録する旨をキャッシュ操作部１２に通知する。距離判定部１４からの通知を受けると、キャッシュ操作部１２は、リダイレクションメッセージに含まれる送信先のＩＤと、このＩＤが示すノード１のＩＰアドレスとを抽出する。キャッシュ操作部１２は、抽出した送信先のＩＤと、このＩＤが示すノード１のＩＰアドレスとを組としたショートカットパスのエントリー、すなわちリダイレクションメッセージの内容をキャッシュメモリ１０に登録する（ステップＳ６０２）。算出した距離が距離閾値以下の場合（ステップＳ６０１，Ｎｏ）、距離判定部１４は、リダイレクションメッセージを廃棄して処理を終了する。すなわち、距離判定部１４はキャッシュ操作部１２に通知を行わないため、リダイレクションメッセージを受信してもショートカットパスのエントリーはキャッシュメモリ１０に登録されることはない。
【００５８】
つぎに、図１０のフローチャートを参照して、上記（条件５）の判定による登録処理の動作を説明する。なお、距離判定部１４は、キャッシュメモリ１０に登録されているエントリー数を記憶しているものとする。
【００５９】
距離判定部１４は、登録エントリー数と予め定められたエントリー数閾値とを比較する。登録エントリー数がエントリー数閾値を越えている場合（ステップＳ７００，Ｙｅｓ）、距離判定部１４は、リダイレクションメッセージに含まれる送信先のＩＤを抽出し、自ノードのＩＤと抽出した送信先のＩＤとの距離を算出する（ステップＳ７０１）。距離判定部１４は、算出した距離と予め定められた距離閾値とを比較する。算出した距離が距離閾値より大きい場合（ステップＳ７０２，Ｙｅｓ）、または登録エントリー数がエントリー閾値以下の場合（ステップＳ７００，Ｎｏ）、距離判定部１４はショートカットパスのエントリーを登録する旨をキャッシュ操作部１２に通知するとともに、登録エントリー数をインクリメントしてカウントアップする。
【００６０】
距離判定部１４からの通知を受けると、キャッシュ操作部１２は、リダイレクションメッセージに含まれる送信先のＩＤと、このＩＤが示すノード１のＩＰアドレスとを抽出する。キャッシュ操作部１２は、抽出した送信先のＩＤと、このＩＤが示すノード１のＩＰアドレスとを組としたショートカットパスのエントリー、すなわちリダイレクションメッセージの内容をキャッシュメモリ１０に登録する（ステップＳ７０３）。算出した距離が距離閾値以下の場合（ステップＳ７０２，Ｎｏ）、距離判定部１４は、リダイレクションメッセージを廃棄して処理を終了する。すなわち、距離判定部１４は、キャッシュ操作部１２に通知を行わないため、リダイレクションメッセージを受信してもショートカットパスのエントリーはキャッシュメモリ１０に登録されることはない。
【００６１】
つぎに、図１１のフローチャートを参照して、上記（条件６）の判定による登録処理の動作を説明する。なお、キャッシュメモリ１０には、送信先のＩＤ値と、このＩＤ値が示すノードのアドレスと、自ノードのＩＤと送信先のＩＤとの距離との組がショートカットパスのエントリーとして登録されているものとする。
【００６２】
距離判定部１４は、リダイレクションメッセージに含まれる送信先のＩＤを抽出し、自ノードのＩＤと抽出した送信先のＩＤとの距離を算出する（ステップＳ８００）。距離判定部１４は、キャッシュメモリ１０の領域に空きがあるか否かを判定する。キャッシュメモリ１０の領域に空きがある場合（ステップＳ８０１，Ｙｅｓ）、距離判定部１４は、リダイレクションメッセージによる登録を行う旨をキャッシュ操作部１２に通知する。距離判定部１４は、この通知に算出した距離も含めておく。
【００６３】
通知を受けるとキャッシュ操作部１２は、リダイレクションメッセージに含まれる送信先のＩＤと、このＩＤが示すノード１のＩＰアドレスとを抽出する。キャッシュ操作部１２は、抽出した送信先のＩＤと、このＩＤが示すノード１のＩＰアドレスと、通知された距離（自ノードのＩＤと送信先のＩＤとの距離）を組としたショートカットパスのエントリー、すなわちリダイレクションメッセージの内容をキャッシュメモリ１０に登録する（ステップＳ８０２）。
【００６４】
キャッシュメモリ１０の領域に空きがない場合（ステップＳ８０１，Ｎｏ）、距離判定部１４は、キャッシュメモリ１０に登録されたエントリーの距離の中に通知された距離より近いエントリーが存在するか否かを判定する（ステップＳ８０３）。具体的には、距離判定部１４は、キャッシュ操作部１２を介してキャッシュメモリ１０に登録された全てのエントリーの距離を取得する。距離判定部１４は、取得した距離の中に算出した距離より距離が近いものが存在するか否かを判定する。キャッシュメモリ１０に登録されたエントリーの距離の中に算出した距離よりも近いものが存在する場合（ステップＳ８０３，Ｙｅｓ）、距離判定部１４は、キャッシュメモリ１０に登録されたエントリーの距離の中で着算出した距離よりも近いエントリーをキャッシュメモリ１０から削除してリダイレクションメッセージの内容をキャッシュメモリ１０に登録する旨をキャッシュ操作部１２に通知する。距離判定部１４は、この通知に算出した距離を含めておく。通知を受けると、キャッシュ操作部１２は、通知されたエントリーをキャッシュメモリ１０から削除して、リダイレクションメッセージに含まれる送信先のＩＤと、このＩＤが示すノード１のＩＰアドレスと、通知された距離とを組としたショートカットパスのエントリーをキャッシュメモリ１０に登録する（ステップＳ８０４）。
【００６５】
一方、キャッシュメモリ１０に登録されたエントリーの優先度の中にリダイレクションメッセージに含まれる優先度より低いものが存在しない場合（ステップＳ８０３，Ｎｏ）、距離判定部１４は、リダイレクションメッセージを廃棄して処理を終了する。すなわち、距離判定部１４は、キャッシュ操作部１２に通知を行わないため、リダイレクションメッセージを受信してもショートカットパスのエントリーはキャッシュメモリ１０に登録されることはない。
【００６６】
以上説明したように、この実施の形態２においては、リダイレクション生成部１１が、ＤＨＴによる転送によって自身が管理するＩＤ宛のデータパケットを受信した場合、データパケットに含まれる送信先のＩＤおよびこのＩＤが示すノード１のＩＰアドレス含むリダイレクションメッセージを生成して受信したデータパケットの送信元のノード１に送信し、キャッシュ管理部９は、リダイレクションメッセージに含まれる送信先のＩＤと自装置のＩＤとから装置間の距離を算出し、算出した距離が予め定められた距離閾値より遠い場合に、リダイレクションメッセージに含まれる送信先のＩＤおよびこのＩＤが示すノード１のＩＰアドレスをキャッシュメモリ１０に登録するようにしているため、送信元と送信先との距離が予め定められた距離閾値よりも遠く、ＤＨＴによる転送ではホップ数が多くなり時間のかかるデータパケットを選択してショートカットパスをキャッシュメモリ１０に登録することができ、効率的にキャッシュメモリ１０を利用することができる。
【００６７】
また、この実施の形態２においては、リダイレクション生成部１１が、ＤＨＴによる転送によって自身が管理するＩＤ宛のデータパケットを受信した場合、データパケットに含まれる送信先のＩＤおよびこのＩＤが示すノード１のＩＰアドレス含むリダイレクションメッセージを生成して受信したデータパケットの送信元のノード１に送信し、キャッシュ管理部９は、リダイレクションメッセージに含まれる送信先のＩＤと自装置のＩＤとから装置間の距離を算出し、キャッシュメモリ１０に登録されているショートカットパスに関する情報の数が予め定められたエントリー数閾値以下の場合には算出した距離に依存することなくリダイレクションメッセージに含まれる送信先のＩＤおよびこのＩＤが示す分散型データ処理装置のＩＰアドレスをキャッシュメモリ１０に登録し、キャッシュメモリ１０に登録されているショートカットパスに関する情報の数が予め定められたエントリー数閾値より多い場合には、算出した距離が予め定められた距離閾値より遠い場合のみ、リダイレクションメッセージに含まれる送信先のＩＤおよびこのＩＤが示す分散型データ処理装置のＩＰアドレスをキャッシュメモリ１０に登録するようにしているため、キャッシュメモリ１０に余裕がある場合には距離に依存することなくショートカットパスを用いた転送を行い、キャッシュメモリ１０に余裕がない場合には、送信元と送信先との距離が予め定められた距離閾値よりも遠く、ＤＨＴによる転送ではホップ数が多くなり転送に時間のかかるデータパケットを選択してショートカットパスをキャッシュメモリ１０に登録することができ、効率的にキャッシュメモリ１０を利用することができる。
【００６８】
さらに、この実施の形態２においては、リダイレクション生成部１１が、ＤＨＴによる転送によって自身が管理するＩＤ宛のデータパケットを受信した場合、データパケットに含まれる送信先のＩＤおよびこのＩＤが示すノード１のＩＰアドレス含むリダイレクションメッセージを生成して受信したデータパケットの送信元のノード１に送信し、キャッシュ管理部９は、リダイレクションメッセージに含まれる送信先のＩＤと自装置のＩＤとから装置間の距離を算出し、キャッシュメモリ１０の登録領域に空きがある場合には算出した距離に依存することなく、リダイレクションメッセージに含まれる送信先のＩＤおよびこのＩＤが示す分散型データ処理装置のＩＰアドレスと算出した距離とをキャッシュメモリ１０に登録し、キャッシュメモリ１０の登録領域に空きがない場合には、キャッシュメモリ１０に登録された距離の中で算出した距離よりも近いものを選択し、選択した距離に対応付けられたＩＤおよびＩＰアドレスをキャッシュメモリ１０から削除してリダイレクションメッセージに含まれる送信先のＩＤおよびこのＩＤが示す分散型データ処理装置のＩＰアドレスと算出した距離とをキャッシュメモリ１０に登録するようにしているため、送信元と送信先との距離が遠く、ＤＨＴによる転送ではホップ数が多くなり転送に時間の係るデータパケットを優先してショートカットパスをキャッシュメモリ１０に登録することができ、効率的にキャッシュメモリ１０を利用することができる。
【００６９】
なお、この実施の形態２においては、自ノードのＩＤ値と送信先のＩＤ値と差を距離として用いるようにしたが、実際のパケットの転送時間を距離として用いるようにしてもよい。この場合、送信元のノード１のＤＨＴ基本処理部５がパケット内に送信時刻を含めておき、送信先のノード１のＤＨＴ基本処理部５がＤＨＴによるパケットを受信した時刻と当該パケット内の送信時刻からパケットの転送時間を算出する。そして、送信先のノード１のリダイレクション生成部１１がリダイレクションメッセージに転送時間を含める。送信元のノード１の距離判定部１４は、リダイレクションメッセージに含まれる転送時間が長いほど送信先のノード１との距離が遠いと認識して登録処理の判定を行なう。
【００７０】
実施の形態３．
図１２および図１３を用いてこの発明の実施の形態３を説明する。Ｃｈｏｒｄ方式のネットワークシステムでは、新たなノードがネットワークシステムに参加する場合、新規参加したノードは、新規参加したノードのｓｕｃｃｅｓｓｏｒノードのローカル管理データ６に登録されているキーやデータなどの情報の一部、すなわち新規参加したノードが管理することになるＩＤに関する情報を新規参加したノードのｓｕｃｃｅｓｓｏｒノードから引き継ぐ。また、ネットワークシステムから離脱する場合は、離脱するノードのｓｕｃｃｅｓｓｏｒノードが、離脱するノード（離脱するノードのｓｕｃｃｅｓｓｏｒノードからみてｐｒｅｄｅｃｅｓｓｏｒノード）のローカル管理データ６に登録されているキーやデータなどの情報をコピーして引き継ぐことで、ノードが離脱しても通信を継続可能としている。
【００７１】
しかしながら、送信元のノード１のキャッシュメモリ１０に登録されたショートカットパスのエントリーを更新していないため以下の問題が生じる。新たにノード１が分散型データ処理システムに参加した場合、新規参加したノード１に引き継がれたＩＤ宛のパケットは、ショートカットパスで転送すると本当の目的のノード（新規参加したノード１）のｓｕｃｃｅｓｓｏｒ宛になる。パケットがｓｕｃｃｅｓｓｏｒノードに到着すると、自ノード１はそのＩＤを管理していないのでｆｉｎｇｅｒテーブル８による転送（ＤＨＴによる転送）を開始する。しかし、目的のノード１は自分のｐｒｅｄｅｃｅｓｓｏｒノードであり、また転送は時計回りに行われるので、転送としては最も遠いノードになり、送信元からショートカットパスを使うより単純にＤＨＴ転送した方が、パケットの転送数が少なくなる。すなわち、システムに新たなノード１が参加した場合、ショートカットパスを用いた転送を行うとＤＨＴによる転送よりも時間がかかってしまう場合があるという問題が生じる。また、システムからノード１が離脱し場合、ショートカットパスとして登録した宛先のノード１がなくなることになり、パケットがルータによって廃棄されてしまうという問題が生じる。
【００７２】
このような問題を改善するために、この実施の形態３では、ノード１の参加および離脱時にキャッシュメモリ１０に登録されたショートカットパスのエントリーを更新するものである。図１２は、この発明における分散型データ処理装置であるノード１の実施の形態３の構成を示すブロック図である。図１２に示したこの実施の形態３のノード１は、先の図１に示した実施の形態１のノード１のＤＨＴ処理部３に、システム内のノードの参加および離脱によって自ノードのローカル管理データ６に新たな情報を登録した場合に他のノードにキャッシュメモリ１０の登録内容の更新を要求するキャッシュ更新要求部１５が追加されている。先の図１に示した実施の形態１のノード１と同じ機能を持つ構成部分には同一符号を付し、重複する説明は省略する。
【００７３】
つぎに、この実施の形態３のノード１のキャッシュ更新処理に関する動作について説明する。ノードの新規参加または離脱によってローカル管理データ６に登録されているキーやデータなどの情報が変更されたノード１（以下、要求元ノード１とする）のキャッシュ更新要求部１５は、送信先のＩＤとそのＩＤを管理しているノード１のＩＰアドレスを含むキャッシュ更新要求メッセージを生成する。要求元ノード１のキャッシュ更新要求部１５は、下位レイヤ処理部２を介してブロードキャストによって生成したキャッシュ更新要求メッセージを送信する。
【００７４】
ブロードキャストによる送信は、単純に自ノードのＳＵＣＣＥＳＳＯＲノードに対してキャッシュ更新要求メッセージを送信して円周に沿って転送する方法であってもよいし、図１３に示すように、システム内にノード１−１〜１−９が存在する場合、要求元ノードであるノード１−１がノード１ー１，１−２にキャッシュ更新要求メッセージを送信し、ノード１ー２がノード１−４，１−５にキャッシュ更新要求メッセージを転送し、ノード１−３がノード１−６，１０７にキャッシュ更新要求メッセージを転送し、ノード１−６がノード１−８，１−９にキャッシュ更新要求メッセージを転送するというように、ブロードキャストツリーを生成して転送する方法であってもよい。
【００７５】
キャッシュ更新要求メッセージを受信したノード１のキャッシュ管理部９は、キャッシュ更新要求メッセージに含まれる送信先のＩＤとこのＩＤを管理しているノード１のＩＰアドレスとを抽出する。そして、キャッシュ操作部１２を介して、抽出した送信先のＩＤがキャッシュメモリ１０に登録されているか否かを判定する。抽出した送信先のＩＤがキャッシュメモリ１０に登録されている場合、キャッシュ管理部９はキャッシュ操作部１２を介して、抽出した送信先のＩＤに対応付けてキャッシュメモリ１０に登録されているＩＰアドレスを、キャッシュ更新要求メッセージから抽出したＩＰアドレスに書き換える。
【００７６】
以上説明したように、この実施の形態３においては、キャッシュ更新要求部１５は、自身が管理するＩＤが変更された場合、送信先のＩＤとこのＩＤを管理するノード１のＩＰアドレスを含むキャッシュ更新メッセージをシステム内の全てのノード１に送信し、キャッシュ管理部９は、受信したキャッシュ更新メッセージに含まれるＩＤが自身のキャッシュメモリ１０に登録されている場合、当該ＩＤに対応付けられているＩＰアドレスをキャッシュ要求メッセージに含まれるＩＰアドレスに変更するようにしているため、ノード１の参加・離脱によって送信先が変更になる場合も、キャッシュメモリ１０に設定されたショートカットパスの情報を更新してショートカットパスによる転送を継続することができる。
【００７７】
なお、この実施の形態３においては、ブロードキャストによってキャッシュメモリ１０更新要求メッセージを送信するようにしたが、送信先のノード１が、ショートカットパスを用いた送信元のＩＤとこのＩＤが示すノード１のＩＰアドレス（送信元のＩＰアドレス）を記憶しておき、ショートカットパスの送信元のみにキャッシュ更新要求メッセージを送信するようにしてもよい。これにより、キャッシュメモリ１０の更新すべきノード１のみにキャッシュ更新メッセージを送信することになり、ネットワークの帯域消費を抑制し、システムのスループットの低下を抑制する事ができる。
【００７８】
また、この実施の形態３においては、先の図１に示した実施の形態１のノード１のＤＨＴ処理部３にキャッシュ更新要求部１５を追加した構成としたが、先の図８に示した実施の形態２のノード１のＤＨＴ処理部３にキャッシュ更新要求部１５を追加した構成であってもかまわない。
【００７９】
実施の形態４．
図１４を用いてこの発明の実施の形態４を説明する。図１４は、この発明の実施の形態４のノード１の構成を示すブロック図である。図１４に示したこの実施の形態４のノード１は、先の図１２に示した実施の形態３のノード１のＤＨＴ処理部３に、ショートカットパケット転送部１６が追加されている。先の図１２に示した実施の形態３のノード１と同じ機能を持つ構成部分には同一符号を付し、重複する説明は省略する。
【００８０】
ショートカットパケット転送部１６は、ショートカットパスによって転送されたパケットの宛先のＩＤ値の管理が自ノードから新規参加したノード１に移行した場合に、当該パケットをＩＤの管理を移行したノード１に転送する処理を行なう。その際に、ショートカットパケット転送部１６は、ｆｉｎｇｅｒテーブル８を用いたＤＨＴによる転送ではなく、直接移行したノード１にパケットを転送する。
【００８１】
つぎに、この実施の形態４のノード１のショートカットパケット転送に関する動作を説明する。ＤＨＴ基本処理部５は、受信したデータパケットがショートカットパスを用いて転送されたデータパケットである場合、ローカル管理データ６に登録されている情報に基づいて、受信したデータパケットに含まれる送信先のＩＤが自身が管理するＩＤであるか否かを判定する。受信したデータパケットに含まれる送信先のＩＤが自身が管理するＩＤではない場合、ＤＨＴ基本処理部５は、受信したデータパケットに含まれる送信先のＩＤは、新規参加したノード１に管理を移行したと認識して、自身が管理するＩＤ宛ではないパケットをショートカットパスを用いた転送によって受信したことをショートカットパケット転送部１６に通知する。また、ＤＨＴ基本処理部５は、キャッシュ更新要求部１５にキャッシュ更新要求メッセージを生成させる。新規参加したノード１、すなわちＩＤの管理を移行したノード１が、自身のｐｒｅｄｅｃｅｓｓｏｒノードである場合、ショートカットパケット転送部１６は、受信したパケットを自身のｐｒｅｄｅｃｅｓｓｏｒノードに転送する。
【００８２】
なお、自身が管理していないＩＤ宛のパケットがショートカットパスによって転送されてくるのは、新たなノード１がシステムに参加してローカル管理データ６に格納される情報が更新されてから、キャッシュ更新要求メッセージによって当該ノード１のキャッシュメモリ１０のエントリーの内容が更新されるまでの間である。よって、ショートカットパケット転送部１６は、新たなノード１がシステムに参加してから（ローカル管理データ６に格納されている情報が更新されてから）所定の時間の間だけ、ショートカットパスによる転送によって自身が管理していないＩＤ宛のデータパケットを受信した場合に、受信したデータパケットを自身のｐｒｅｄｅｃｅｓｓｏｒノードに転送するようにしてもよい。この場合、所定の時間は、新たなノード１がシステムに参加してローカル管理データ６に格納される情報が更新されてから、キャッシュ更新要求メッセージによって当該ノード１のキャッシュメモリ１０のエントリーの内容が更新されるまでに十分な時間とすればよい。
【００８３】
以上説明したように、この実施の形態４においては、ショートカットパケット転送部１６が、自身が管理するＩＤを他のノード１に移行した後に移行したＩＤ宛のデータパケットをショートカットパスによる転送で受信した場合、受信したデータパケットをＩＤを移行したノードに直接送信するようにしているため、ノード１の参加・離脱によって送信先が変更になる場合も、ショートカットパスを用いた転送を継続することができる。
【００８４】
実施の形態５．
図１５を参照してこの発明の実施の形態５を説明する。先の実施の形態１〜４のノード１を用いた分散型データ処理システムでは、ｆｉｎｇｅｒテーブル８を用いたＤＨＴによる転送から、キャッシュメモリ１０を用いたショートカットパスを用いた転送に切り替わるまでに時差がある。具体的には、先の図２に示したノード１ａが送信した１つ目のパケットは、ＤＨＴによる転送によってノード１ｂ、ノード１ｃを介してノード１ｄに到達する。ノード１ｄは、１つ目のパケットを受信してリダイレクションメッセージを生成してノード１ａに送信し、ノード１ａはリダイレクションメッセージを受信してキャッシュメモリ１０にショートカットパスのエントリーを登録した後に発生したパケットからショートカットパスによって直接ノード１ｄに送信する。そのため、ノード１ａが１つめのデータパケットを送信してからショートカットパスを設定するまでの間に発生したノード１ｄへのデータパケットは、ＤＨＴによる転送によって送信されている。ＤＨＴによる転送は、ノード１ｂ，１ｃを介して行われるため、直接ノード１ｄに転送するショートカットパスによる転送よりも転送時間が長くなる。そのため、ショートカットパスによる転送への切替時には、ノード１ｄに到達するパケットの順序逆転が発生することがある。
【００８５】
このような問題を改善するために、この実施の形態５では、図１５に示すように、先の図１に示した実施の形態１のノード１のＤＨＴ処理部３に、パケットの順番を並べ替えるパケット並べ替え部１７を追加したものである。なお、先の図１に示した実施の形態１のノード１と同じ機能を備える構成部分には同一符号を付し、重複する説明は省略する。
【００８６】
つぎに、この実施の形態５のパケット並べ替え処理に関する動作について説明する。受信したパケットに含まれるデータの宛先ＩＤが自身が管理するＩＤ値である場合、ＤＨＴ基本処理部５は、受信したパケットをパケット並べ替え部１７に出力する。パケット並べ替え部１７は、入力されたパケットのシーケンス番号（ＳＮ）を抽出し、抽出したシーケンス番号順にパケットを並べ替える。そして、シーケンス番号順にパケットを上位レイヤ処理部４に出力する。ここで、シーケンス番号に抜けがある場合には、抜けているシーケンス番号のパケットが到着した後に、シーケンス番号順にパケットを上位レイヤ処理部４に出力する。
【００８７】
以上説明したように、この実施の形態５においては、パケット並べ替え部１７が、データパケットの順番を示すシーケンス番号（ＳＮ）に基づいてデータパケットを並べ替えて上位レイヤ処理部４に出力するようにしているため、ＤＨＴによる転送からショートカットパスによる転送への切替時に発生するパケットの順序逆転を上位レイヤに対して隠蔽することが可能となり、トランスポート層にＴＣＰを使用している場合、順序逆転により輻輳回避の制御を防止することができ、システムのスループットの低下を防止することができる。
【００８８】
なお、この実施の形態５においては、通常パケットに含まれているシーケンス番号を利用してパケットを並べ替えて上位レイヤ処理部４に対してショートカットパスへの切替によるパケットの順序逆転を隠蔽するようにしたが、パケットの順序逆転の識別は、シーケンス番号によるものでなくてもかまわない。たとえば、送信元のノード１のＤＨＴ基本処理部５が、キャッシュメモリ１０にショートカットパスのエントリーを登録してショートカットパスを設定してから最初に送信するパケットを、ショートカットパスではなくＤＨＴによる転送で送信し、このパケットがＤＨＴによる転送の最後のパケットであることを示す情報をパケット内に含めておく。具体的には、パケットの所定の位置にＤＨＴ転送終了フラグを設けておき、送信元のノード１のＤＨＴ基本処理部５は、ＤＨＴ転送終了フラグをＯＮにして送信する。このＤＨＴ転送終了フラグをＯＮにしたパケットをＤＨＴによって転送した後のパケットから、送信元のノード１のＤＨＴ基本処理部５は、ショートカットパスによってパケットを送信する。
【００８９】
上述したように、ＤＨＴによってパケットを転送する際にはショートカットパスフラグはＯＦＦであり、ショートカットパスによってパケットを転送する際にはショートカットパスフラグはＯＮになっている。また、ＤＨＴ転送終了フラグは、ＤＨＴによって転送される最後のパケットのみＯＮであり、その他のパケットではＤＨＴ転送終了フラグはＯＦＦになっている。送信先のノード１のパケット並べ替え部１７は、ショートカットパスフラグおよびＤＨＴ転送終了フラグに基づいてパケットの順序逆転を識別する。具体的には、ショートカットパスフラグがＯＮのパケットを受けた際に、ショートカットパスフラグがＯＦＦであって、かつＤＨＴ転送終了フラグがＯＮのパケットを受けていない場合、ショートカットパスフラグがＯＮのパケットより前のパケットが存在しておりパケットの順序逆転が発生したと認識する。そして、ショートカットパスフラグがＯＦＦであってかつＤＨＴ転送終了フラグがＯＦＦのパケット、またはショートカットパスフラグがＯＦＦであってかつＤＨＴ転送終了フラグがＯＮのパケットを受信した順に上位レイヤ処理部４に出力し、ショートカットパスフラグがＯＦＦであってかつＤＨＴ転送終了フラグがＯＮのパケットの後に受信した順番にショートカットパスフラグがＯＮのパケットを上位レイヤ処理部４に出力する。
【００９０】
なお、この実施の形態５では、先の図１に示した実施の形態１のノード１のＤＨＴ処理部３にパケット並べ替え部１７を追加した構成としたが、先の図８に示した実施の形態２のノード１のＤＨＴ処理部３、先の図１２に示した実施の形態３のノード１のＤＨＴ処理部３、先の図１４に示した実施の形態４のノード１のＤＨＴ処理部３にパケット並べ替え部１７を追加した構成であってもかまわない。
【００９１】
実施の形態６．
図１６を用いてこの発明の実施の形態６を説明する。先の実施の形態５では、ＤＨＴによる転送からショートカットパスによる転送への切替によって生じるパケットの順序逆転を送信先ノード（受信側）において回避するようにしたが、この実施の形態６では、送信元ノード（送信側）において回避するものである。
【００９２】
図１６は、この発明における実施の形態６のノード１の構成を示すブロック図である。図１６に示したこの実施の形態６のノード１は、先の図１に示した実施の形態１のノード１のＤＨＴ処理部３に、ショートカットパスによってデータパケットを転送する際に所定の遅延を付加する遅延挿入部１８が追加されている。先の図１に示した実施の形態１のノード１と同じ機能を持つ構成部分には同一符号を付し、重複する説明は省略する。
【００９３】
つぎに、この実施の形態６のノード１が、ｆｉｎｇｅｒテーブル８を用いたＤＨＴによる転送からショートカットパスによる転送に切り替える際にパケットに遅延を付加する動作について説明する。ＤＨＴ基本処理部５は、ＤＨＴによる転送からショートカットパスによる転送に切り替える旨を遅延挿入部１８に通知する。遅延挿入部１８は、通知を受けると予め定められた遅延付加時間の計測を開始する。なお、遅延付加時間は、ＤＨＴによる転送によってデータパケットを送信した際に送信先のノード１に送信したデータパケットが到達するまでの時間以上とする。遅延挿入部１８は、データパケットのショートカットパスフラグに基づいて、遅延付加時間の計測中にＤＨＴ基本処理部５から入力されたデータパケットが、ショートカットパスによって転送するデータパケットであるか否かを判定する。
【００９４】
遅延付加時間の計測中にＤＨＴ基本処理部５から入力されたパケットが、ショートカットパスによって転送するデータパケットである場合、遅延挿入部１８は、入力されたデータパケットを保持する。遅延付加時間の計測が終了すると、遅延挿入部１８は、保持していたデータパケットをＤＨＴ基本処理部５から入力された順番に下位レイヤ処理部２に出力し、下位レイヤ処理部２は、ネットワーク２０にパケットを送信する。一方、遅延付加時間の計測中にＤＨＴ基本処理部５から入力されたデータパケットが、ショートカットパスによって転送するデータパケットではない場合、すなわちＤＨＴによって転送するデータパケットの場合、遅延挿入部１８は、入力されたデータパケットを保持することなく直ちに下位レイヤ処理部２に出力し、下位レイヤ処理部２はネットワーク２０にパケットを送信する。
【００９５】
以上説明したように、この実施の形態６においては、遅延挿入部１８が、ＤＨＴによる転送からショートカットパスによる転送にデータパケットの転送が変更される際に、ショートカットパスによる転送のデータパケットを予め定められた時間だけ遅延させて送信するようにしているため、ＤＨＴによる転送からショートカットパスによる転送に切り替えた場合でも、送信先のノードには送信順にデータパケットが到達することを可能とし、トランスポート層にＴＣＰを使用している場合、順序逆転により輻輳回避の制御を防止することができ、システムのスループットの低下を防止することができる。
【００９６】
なお、この実施の形態６においては、先の図１に示した実施の形態１のノード１のＤＨＴ処理部３に遅延挿入部１８を追加した構成としたが、先の図８に示した実施の形態２のノード１のＤＨＴ処理部３、先の図１２に示した実施の形態３のノード１のＤＨＴ処理部３、先の図１４に示した実施の形態４のノード１のＤＨＴ処理部３に遅延挿入部１８を追加した構成であってもかまわない。
【００９７】
実施の形態７．
図１７および図１８を用いてこの発明の実施の形態７を説明する。先の実施の形態１〜６では、送信先のノード１がリダイレクションメッセージを送信元のノード１に送信することでショートカットパスを設定するようにした。しかしながら、リダイレクションメッセージの数が多くなるとリダイレクションメッセージによってネットワークの帯域が消費されてしまい、システムのスループットが低下してしまうという問題が生じる。このような問題を改善するために、この実施の形態７では、リダイレクションメッセージを用いることなくショートカットパスを設定するものである。
【００９８】
図１７は、この発明における実施の形態７のノード１の構成を示すブロック図である。図１７に示したこの実施の形態７のノード１は、先の図１に示した実施の形態１のノード１のＤＨＴ処理部３のリダイレクション生成部１１の代わりに、自身が管理するＩＤ宛のパケットに基づいてショートカットパスを設定するショートカットパス学習部１９を備えている。なお、先の図１に示した実施の形態１のノード１と同じ機能を持つ構成部分には同一符号を付し、重複する説明を省略する。
【００９９】
つぎに、図１８のフローチャートを参照して、この実施の形態７のノード１の動作について説明する。なお、この実施の形態７のノード１の送信処理の動作は、先の図３のフローチャートを参照して説明した実施の形態１のノードの送信処理の動作と同じであるので、ここではショートカットパスの設定に関する受信処理の動作のみを説明する。
【０１００】
下位レイヤ処理部２を介してネットワーク２０からパケットを受信すると（ステップＳ９００）、ＤＨＴ基本処理部５は、受信したデータパケットに含まれるデータの宛先が自身が管理するＩＤ宛であるか否かを判定する（ステップＳ９０１）。受信したデータパケットに含まれるデータの宛先が自身が管理するＩＤ宛ではない場合（ステップＳ９０１，Ｎｏ）、ＤＨＴ基本処理部５は、ｆｉｎｇｅｒテーブル８を検索して宛先アドレスを選択し、選択した宛先アドレスにデータを送信する（ステップＳ９０２）。受信したデータパケットに含まれるデータの宛先ＩＤが自身が管理するＩＤ宛である場合（ステップＳ９０１，Ｙｅｓ）、ＤＨＴ基本処理部５は、ローカル管理データ６に基づいてデータ処理を行なうとともに、受信したパケットをショートカットパス学習部１９に出力する。
【０１０１】
ショートカットパス学習部１９は、データパケットの送信元のノード１とのショートカットパスが登録済みであるか否かを判定する（ステップＳ９０３）。具体的には、ショートカットパス学習部１９は、データパケットから送信元のＩＤおよび送信元のノード１のＩＰアドレスを抽出する。ショートカットパス学習部１９は、キャッシュ操作部１２を介してキャッシュメモリ１０に登録されているショートカットパスのエントリ（ＩＤとＩＰアドレスの組）の中から抽出したＩＤとＩＰアドレスの組を検出し、検出できた場合にはデータパケットの送信元のノード１とのショートカットパスが登録済みであると判定し、検出できなかった場合にはデータパケットの送信元のノード１とのショートカットパスが未登録であると判定する。
【０１０２】
ショートカットパス学習部１９は、登録済みであると判定した場合には処理を終了し、未登録であると判定し場合には、登録処理を実行する（ステップＳ９０４）。なお、登録処理は、先の図５〜図７のフローチャートを参照して実施の形態１で説明した登録処理の動作と同じであるので、ここではその説明を省略する。
【０１０３】
このように、この実施の形態７では、データパケットの送信元ではなく、送信先にショートカットパスを設定するが、一般的に通信は双方向で行われる。よって、データパケットの送信先にショートカットパスを設定しても、双方向通信としてみた場合先の実施の形態１〜６と同様にデータパケットを高速に転送することが可能となる。
【０１０４】
以上説明したように、この実施の形態７においては、ショートカットパス学習部１９が、ＤＨＴによる転送によって自身が管理するＩＤ宛のデータパケットを受信した場合、データパケットに含まれる送信先のＩＤおよびこのＩＤが示すノード１のＩＰアドレスをキャッシュメモリ１０に登録するようにしているため、ショートカットパスを設定するためにメッセージを送信する必要が無くなり、ショートカットパスの設定のためにシステムのスループットが低下することを防止することができる。
【０１０５】
なお、先の図８に示した実施の形態２のノード１のＤＨＴ処理部３、先の図１２に示した実施の形態３のノード１のＤＨＴ処理部３、先の図１４に示した実施の形態４のノード１のＤＨＴ処理部３、先の図１５に示した実施の形態５のノード１のＤＨＴ処理部３、先の図１６に示した実施の形態６のノード１のＤＨＴ処理部３のリダイレクション生成部１１の代わりに、この実施の形態７のショートカットパス学習部１９を備えるようにしてもよい。
【産業上の利用可能性】
【０１０６】
以上のように、本発明にかかる分散型データ処理装置は、キャッシュメモリにショートカットパスを登録してショートカットパスによる転送を併用するＤＨＴを用いた方式による分散型データシステムに有用であり、特に、キャッシュメモリの容量に制限のある場合に適している。
【図面の簡単な説明】
【０１０７】
【図１】本発明にかかる分散型データ処理装置であるノードの実施の形態１の構成を示すブロック図である。
【図２】ショートカットパスのイメージを示す図である。
【図３】本発明にかかる分散型データ処理装置であるノードの送信処理の動作を説明するためのフローチャートである。
【図４】本発明にかかる分散型データ処理装置であるノードの受信処理の動作を説明するためのフローチャートである。
【図５】本発明にかかる分散型データ処理装置であるノードの実施の形態１の登録処理の動作を説明するためのフローチャートである。
【図６】本発明にかかる分散型データ処理装置であるノードの実施の形態１の登録処理の動作を説明するためのフローチャートである。
【図７】本発明にかかる分散型データ処理装置であるノードの実施の形態１の登録処理の動作を説明するためのフローチャートである。
【図８】本発明にかかる分散型データ処理装置であるノードの実施の形態２の構成を示すブロック図である。
【図９】本発明にかかる分散型データ処理装置であるノードの実施の形態２の登録処理の動作を説明するためのフローチャートである。
【図１０】本発明にかかる分散型データ処理装置であるノードの実施の形態２の登録処理の動作を説明するためのフローチャートである。
【図１１】本発明にかかる分散型データ処理装置であるノードの実施の形態２の登録処理の動作を説明するためのフローチャートである。
【図１２】本発明にかかる分散型データ処理装置であるノードの実施の形態３の構成を示すブロック図である。
【図１３】キャッシュメモリ更新要求メッセージを送信するブロードキャストツリーを説明するための図である。
【図１４】本発明にかかる分散型データ処理装置であるノードの実施の形態４の構成を示すブロック図である。
【図１５】本発明にかかる分散型データ処理装置であるノードの実施の形態５の構成を示すブロック図である。
【図１６】本発明にかかる分散型データ処理装置であるノードの実施の形態６の構成を示すブロック図である。
【図１７】本発明にかかる分散型データ処理装置であるノードの実施の形態７の構成を示すブロック図である。
【図１８】本発明にかかる分散型データ処理装置であるノードの実施の形態７の受信処理の動作を説明するためのフローチャートである。
【符号の説明】
【０１０８】
１  ノード
２  下位レイヤ処理部
３  ＤＨＴ処理部
４  上位レイヤ処理部
５  ＤＨＴ基本処理部
６  ローカル管理データ
７  ＳＵＣＣＥＳＳＯＲリスト
８  ｆｉｎｇｅｒテーブル
９  キャッシュ管理部
１０  キャッシュメモリ
１１  リダイレクション生成部
１２  キャッシュ操作部
１３  優先度判定部
１４  距離判定部
１５  キャッシュ更新要求部
１６  ショートカットパケット転送部
１７  パケット並べ替え部
１８  遅延挿入部
１９  ショートカットパス学習部
２０  ネットワーク
【図１】
2008172706.tif 000003
【図２】
2008172706.tif 000004
【図３】
2008172706.tif 000005
【図４】
2008172706.tif 000006
【図５】
2008172706.tif 000007
【図６】
2008172706.tif 000008
【図７】
2008172706.tif 000009
【図８】
2008172706.tif 000010
【図９】
2008172706.tif 000011
【図１０】
2008172706.tif 000012
【図１１】
2008172706.tif 000013
【図１２】
2008172706.tif 000014
【図１３】
2008172706.tif 000015
【図１４】
2008172706.tif 000016
【図１５】
2008172706.tif 000017
【図１６】
2008172706.tif 000018
【図１７】
2008172706.tif 000019
【図１８】
2008172706.tif 000020