(57)【特許請求の範囲】
【請求項１】
ピュアー型Ｐ２Ｐ通信における動的レプリカ制御を行うサーバント装置において、
当該サーバント装置の近傍におけるヒット数を管理する管理手段と、
該管理手段に接続され、該管理手段が持つヒット数の情報を参照することにより、当該サーバント装置の持つファイルごとに混雑度の計算を行う手段と、
該管理手段に接続され、該管理手段が持つヒット数の情報を参照することにより、第１の閾値と混雑度を比較してレプリケーションを実行する手段と、
該管理手段に接続され、該管理手段が持つヒット数の情報を参照することにより、第２の閾値と混雑度を比較して、メモリ手段にアクセスし、該メモリ手段に格納されているレプリカを消去する手段と
を有し、
前記混雑度は、ある時刻ｔにおけるサーバント装置のＮホップ先のサーバントまでの範囲内にある全てのサーバントの集合をＧＮ｛Ｓ（ｔ）｝と表わし、あるサーバントｉのファイルｋの混雑度に関するある指標をＣｉ，ｋ（ｔ）とするとき、
Ｃｋ（ＧＮ｛Ｓ（ｔ）｝）＝ΣＣｉ，ｋ（ｔ）
ｉ∈ＧＮ｛Ｓ（ｔ）｝
で与えられることを特徴とするサーバント装置。
【請求項２】
請求項１に記載のサーバント装置において、
前記混雑度の中のＣｉ，ｋ（ｔ）としては、該サーバント装置を単位時間に通過するファイルｋに関するＰｉｎｇやＰｏｎｇの数、あるいはＱｕｅｒｙの数、あるいはＱｕｅｒｙＨｉｔの数、あるいは該サーバント装置のＣＰＵ使用率の直近Ｎ単位時間の平均値、あるいは該サーバントにおいてＨｉｔしたファイルｋのダウンロードの実行回数、のうちの１つを選択することを特徴とするサーバント装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＩＰ（Ｉｎｔｅｒｎｅｔ Ｐｒｏｔｏｃｏｌ）ネットワーク上で、いわゆるＰ２Ｐ（Ｐｅｅｒ−ｔｏ−Ｐｅｅｒ）型通信を行う場合に、ある短期間内であるサーバントへの検索やダウンロードの負荷が集中することを防ぐため、予めダウンロードを要求されるファイルのレプリケーションを実行して負荷分散を図ることにより、回線やサーバントの輻輳を防止し、なおかつ、混雑度が低い場合には、レプリカの数を低減させることにより、ネットワーク内の負荷の均等化を図ることを目的としたピュアー型Ｐ２Ｐ通信における動的レプリカ制御機能を具備した装置に関する。
【背景技術】
【０００２】
Ｐ２Ｐ型通信には、大別して次の２種類の型がある。すなわち、
Ｎａｐｓｔｅｒ型  ：目的情報の所在を一括管理する専用サーバが存在するタイプ、
Ｇｎｕｔｅｌｌａ型：目的情報の所在を伝言ゲーム方式で次々に問い合わせていくタイプ、
前者は、各サーバントからの検索要求パケットが、専用サーバに集中するため、サーバボトルネックとなり易い。また、後者は、ＴＴＬに設定された値のホップ数の範囲まで次々に目的の情報の有無を隣接サーバントに対して問い合わせていき、各サーバントでは、隣接サーバントへ延ばしている「腕」の分だけ分岐されてパケットが送出されることになる。
【０００３】
このような情報検索パケットが多数のサーバントから並列に発信される場合には、網内のパケット数が爆発的に増加し、網内の広域に渡っての混雑が予想される。また、ＩＰ網においてＰ２Ｐ型通信を行っている場合に、あるコンテンツ（ファイル）へのヒット率を向上させるために当該コンテンツの複製（レプリカ）を他のサーバントに送っておき、サーバントの負荷や回線の使用率上昇を抑える手法がある（レプリケーション）（これについては、非特許文献１〜３参照）。
【０００４】
【非特許文献１】Ｑ．Ｌｖ，Ｐ．Ｃａｏ，Ｅ．Ｃｏｈｅｎ，Ｋ．Ｌｉ，Ｌｉ，ａｎｄ  Ｓ．Ｓｈｅｎｋｅｒ，“Ｓｅａｒｃｈ  ａｎｄ  ｒｅｐｌｉｃａｔｉｏｎ  ｉｎ  ｕｎｓｔｒｕｃｔｕｒｅｄ  ｐｅｅｒ−ｔｏ−Ｐｅｅｒ  ｎｅｔｗｏｒｋｓ，”ｐｒｏｃｅｄｉｎｇｓ  ｏｆ  １６ｔｈ  ＡＣＭ  Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｃｏｎｆｅｒｅｎｃｅ  ｏｎ  Ｓｕｐｅｒｃｏｍｐｕｔｉｎｇ（ＩＣＳ’０２），Ｊｕｎｅ  ２００２．
【非特許文献２】後藤，阿多，村田：“Ｐ２Ｐネットワークにおけるサービス安定性向上のためのレプリケーション配置手法，”信学技報ＮＳ２００２−１５２，Ｏｃｔ，２００２．
【非特許文献３】能上，内田：“Ｐｕｒｅ型Ｐ２Ｐにおけるファイル検索＆レプリケーションについて、”信学総大２００４（２００４年３月）．
【発明の開示】
【発明が解決しようとする課題】
【０００５】
レプリケーション手法において、複数のコンテンツが対象である場合に、各サーバント内のメモリは有限であるために、多数のコンテンツのレプリカが何度も複製されると、メモリの空き容量が不足してレプリカを作成できなくなる。このような場合に、古くなって他のサーバントから参照あるいは検索されなくなったレプリカに関しては、それを削除してメモリ空間を確保し、直近で必要とされるレプリカ用にメモリ空間を確保し、逆に、ファイル検索や転送要求が多い場合には、さらにレプリケーションを実行することによりレプリカを作成して負荷を分散し、レプリケーションシステムを支えることが考えられる。
【０００６】
（目的）
本発明の目的は、ファイルごとに、そのときの要求度合いを考慮して、レプリカ数を制御することができ、あるファイルに関する負荷を平滑化させることが可能なピュアー型Ｐ２Ｐ通信における動的レプリカ制御機能を具備した装置を提供することにある。
【課題を解決するための手段】
【０００７】
本発明によるピュアー型Ｐ２Ｐ通信における動的レプリカ制御方法は、あらかじめ定められた核サーバントＳの近傍において、あるファイルｋの混雑具合Ｃｋ（ＧＮ｛Ｓ（ｔ）｝）の値をみて、混雑具合がある閾値α１より高いときには、サーバントＳがそのファイルｋに関してレプリケーションを行ってレプリカを増加することにより負荷を分散させ、また混雑具合がある閾値α２より低いときには、自身が持つレプリカを消去することにより、レプリカ数の最適化を図り、結果的に負荷の平均化を図ることを特徴としている。
【０００８】
Ｐ２Ｐ型通信においては、ある時刻において、ある特定のファイル探索及び転送要求が集中しそうなときには、レプリケーションを行って、なるべく「物理的な空間（ネットワーク）上での負荷分散」がなされるようにすると良い。しかし、レプリケーションを行うということは、各サーバント内のメモリを使用することになるため、余分なリソースを使用することにもなる。
そこで、必要な分だけのレプリカ数をその要求数に従って時間的にダイナミックに変更して常に最適な数を保持できるように制御する。しかも、そのときに「混雑度」を定義してその値により制御を行う手法を用いる。
【０００９】
本発明のよるピュアー型Ｐ２Ｐ通信における動的レプリカ制御を行い、各サーバントとして用いられる装置は、自分自身の近傍（近傍１と近傍２（これらの定義は後述する））におけるヒット数の管理手段と、自分自身の持つファイルごとに混雑度の計算を行う手段と、現時点における各レプリカファイルの持つレーティングを計算する手段と、閾値α１と混雑度を比較してレプリケーションを実行する手段と、閾値α２と混雑度を比較してレプリカを消去する手段とを有することを特徴としている。
【発明の効果】
【００１０】
本発明によれば、Ｐ２Ｐ型通信を行う際に、網内の問い合わせやダウンロード要求が集中しそうな対象ファイルに対してレプリケーションを行って分散配置させ、ファイル送信要求数、検索要求数が依然として多いときには、さらにレプリケーションを実行して負荷の分散を行い、逆に、ファイル要求、検索要求数が減少してきたときには、ファイルの存続時間を計測しておき、その値がある一定以下になれば、そのサーバント内のレプリカを消去する。以上のことを実行することにより、あるファイルに関する負荷を平滑化させることが可能となる。
【発明を実施するための最良の形態】
【００１１】
以下、本発明の原理および実施例について、図面に従って詳細に説明する。
（定義）
Ｐ２Ｐネットワークにおいて、あるサーバントの近傍を次のように定義する。
〔近傍の定義１〕
当該サーバントからＮホップ先のサーバントまでの範囲内にある全てのサーバントを言う。このとき、特に『サーバントＳのＮー位置近傍サーバント』と呼ぶことにする。
【００１２】
〔近傍の定義２〕
当該サーバントから、ある時刻においてＰｉｎｇ情報を送出し、Ｐｏｎｇが戻ってくるまでの時間（以下では「応答時間」と呼ぶ）がｔ１秒以内である全てのサーバントを言う。
ここで、あるサーバントＳの近傍に含まれるサーバントを「サーバントＳのｔ１−時間近傍サーバント」と呼ぶことにする。
【００１３】
また、近傍の中心となるサーバントを「核サーバント」と呼び、次のように定義する。
〔核サーバントの定義〕
「レベルＭ核サーバント」とは、ディグリー（隣接サーバントへ直接伸ばしている腕の数）がＭ以上のサーバントのことであり、その周りに「近傍」が定義されうるサーバントのことを意味する。
（核サーバントＳの近傍に他の核サーバントが含まれることもあるうる）。
【００１４】
ここで、ある時刻ｔにおけるサーバントＳのＮー近傍サーバントの集合をＧＮ｛Ｓ（ｔ）｝と表わすことにする。このとき、時刻ｔにおけるサーバントＳのファイルｋに関する混雑度Ｃｋ（ＧＮ｛Ｓ（ｔ）｝）は、次のようにして評価する。
すなわち、あるサーバントｉ（∈Ｇ｛Ｓ（ｔ）｝）のファイルｋの混雑度に関するある指標をＣｉ，ｋ（ｔ）とするとき、
サーバントＳのファイルｋに関する混雑度は、
Ｃｋ（ＧＮ｛Ｓ（ｔ）｝）＝ΣＣｉ，ｋ（ｔ）
ｉ∈ＧＮ｛Ｓ（ｔ）｝
で与えられるものとする。
このとき、この値を閾値として、レプリカ数が制御される（請求項１参照）。
【００１５】
（実施例１）
ここで、上記混雑度の中のＣｉ，ｋ（ｔ）として、次の項目が考えられる。
（１）そのサーバントを単位時間に通過するファイルｋに関するＰｉｎｇやＰｏｎｇの数ｍ１、
（２）そのサーバントを単位時間に通過するファイルｋに関するＱｕｅｒｙの数ｍ２、
（３）そのサーバントを単位時間に通過するファイルｋに関するＱｕｅｒｙＨｉｔの数ｍ３、
（４）そのサーバントのＣＰＵ使用率の直近Ｎ単位時間の平均値ｍ４、
（５）そのサーバントにおいてＨｉｔしたファイルｋのダウンロード（提供する側）の実行回数ｍ５、
などが考えられる。なお、これらのうち、有力なものは、上記（３）と（５）であると考えられる。
【００１６】
いま、混雑度としてｍ３（またはｍ５）を採用した場合に、あるファイルｋの混雑度ｍ３（またはｍ５）の値をみて、この値が予め定められた閾値α１より高いときには、サーバントＳがそのファイルｋに関してレプリケーションを行って、レプリカを増やすことで負荷を分散させ、また、混雑度ｍ３（またはｍ５）の値が予め定められた閾値α２より低いときには、サーバントＳ自身が持つレプリカを消去することで、レプリカ数の最適化を図る。
【００１７】
（実施例２）
図３は、本発明の実施例２に係る有限存続のファイルによるレプリカファイル消去法を示す説明図である。
実施例２では、Ｐ２Ｐ型通信を行う各サーバントでレプリケーションを実施する場合に、レプリカが生成された後にメモリ内に存続する時間ＴＴＬを定義し、また、ファイルについて時間とともに減衰する関数Ｆ（ｔ）を定義し、このファイルが検索されて、ヒットする度ごとに関数Ｆ（ｔ）をリセットして予め定めた値を持たせて、再び減衰を続行し、そのファイルの値が０になったときにそのファイルを消去する。
【００１８】
図３では、有限存続のファイルによるレプリカファイルの消去法として、例１と例２の２種類の計算例を示している。
レプリカ毎にメモリ内に存続させる時間（ファイルＴＴＬ）を２種類の方法（例１と例２）で定めておき、時間が到来したならばそのレプリカファイルを消去するのである。例１は減衰関数Ｆ（ｔ）による場合であり、例２はヒット数の観測に基づいて存続時間τ（ｋ）を与える場合である。
【００１９】
（例１）
減衰関数Ｆ（ｔ）による場合は、ファイルｋについて時間とともに減衰する関数Ｆ（ｔ）を定義しておき、そのファイルが検索されて、ヒットする度ごとに関数Ｆ（ｔ）の値に１を加算する。図３（例１）では、時刻ｔ１，ｔ２，ｔ３で検索がヒットしたので、減衰した値に１が加算されている。１が加算された後、再び減衰を続け、その値が０になったときにファイルｋが消去される。例１では、ｔ１がレプリカが作成された時点、ｔ２，ｔ３がレプリカが参照およびダウンロードされた時点、総存続時間はｔ４−ｔ１となっている。
【００２０】
（例２）
この場合には、ヒット数の観測に基づいて存続時間τ（ｋ）を与える方法であって、ファイルが生成された時刻から一定時間内に、検索されヒットし、またダウンロードされた数を考慮して、ファイル消去までの時間の長さを決定する。図３（例２）では、ｋ回検索ヒットおよびダウンロードしたので、与えられた存続時間τ（ｋ）の後にファイルが消去されている。この場合、存続時間τ（ｋ）＝√ｋ＊ｔ０で表わされ、総存続時間＝ｔ３−ｔ１で表わされている。
【００２１】
Ｐ２Ｐ型通信における各サーバントでレプリケーションが実施される場合において、有限のメモリ内における各レプリカファイルの任意の時点でのレプリカの優先順位を、その時点における持ち点数（ここでは、レーティングと呼ぶ）により決定する。図３に示すレプリカ存続時間を観測し、レーティング関数θがある閾値α２を下回れば削除することが考えられる。
【００２２】
図１は、本発明の一実施例に係るサーバントのレプリカ数制御法を示すフローチャートである。
まず、Ｋの値の初期値０をセットし（ステップ１０１）、その値のインクリメントが行われ（ステップ１０２）、このサーバント自身の近傍における混雑度ＣＫが閾値α１より大きな値であるか否かが判別され（ステップ１０３）、もし閾値α１より大きければ新しいレプリケーション実行のサブルーチン内に移って、それが実行される（ステップ１０４）。また、もし、混雑度ＣＫが閾値α１より小さければ、サーバント自身の近傍における混雑度ＣＫ閾値α２より大きな値か否かが判別され（ステップ１０５）、もし小さければ、観測サブルーチン（点線内の１０７）に移る。
【００２３】
ステップ１０５の判別の結果、混雑度ＣＫが閾値α２より大きければ、Ｋの値がＫｍａｘと比較され（ステップ１０６）、ＫとＫｍａｘが同じ値であればステップ１０１へ、異なる値であればステップ１０２へ、それぞれ飛ぶ。
観測サブルーチン内では、このレプリカに関するレーティング関数θの値の観測がスタートし（ステップ１０８）、これとは独立にステップ１０６から再度処理がスタートする。
観測サブルーチン内では、レーティング関数θの値が閾値と比較され（ステップ１０９）、閾値より小さければ、このレプリカがメモリから削除され（ステップ１１０）、サブルーチンが終了する（ステップ１１１）。また、閾値より大きければ、観測が継続され（ステップ１１２）、またステップ１０９に戻る。
【００２４】
図２は、本発明の一実施例に係るサーバントのハードウェア構成図である。
図２において、１はサーバント（端末装置）であり、通常のＰＣの機能を持ついわゆる端末であるが、Ｐ２Ｐアプリケーションレイヤとしてはサーバントとして見えるものである。２は、通常のタイマである。３は情報計算部であって、レーティング関数計算部４とレーティング情報計算部５を内蔵する。レーティング関数計算部４は、各レプリカファイルのレーティング関数θを計算する機能を有し、レーティング情報計算部５は、レーティング、すなわち各ファイルのレプリカの優先順位である持ち点数を計算する機能を有する。
【００２５】
図２において、６は情報管理／転送部であり、レプリカ検索情報管理部７、ヒット情報管理部８、近傍管理部９および要求情報転送部１０を内蔵する。レプリカ検索情報管理部７は、他のサーバントからのレプリカ検索情報で管理する機能を有する。ヒット情報管理部８は、その検索が本サーバント１内でヒットした情報を管理する機能を有する。近傍管理部９は、当該サーバントの近傍情報を管理する機能を有する。要求情報転送部１０は、ヒットしたレプリカを他サーバントへ転送する機能を有する。
【００２６】
図２において、１１はメモリ部であり、メモリ容量管理／制御部１２とメモリ１３を内蔵する。メモリ容量管理／制御部１２は、メモリの残容量を管理したり、不要な情報を削除したり、新しい情報を書き込んだりする制御機能を有する。メモリ１３は、各種レプリケーション情報やヒット情報、保持しているファイルに関する情報、サーバントのＩＰアドレス、等を格納／蓄積する場所である。
【００２７】
図２において、１４はレプリケーション実行部であり、レプリケーション情報解析部１５とレプリケーションアクション決定／実行部１６とを内蔵する。レプリケーション情報解析部１５は、どのファイルをいつどのようなタイミングでレプリケーションするかを解析する機能を有している。レプリケーションアクション決定／実行部１６は、レプリケーションに関してとるべきアクションを決定し、実行する機能を有する。
【００２８】
図２において、１７はＰＡＤ（パケット組み立て／分解部）であり、各種情報をＩＰパケットに変換したり、その逆にＩＰパケットから各種情報への分解を行ったりする機能を有する。１８はパケット送信部であり、ＩＰパケットを他のサーバントに送出する機能を有している。１９はパケット受信部であり、網内の他のサーバントからの到着パケットを受信する機能を有する。２０は、このサーバントが接続されているＩＰ網（インターネット）である。
【００２９】
また、サーバントは、次の機能を有している。
１）ある時間単位（Ｔ）を定義する。この時間間隔ごとに、自身の持つレプリカファイル毎のヒット数を記録し、現時点における各レプリカファイルの持つレーティングを計算する機能を有する。
２）ある時刻において、レプリケーションを実行しようとするとき、メモリ容量が不足することが判明した場合、その時点において、最小のレーティングを持つレプリカファイルをメモリ内から消去する機能を有する。新しいレプリケーションが実行できるメモリ容量が確保できるまで、次々にレーティング最小のレプリカファイルを消去する。
【００３０】
３）レプリカファイル毎にファイルＴＴＬを管理し、ファイルＴＴＬの値が０になったならば、その該当するレプリカファイルをメモリから消去する機能を有する。
４）自身が持つレプリカに対して、過去に問い合わせがあった時刻と減衰関数Ｆ（ｔ）とからなる情報セットをサーバント毎に格納しておく機能を有する。
【００３１】
５）サーバントは、これらの情報セットを、レーティングの大きい順番に並べることができる機能を有する。そして、メモリ内に新しいレプリカを格納しようとする場合に、メモリに容量が不足する場合には、上記の優先度順に並べられた情報セットの情報に基づいて、新しいレプリカを格納するために必要なメモリ容量を確保できるまで優先度が低いレプリカファイルから順番に消去していく機能を有する。
【００３２】
図２に示すサーバント１は、コンピュータ制御により動作する装置であって、情報計算部３、情報管理／転送部６、レプリケーション実行部１４およびメモリ部１１は、いずれもＣＰＵ、演算回路、レジスタ、メモリ等により処理される。すなわち、予めプログラムされた一連の命令をその順序に従って解釈実行していく逐次制御動作であり、実行の際に使用されるデータも、命令語と同じメモリに格納されている。そして、データの取出し、書込み、その処理を逐行していくための各種レジスタ、制御ゲートなどが配置される。
データはバスを介してレジスタとメモリ間、レジスタと入出力装置間、レジスタと各種機能装置間で転送されるようになる。
【００３３】
図１に記載されたフローチャートをプログラム化し、完成されたプログラムをＣＤ−ＲＯＭなどの記録媒体に格納しておけば、サーバント内のレプリケーション実行部１４のコンピュータに記録媒体を装着して、プログラムをコンピュータにインストールし、実行させることにより、本発明のレプリカ制御方法を容易に実現することができる。また、このプログラムをインターネットを介して広く他のコンピュータにダウンロードすることで、このプログラムの汎用化が可能となる。
【図面の簡単な説明】
【００３４】
【図１】本発明の一実施例に係るサーバントのレプリカ制御方法の動作フローチャートである。
【図２】本発明の一実施例に係るサーバントのハードウェア構成図である。
【図３】本発明における有限存続のファイルＴＴＬによるレプリカファイル消去法の説明図である。
【符号の説明】
【００３５】
１：サーバント
２：タイマ
３：情報計算部
４：レーティング関数計算部
５：レーティング情報計算部
６：情報管理／転送部
７：レプリカ検索情報管理部
８：ヒット情報管理部
９：近傍管理部
１０：要求情報転送部
１１：メモリ部
１２：メモリ容量管理／制御部
１３：メモリ
１４：レプリケーション実行部
１５：レプリケーション情報解析部
１６：レプリケーションアクション決定／実行部
１７：ＰＡＤ
１８：パケット送信部
１９：パケット受信部
２０：ＩＰ網
【図１】
0004573732.tif 000002
【図２】
0004573732.tif 000003
【図３】
0004573732.tif 000004