[go: up one dir, main page]

JP2010009449A - 分散情報配置システム - Google Patents

分散情報配置システム Download PDF

Info

Publication number
JP2010009449A
JP2010009449A JP2008170116A JP2008170116A JP2010009449A JP 2010009449 A JP2010009449 A JP 2010009449A JP 2008170116 A JP2008170116 A JP 2008170116A JP 2008170116 A JP2008170116 A JP 2008170116A JP 2010009449 A JP2010009449 A JP 2010009449A
Authority
JP
Japan
Prior art keywords
node
cluster
cache
cache node
information
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
JP2008170116A
Other languages
English (en)
Inventor
Kazunori Miyoshi
一徳 三好
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 JP2008170116A priority Critical patent/JP2010009449A/ja
Publication of JP2010009449A publication Critical patent/JP2010009449A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Information Transfer Between Computers (AREA)
  • Computer And Data Communications (AREA)

Abstract

【課題】複数のキャッシュに要求をどのように振り分けるかを決定する負荷分散決定処理が特定の装置に集中しないようにする。
【解決手段】同じデータを記憶するキャッシュを備えた複数のノード装置1001−1〜1001−3がネットワークを介して接続される。ノード装置1001−1〜1001−3は、ユーザ端末1002−1、1002−2からデータのアクセス要求を受信したとき、自ノード装置および他のノード装置の負荷情報に基づいて、受信したアクセス要求を自ノード装置で処理するか、他の何れのノード装置で処理するかを判断する。ノード装置1001−1〜1001−3は、自ノード装置で処理すると判断したアクセス要求を自ノード装置で受け付けて処理を行い、何れかの他のノード装置で処理すると判断したアクセス要求は該当する他のノード装置へ転送する。
【選択図】図19

Description

本発明は、通信ネットワーク(以下NWと略す)上に情報のキャッシュを分散させる分散情報配置システムに関する。
近年、インターネットにおける情報コンテンツの配信サービスや、個人ユーザが情報コンテンツを発信して交換するピア・ツウ・ピアのネットワークサービスの利用が進んでいる。ネットワークを利用して情報コンテンツを配信する際、サーバ装置の処理能力などに制限があるため、処理性能を確保する目的で、1以上のキャッシュをネットワーク上に設け、一時的にサーバ装置のコンテンツを保持することが行われている。NW上にコンテンツのキャッシュを分散させる技術の一例が特許文献1に記載されている。
特許文献1に記載される技術(以下、本発明の関連技術と記す)では、サーバ装置がインターネットを介して複数のキャッシュクラスタに接続され、各キャッシュクラスタがアクセス網を介してクライアント端末に接続される。各キャッシュクラスタは、複数のキャッシュから構成される。サーバ装置は、クライアント端末からの配送要求を受信すると、各キャッシュの負荷などを考慮して何れかのキャッシュクラスタから最適なキャッシュを選択し、データ配送を指示する。データ配送を指示されたキャッシュは、データをクライアント端末へ配送する。またサーバ装置は、コンテンツのアクセス頻度に応じて、各キャッシュクラスタ内のキャッシュ数の増減を集中管理している。
特開2003−122658号公報
上述した本発明の関連技術では、複数のキャッシュに要求を振り分けることで負荷分散を図っているが、どのように要求を振り分けるかを決定する処理(負荷分散決定処理)が唯一のサーバ装置で行われるため、サーバ装置が処理のネックとなってシステム全体のスループットが低下するという課題がある。
本発明はこのような事情に鑑みて提案されたものであり、その目的は、複数のキャッシュに要求をどのように振り分けるかを決定する負荷分散決定処理自体を複数のノードに分散させることにより、特定の装置への負荷分散決定処理の集中を防止し、システム全体のスループットの向上を図ることにある。
本発明の第1の分散情報配置システムは、データを記憶するキャッシュと該キャッシュから前記データを読み出して端末装置に送信する手段とを備えた複数のノード装置がネットワークを介して接続された分散情報配置システムであって、前記ノード装置は、自ノード装置および他のノード装置の負荷情報を記憶する記憶手段と、前記端末装置から前記データのアクセス要求を受信したとき、前記記憶手段に記憶された負荷情報に基づいて、受信した前記アクセス要求を自ノード装置で処理するか、他の何れのノード装置で処理するかを判断する負荷分散手段と、自ノード装置で処理すると判断した前記アクセス要求を自ノード装置で受け付けて処理を行うサービス提供手段と、何れかの他のノード装置で処理すると判断した前記アクセス要求を該当する他のノード装置へ転送する通信手段とを備える。
本発明の第1の負荷分散方法は、データを記憶するキャッシュと該キャッシュから前記データを読み出して端末装置に送信する手段とを備えた複数のノード装置がネットワークを介して接続された分散情報配置システムにおける負荷分散方法であって、前記ノード装置のそれぞれが、前記端末装置から前記データのアクセス要求を受信したとき、自ノード装置および他のノード装置の負荷情報に基づいて、受信した前記アクセス要求を自ノード装置で処理するか、他の何れのノード装置で処理するかを判断するステップと、前記ノード装置のそれぞれが、自ノード装置で処理すると判断した前記アクセス要求を自ノード装置で受け付けて処理を行うステップと、前記ノード装置のそれぞれが、何れかの他のノード装置で処理すると判断した前記アクセス要求を該当する他のノード装置へ転送するステップとを含むことを特徴とする。
本発明の第1のノード装置は、データを記憶するキャッシュと該キャッシュから前記データを読み出して端末装置に送信する手段とを備えたノード装置であって、自ノード装置および他のノード装置の負荷情報を記憶する記憶手段と、前記端末装置から前記データのアクセス要求を受信したとき、前記記憶手段に記憶された負荷情報に基づいて、受信した前記アクセス要求を自ノード装置で処理するか、他の何れのノード装置で処理するかを判断する負荷分散手段と、自ノード装置で処理すると判断された前記アクセス要求を自ノード装置で受け付けて処理を行うサービス提供手段と、何れかの他のノード装置で処理すると判断された前記アクセス要求を該当する他のノード装置へ転送する通信手段とを備える。
本発明によれば、複数のノード装置のそれぞれがキャッシュ負荷分散決定機能を有するため、特定のノード装置に負荷分散決定処理が集中するのを防止でき、負荷分散決定処理の遅延によってシステム全体のスループットが低下するのを防止することができる。
また本発明によれば、複数のノード装置のそれぞれがキャッシュ負荷分散決定機能を有するため、負荷分散決定処理に関する単一故障点が無くなり、システムの可用性が向上する効果がある。
次に本発明の実施の形態について図面を参照して詳細に説明する。
図19を参照すると、本発明の第1の実施の形態に係る分散情報配置システムは、IPネットワーク上に分散する多数のノード装置1001のうち、複数のノード装置1001−1〜1001−9に同じ提供対象データを記憶し、これら複数のノード装置1001−1〜1001−9からユーザ端末1002−1〜1002−4に対して提供対象データを提供する。提供対象データとしては、或る種のファイルやデータベースなどが該当する。
図19に示されるシステムでは、同じ提供対象データ(説明の便宜上、データDとする)に関し、それをキャッシュしているノード装置は全部で9台あり、そのうちノード装置1001−1はデータDのオリジナルを記憶し、残り8台のノード装置1001−2〜1001−9はそのコピーを記憶する。ノード装置1001−1〜1001−9は、データDに関してそれぞれキャッシュノードとなる。また、データDのオリジナルを記憶するキャッシュノード1001−1は、コピーを記憶するキャッシュノード1001−2〜1001−9と区別するために、データDのオリジナルキャッシュノードと呼ぶ。
オリジナルキャッシュノード1001−1と2台のキャッシュノード1001−2、1001−3との合計3台は、データDに関して1つのクラスタ1004−1を形成している。同様に、3台のキャッシュノード1001−4〜1001−6は、データDに関して別の1つのクラスタ1004−2を形成し、3台のキャッシュノード1001−7〜1001−9は、データDに関してさらに別の1つのクラスタ1004−3を形成している。
各クラスタ1004−1〜1004−3では、そのクラスタを構成する1以上のキャッシュノードのうちの1台が、代表ノードとして機能する。オリジナルキャッシュノード1001−1を含むクラスタ1004−1では、オリジナルキャッシュノード1001−1が代表ノードとなる。オリジナルキャッシュノード1001−1を含まないクラスタ1004−2、1004−3では、任意のキャッシュノードが代表ノードとなる。図19の状態では、ノード1001−4、1001−7が代表ノードになっている。
各クラスタ1004−1〜1004−3を構成するキャッシュノード間には、クラスタ内オーバーレイネットワーク1005−1〜1005−3が形成されている。また、各クラスタ1004−1〜1004−3の代表ノード1001−1、1001−4、1001−7間には、クラスタ間オーバーレイネットワーク1006が形成されている。オーバーレイネットワークは、ノード装置1001間をつなぐIPネットワークのリンクを用いて、その上位層に形成した仮想的なネットワークである。同じクラスタ1004−1〜1004−3に属するキャッシュノード間では、クラスタ内オーバーレイネットワーク1005−1〜1005−3を通じて、自クラスタの構成メンバとなるノード装置のグローバルIPアドレスや負荷情報などが交換される。クラスタ1004−1〜1004−3間では、クラスタ間オーバーレイネットワーク1006を通じて、各クラスタの代表ノードのグローバルIPアドレスや各クラスタの構成メンバとなるノード装置の数などが交換される。
また図19には、IPネットワークに接続された幾つかのDNS(Domain Name Server)サーバ1003−1〜1003−6が図示されている。
ノード装置1001、ユーザ端末1002およびDNSサーバ1003間は、既存のIPネットワークによる通信が可能である。
次に、上述のように構成された本実施の形態の分散情報配置システムの概略動作を説明する。
データDをキャッシュしているキャッシュノード1001−1〜1001−9は、自ノードの負荷情報を計測し、クラスタ内オーバーレイネットワーク1005−1〜1005−3を通じて、同じクラスタに属する他のキャッシュノードと負荷情報を交換している。
また、各キャッシュノード1001−1〜1001−9は、自ノードの所属するネットワークのDNSサーバ1003に対して、自ノードをネットワーク上で一意に識別可能な識別子であるグローバルIPアドレスと、ネットワーク内の他のノードがアクセスする場合に用いるデータDの場所を指し示す記述方式であるURL(Uniform Resource Locator)との対応関係を登録する。
図19では、キャッシュノード1001−1が属するネットワークのDNSサーバはDNSサーバ1003−1であるため、キャッシュノード1001−1はDNSサーバ1003−1に、自ノードのグローバルIPアドレスとデータDのURLとの対応関係を登録している。同様に、キャッシュノード1001−2はDNSサーバ1003−2に対して、キャッシュノード1001−3はDNSサーバ1003−3に対して、キャッシュノード1001−4はDNSサーバ1003−4に対して、キャッシュノード1001−5、1001−6はDNSサーバ1003−5に対して、キャッシュノード1001−7〜1001−9はDNSサーバ1003−6に対して、それぞれ自ノードのグローバルIPアドレスとデータDのURLとの対応関係を登録している。
この結果、DNSサーバ1003−5には、データDのURLに対してキャッシュサーバ1001−5とキャッシュサーバ1001−6の2種類のグローバルIPアドレスが登録される。また、DNSサーバ1003−6には、データDのURLに対してキャッシュサーバ1001−7〜1001−9の3種類のグローバルIPアドレスが登録される。各DNSサーバ1003は、同じURLに対して複数のグローバルIPアドレスが登録された場合、URLに対応するIPアドレスの問い合わせに対しては、その何れか1つのIPアドレスを応答する。このとき、好ましくは、複数のグローバルIPアドレスがほぼ均等に使用されるように、URLに対応するグローバルIPアドレスの問い合わせに対する応答中に含めるグローバルIPアドレスを決定する。
今、ユーザ端末1002−1〜1002−4の何れかの利用者、例えばユーザ端末1002−1の利用者が、データDをアクセスする場面を想定する。利用者がユーザ端末1002−1で動作するWebブラウザのURL入力テキストボックスにデータDのURLを入力すると、Webブラウザは、最寄りのDNSサーバ1003−3に対して、IPアドレスの検索要求を送信する(図19の矢印1007−11)。DNSサーバ1003−3は、データDのURLに対応してキャッシュノード1001−3のグローバルIPアドレスが登録されているため、キャッシュノード1001−3のグローバルIPアドレスを応答としてユーザ端末1002−1に返す(矢印1007−12)。ユーザ端末1002−1のWebブラウザは、求まったグローバルIPアドレスを使って、キャッシュノード1001−3に対してデータDの取得を要求するリクエストを例えばHTTPプロトコルにより送信する(矢印1007−13)。
キャッシュノード1001−3は、自ノードおよび同じクラスタ1004−1内の他のキャッシュノード1001−1、1001−2の負荷情報に基づいて、何れのキャッシュノードで当該リクエストを処理するかを判断する。そして、例えばキャッシュノード1001−2をリクエスト処理先に決定したとすると、キャッシュノード1001−3は当該リクエストをクラスタ内オーバーレイネットワーク1005−1経由でキャッシュノード1001−2に転送する(矢印1007−14)。キャッシュノード1001−2は、受信したリクエストを受け付け、要求されたデータを自ノードのキャッシュから読み出し、ユーザ端末1002−1へレスポンスを送信する(矢印1007−15)。
次に、ユーザ端末1002−2の利用者が、データDをアクセスする場面を想定する。利用者がユーザ端末1002−2で動作するWebブラウザのURL入力テキストボックスにデータDのURLを入力すると、Webブラウザは、最寄りのDNSサーバ1003−1に対して、IPアドレスの検索要求を送信する(図19の矢印1007−21)。DNSサーバ1003−1は、データDのURLに対応してキャッシュノード1001−1のグローバルIPアドレスが登録されているため、キャッシュノード1001−1のグローバルIPアドレスを応答としてユーザ端末1002−2に返す(矢印1007−22)。ユーザ端末1002−2のWebブラウザは、求まったグローバルIPアドレスを使って、キャッシュノード1001−1に対してデータDの取得を要求するリクエストを例えばHTTPプロトコルにより送信する(矢印1007−23)。
キャッシュノード1001−1は、自ノードおよび同じクラスタ1004−1内の他のキャッシュノード1001−2、1001−3の負荷情報に基づいて、何れのキャッシュノードで当該リクエストを処理するかを判断する。そして、例えば自ノード1001−1をリクエスト処理先に決定したとすると、キャッシュノード1001−1は、受信したリクエストを受け付け、要求されたデータを自ノードのキャッシュから読み出し、ユーザ端末1002−2へレスポンスを送信する(矢印1007−24)。
次に、ユーザ端末1002−3の利用者が、データDをアクセスする場面を想定する。利用者がユーザ端末1002−3で動作するWebブラウザのURL入力テキストボックスにデータDのURLを入力すると、Webブラウザは、最寄りのDNSサーバ1003−6に対して、IPアドレスの検索要求を送信する(図19の矢印100−31)。DNSサーバ1003−6は、データDのURLに対応して複数のキャッシュノード1001−7〜1001−9のグローバルIPアドレスが登録されているため、その何れか、例えばキャッシュノード1001−9のグローバルIPアドレスを応答としてユーザ端末1002−3に返す(矢印1007−32)。ユーザ端末1002−3のWebブラウザは、求まったグローバルIPアドレスを使って、キャッシュノード1001−9に対してデータDの取得を要求するリクエストを例えばHTTPプロトコルにより送信する(矢印1007−33)。
キャッシュノード1001−9は、自ノードおよび同じクラスタ1004−3内の他のキャッシュノード1001−7、1001−8の負荷情報に基づいて、何れのキャッシュノードで当該リクエストを処理するかを判断する。そして、例えばキャッシュノード1001−8をリクエスト処理先に決定したとすると、キャッシュノード1001−9は当該リクエストをクラスタ内オーバーレイネットワーク1005−3経由でキャッシュノード1001−8に転送する(矢印1007−34)。キャッシュノード1001−8は、受信したリクエストを受け付け、要求されたデータを自ノードのキャッシュから読み出し、ユーザ端末1002−3へレスポンスを送信する(矢印1007−35)。
次に、ユーザ端末1002−4の利用者が、データDをアクセスする場面を想定する。利用者がユーザ端末1002−4で動作するWebブラウザのURL入力テキストボックスにデータDのURLを入力すると、Webブラウザは、最寄りのDNSサーバ1003−6に対して、IPアドレスの検索要求を送信する(図19の矢印1007−41)。DNSサーバ1003−6は、データDのURLに対応して複数のキャッシュノード1001−7〜1001−9のグローバルIPアドレスが登録されているため、その何れか、例えば最も最近選択していないキャッシュノード1001−7のグローバルIPアドレスを選択し、応答としてユーザ端末1002−4に返す(矢印1007−42)。ユーザ端末1002−4のWebブラウザは、求まったグローバルIPアドレスを使って、キャッシュノード1001−7に対してデータDの取得を要求するリクエストを例えばHTTPプロトコルにより送信する(矢印1007−43)。
キャッシュノード1001−7は、自ノードおよび同じクラスタ1004−3内の他のキャッシュノード1001−8、1001−9の負荷情報に基づいて、何れのキャッシュノードで当該リクエストを処理するかを判断する。そして、例えば自キャッシュノード1001−7をリクエスト処理先に決定したとすると、キャッシュノード1001−7は当該リクエストを受け付け、要求されたデータを自ノードのキャッシュから読み出し、ユーザ端末1002−4へレスポンスを送信する(矢印1007−44)。
以上のように本実施の形態の分散情報配置システムでは、データDの各キャッシュノード1001−1〜1001−9は、ユーザ端末からデータDのリクエストを受信した場合、自ノードの所属するクラスタ1004−1〜1004−3内の何れのキャッシュノードで当該リクエストを処理すべきかを各ノードの負荷情報に基づいて決定する機能を有するため、同一の提供データに対するユーザ端末からのアクセスに係る負荷を各クラスタ1004−1〜1004−3毎にそれに含まれる1以上のキャッシュノード間で分散することができる。
また、リクエストを処理するノードを決定する機能が各キャッシュノードに装備されているため、リクエストを処理するノードを決定する処理自体の負荷分散も可能である。
さらに、各キャッシュノード1001−1〜1001−9は、自ノードの所属するネットワークのDNSサーバ1003に対して、自ノードのグローバルIPアドレスとデータDのURLとの対応関係を登録するため、互いに異なるネットワークに属する複数のユーザ端末がDNSサーバ1003をアクセスしてデータDのURLに対応するキャッシュノードのグローバルIPアドレスを取得する場合に、それぞれ異なるキャッシュノードのグローバルIPアドレスを取得することになる。この結果、複数のユーザ端末がデータDのリクエストを出すキャッシュノードを分散させることができる。
また、同じデータDのURLに対応して複数のキャッシュノードのグローバルIPアドレスが登録されているDNSサーバ1003において、複数のグローバルIPアドレスがほぼ均等に使用されるように、URLに対応するグローバルIPアドレスの問い合わせに対する応答中に含めるグローバルIPアドレスを決定すれば、同じネットワークに属する複数のユーザ端末がデータDのリクエストを出すキャッシュノードを分散させることができる。
図19に示されるシステムでは、各クラスタ1004−1〜1004−3に存在するキャッシュノードの数はそれぞれ3台であった。しかし、このクラスタ内におけるキャッシュノードの数は固定ではなく、データDに対する需要に応じて増減される。キャッシュノード数の増減は、各クラスタ毎にそのクラスタの代表ノードの制御の下に実施される。
図19に示されるシステムでは、データDに関するクラスタの数は3つであった。しかし、データDに関するクラスタの数は固定ではなく、データDに対する需要に応じて増減される。具体的には、初期の状態では、オリジナルキャッシュノード1001−1だけを含むクラスタ1004−1が1つ存在するだけである。データDに対する需要が増加すると、代表ノードであるオリジナルキャッシュノード1001−1は、クラスタ1004−1内に新たなキャッシュノード1001−2、1001−3を生成する。そして、更に需要が増加し、1クラスタ内におけるキャッシュノード数の最大値を超えるなどの所定の条件が成立すると、クラスタ1004−1の代表ノードは、データDを未だキャッシュしていない他のノード、例えばノード1001−4に対してデータDのコピーを添えて新規クラスタの生成指示を送信する。ノード1001−4は、データDのコピーを自ノードのキャッシュに記憶し、自ノードを代表ノードとする新たなクラスタ1004−2を生成する。以降、再び新クラスタ生成条件が成立すると、クラスタ1004−1あるいはクラスタ1004−2の代表ノードの制御の下に、新クラスタ1004−3が生成される。
他方、データDに対する需要が減退すると、それにあわせて各クラスタ1004−1〜1004−3のキャッシュノード数が減少していく。そして、例えばクラスタ1004−3におけるキャッシュノード数が0になると、クラスタ1004−3が消滅し、クラスタ1004−1とクラスタ1004−2の2つになる。同様にクラスタ1004−2におけるキャッシュノード数が0になると、クラスタ1004−2が消滅し、クラスタ1004−1だけが残る。
このように本実施の形態の分散情報配置システムでは、データDに対する需要に応じて、キャッシュノード数だけでなく、クラスタ数自体も増減する。
次に本発明の実施例について図面を参照して詳細に説明する。
本実施例は、NW上に存在する情報の分散的キャッシュ配置問題について、情報への需要、すなわちアクセス数に応じて、配置の量および場所を自律分散的に決定する、需要依存で繁栄と衰退とを繰り返す分散情報配置システム(以下、単位分散情報配置システムと記す)に関する。
例えば、粘菌は餌の多寡によって、餌の多い場所では、単細胞生物として生活し、一方で餌の少ない場所では、集合して多細胞生物となり、餌の多い場所を求めて移動する。また、卵生メダカのノソブランキウスおよびシノレビアスは、一年の間に雨季と乾季が交代するサバンナ(草原)に住み、雨が降って水溜りが出来ると、土の中にあった卵が孵り、瞬く間に成長し、土の中に卵を生み、やがて乾季が来て池が干上がると親は死に、土の中に産みつけられた卵は次の雨季が来るのを、わずかな湿り気を残すのみの乾いた池の底の土の中で、辛抱強く待つ。このように生物の中には自身の形態を変えて環境に適応する種類がいる。また、生物は密度依存で個体の量を制御することによって、種の繁栄を維持することが知られており、このダイナミクスは一般にロジスティック方程式で記述される。さらに、生物にはヘルパー遺伝子が存在し、種全体から見れば利己的であるが個体レベルでは利他的な社会的行動を取ることによって、種の繁栄を維持することも知られている。
以上に述べたような特性を持つことによって生物は、環境変動に対して堅牢な生態系を作り出している。本実施例は、以上の説明における「生物種」をNWにおける「情報」と読み替えることで実現されるものであり、それら生物種の適応機能を通信NW上で実現するものである。そのため、従来の分散キャッシュ配置に関する技術とは、その目的を異にする。すなわち、本実施例の目的は、通信NW上の情報へのアクセス数に適応して、情報のキャッシュ配置の量と質を利他的かつ協調的な仕組みによって自律分散的に決定することで、効率的な情報の分散キャッシュ配置を実現するとともに、一度廃れてアクセスの無くなった情報の効率的な再生を実現することにある。
[本実施例の概要]
基本的な仕組みとして、「情報の必要度」を数値で定義し、これを情報のプロパティとして情報に付与する。情報のキャッシュ元にアクセスがあった場合、1アクセス毎に「情報の必要度」は増加し、また一定時間毎に減少する。この「情報の必要度」の一定時間毎の減少により、情報へのアクセス頻度、換言すれば「情報の鮮度」が決定される。以下では、情報へのアクセス数が増加する場合と、減少する場合について手段と作用を説明する。なお、以下では情報のソース元のサーバおよび情報をキャッシュするサーバを「キャッシュノード」と表記する。
(1)情報へのアクセス数が増加する場合
ステップ1:
情報とある値の「情報の必要度」を最初の情報元のキャッシュノードに配置する。以下ではこのキャッシュノードを「オリジナルキャッシュノード」と呼ぶ。同時に自分を代表キャッシュノードとする下位クラスタを生成し、当該キャッシュノードのIPアドレスと「『情報の必要度』の数値」とを下位クラスタ内用の下位クラスタマップに登録する。下位クラスタ内用の下位クラスタマップは各下位クラスタ内のキャッシュノードが分散的に所有し、キャッシュノードは下位クラスタ内用の下位クラスタマップに登録された複数のキャッシュノードとオーバーレイで下位クラスタNW内通信を行う。
さらにオリジナルノードは、自身の所属するNWのDNSサーバに自身のグローバルIPアドレスと、NW内の他のノードがアクセスする場合に用いるキャッシュ情報の場所を指し示す記述方式であるURLを登録しておく。
ここで、Internet上の一般的なキャッシュ情報へのアクセス手段について説明する。Internetの通常の通信では、情報へアクセスしたい一般的なノードBは、次の(a)または(b)のいずれかの方法により情報をキャッシュしているサーバにアクセスを行う。
(a)ノードBがキャッシュノードのURLは知っているが、IPアドレスは知らない場合、URLを指定して、そのIPアドレスをDNSサーバに問い合わせる。DNSサーバは、自身がそのURLとIPアドレスの対応を知っていれば、そのIPアドレスをInternet上の通常の通信を用いて、ノードBに伝える。もし、DNSサーバがそのURLとIPアドレスの対応を知らなければ、DNSサーバは他のDNSサーバに問い合わせる、ということを繰り返し、最終的にそのURLとIPアドレスの対応を知っているDNSサーバがノードBにIPアドレスを伝える。
(b)ノードBがIPアドレスを知っている場合は、直接キャッシュノードにアクセスできる。
以下では(a)の場合を前提に説明を続ける。
ステップ2:
情報へのアクセスがあるたびにキャッシュノードの「『情報の必要度』の数値」が増加する。
ステップ3:
アクセスが増えて「『情報の必要度』の数値」がある閾値1を超えると、数値の変動を考慮して、その時点から一定時間の「『情報の必要度』の数値」の平均値を取得する。一定時間の「『情報の必要度』の数値」の平均値がある閾値1を超えると代表キャッシュノードはある物理的あるいは論理的NW距離にある、次数の大きなキャッシュノードに情報をキャッシュしてもらえないかランダムに通常のInternetにおける通信手法によって打診し、承諾をもらったキャッシュノードにキャッシュさせてもらう。ここで、複数の承諾をもらった場合には、それらの全て、あるいはそれらのうち次数の大きなキャッシュノードに対して、キャッシュさせてもらう。この新規追加されたキャッシュノードは下位クラスタ内の代表キャッシュノード宛に、新規追加されたキャッシュノードが下位クラスタに属することを認識してもらうための「entryメッセージ」を通常のInternetにおける通信手法によって送る。
新規追加キャッシュノードへの依頼を行った代表キャッシュノードは、新規追加されたキャッシュノード宛に、「entryメッセージ」を受信したことを示すメッセージを下位クラスタ内通信によって送り、同時に下位クラスタマップに必要な情報を要求する。要求を受けた新規追加キャッシュノードは、自身のキャッシュノードに関する要求情報を下位クラスタ内通信によってキャッシュノードへの依頼を行った代表キャッシュノードへ送る。
追加キャッシュノード依頼を行った代表キャッシュノードは、新規追加キャッシュノードから受け取った要求情報をもとに下位クラスタマップを更新し、更新された下位クラスタマップを、下位クラスタ内通信によって代表キャッシュノードの所属する下位クラスタ内の他のキャッシュノードに送る。各キャッシュノードは各自の持つ下位クラスタ用の下位クラスタマップを更新して、登録完了のメッセージを、キャッシュノード依頼を行ったキャッシュノードに、下位クラスタ内通信によって送る。なお、新規キャッシュノードの下位クラスタへの追加は、アクセス数の変動を考慮して、一定時間待ってから行う。この時点でのユーザからのアクセス先は、代表キャッシュノードとする。
ステップ4:
下位クラスタ内に存在する、代表キャッシュノードを含む複数のキャッシュノードらは、下位クラスタ内通信を一定時間間隔毎または不定時間間隔で行うことによって、互いの「生存」と「『情報の必要度』の数値」などの情報を交換し合う。これによって下位クラスタ内のキャッシュノードの下位クラスタ内用の下位クラスタマップの更新と同期とを行う。ここで、下位クラスタ内通信は、新規にキャッシュノードが追加されたり、キャッシュノードやキャッシュノード間のリンクの障害などのイベントが発生した場合には、そのイベントをトリガーとして行われる。
ステップ5:
下位クラスタ内に、代表キャッシュノードを除く少なくとも1つの他のキャッシュノードが追加されると、それらは自律的に負荷分散を行う。すなわち、下位クラスタ内通信によって同一下位クラスタ内の「『情報の必要度』の数値」やそれを用いた計算結果によって値の少ないキャッシュノードから順にアクセスを転送する。
ステップ6:
各クラスタには、その代表キャッシュノードまたはクラスタの中心から一定の物理距離または論理的距離を半径とする円で特定されるクラスタ領域と、このクラスタ領域に設置することのできるキャッシュノードの最大数とが予め定められる。クラスタ領域に設置可能なキャッシュノードの最大数は、換言すれば、当該クラスタのキャッシュノード密度である。キャッシュノード密度は、「キャッシュノード数/NW半径」で表現しても良いし、「キャッシュノード数/NW半径内に存在するノード数」で表現しても良い。
ステップ7:
下位クラスタの代表キャッシュノードが「NW半径を超える遠くからのアクセスが多くなる」あるいは「上記ステップ6で計算した自下位クラスタに置くことの出来るキャッシュノードの最大数に近づく」ことを検知すると、そのNW半径を超える場所に存在する、次数の大きなキャッシュノードに該情報をキャッシュしてもらえないかランダムに通常のInternetにおける通信手法によって打診し、通常のInternetにおける通信手法によって承諾をもらったキャッシュノードにキャッシュさせてもらう。ここで、複数の承諾をもらった場合には、それらの全て、あるいはそれらのうち次数の大きなキャッシュノードに対して、キャッシュさせてもらう。また、NW半径を超える場所は、自クラスタの周囲360度方向に存在するが、NW半径を超える場所があるNWドメインに偏っている場合には、このNWドメイン近傍の次数の大きなキャッシュノードを優先的に候補として選択する。なお、この新規キャッシュノードの追加は、アクセス数の変動を考慮して、一定時間待ってから行う。
キャッシュノードの依頼を行った代表キャッシュノードは、自キャッシュノードを含む代表キャッシュノードのみで構成される上位クラスタを作成し、上位クラスタ用の上位クラスタマップを作成する。
新規追加されたキャッシュノードは自分を代表キャッシュノードとする下位クラスタを新たに形成し、下位クラスタ内用下位クラスタマップを作成する。ここで、この代表キャッシュノード同士による上位クラスタ内オーバーレイNWは、下位クラスタ内NWの上にオーバーレイNWの形態で構築される。
また、新規追加されたキャッシュノードはキャッシュノード依頼を受けた代表キャッシュノードに対して、代表キャッシュノードのみで構成される上位クラスタへ新規追加されたキャッシュノードが上位クラスタに属することを認識してもらうための「entryメッセージ」を通常のInternetにおける通信手法によって送る。
キャッシュノードへの依頼を行った代表キャッシュノードは、新規追加された代表キャッシュノード宛に、「entryメッセージ」を受信したことを示すメッセージを上位クラスタ内通信によって送り、同時に上位クラスタマップに必要な情報を要求する。要求を受けた新規追加キャッシュノードは、自身のキャッシュノードに関する要求情報を上位クラスタ内通信によってキャッシュノードへの依頼を行った代表キャッシュノードへ送る。
キャッシュノード依頼を行った代表キャッシュノードは、新規代表キャッシュノードから受け取った要求情報をもとに上位クラスタマップを更新し、代表キャッシュノードのみで構成される上位クラスタ内の他の代表キャッシュノードに、上位クラスタ内通信によって送る。各キャッシュノードは各自の持つ上位クラスタ用の上位クラスタマップを更新して、登録完了のメッセージを、キャッシュノード依頼を行った代表キャッシュノードに、上位クラスタ内通信によって送る。
下位クラスタ同士は原則的に代表キャッシュノードであるキャッシュノード同士が、各下位クラスタ内のキャッシュノード数などのマクロな情報を、一定時間間隔毎または不定時間間隔でオーバーレイ通信を行うことによって、互いの生存と状況を確認し合う。
(2)情報へのアクセス数が減少する場合
ステップ1:
あるキャッシュノードへのアクセスが減って、「『情報の必要度』の数値」がある閾値を下回ると、数値の変動を考慮して、その時点から一定時間の「『情報の必要度』の数値」の平均値を取得する。一定時間の「『情報の必要度』の数値」の平均値がある閾値を下回ると、自キャッシュノードの所属する下位クラスタ内に他のキャッシュノードがいる限り、それら下位クラスタ内の他のキャッシュノード全てに、下位クラスタ内通信によって脱退メッセージを送る。脱退メッセージを受け取った下位クラスタ内の他のキャッシュノードは自キャッシュノードの下位クラスタ内用下位クラスタマップから、脱退キャッシュノードのIPアドレス以外の情報を消去し、「脱退メッセージが到着した」という確認メッセージを脱退キャッシュノードに対して、下位クラスタ内通信によって送信する。脱退キャッシュノードは、下位クラスタ内の全ての他のキャッシュノードから、下位クラスタ内通信によって確認メッセージを受け取った後で、自キャッシュノードの保持しているキャッシュデータを削除し、情報のURLと自身のIPアドレスとを登録したDNSサーバに削除要求を出して下位クラスタから抜ける。
ここで、仮に代表キャッシュノードが抜ける場合には、以下のようになる。代表キャッシュノードへのアクセスが減って、「『情報の必要度』の数値」がある閾値を下回ると、数値の変動を考慮して、その時点から一定時間の「『情報の必要度』の数値」の平均値を取得する。一定時間の「『情報の必要度』の数値」の平均値がある閾値を下回ると、自キャッシュノードの所属する下位クラスタ内の他のキャッシュノードのうち、最も「『情報の必要度』の数値」の小さいキャッシュノードに他の下位クラスタとの通信を行う代表キャッシュノードを譲り、自キャッシュノードの所属する下位クラスタ内の他のキャッシュノード全てに対しては下位クラスタ内通信によって、また他の下位クラスタの代表キャッシュノードへは上位クラスタ内通信によって、「別のキャッシュノードが代表キャッシュノードを引き継ぎ、自分が抜けること」を知らせる。このメッセージを受け取った下位クラスタ内の他の全てのキャッシュノードは各々の持つ下位クラスタ内用下位クラスタマップから代表キャッシュノードの情報を削除し、「代表キャッシュノードを受け継いだキャッシュノード」を代表キャッシュノードとして下位クラスタ内用下位クラスタマップに設定する。さらに、「元の代表キャッシュノード」と「代表キャッシュノードを受け継いだキャッシュノード」に対して、「新しい代表キャッシュノードを下位クラスタ内用下位クラスタマップに登録したこと」を下位クラスタ内通信によって確認メッセージとして伝える。
同様に他の下位クラスタの代表キャッシュノードは、上位クラスタNW用の上位クラスタマップから代表キャッシュノードの情報を削除し、新しい代表キャッシュノードを下位クラスタの代表キャッシュノードとして上位クラスタNW用の上位クラスタマップに設定する。さらに他の下位クラスタの代表キャッシュノードは、確認メッセージを「代表キャッシュノードを受け継いだキャッシュノード」と「元の代表キャッシュノード」宛に上位クラスタ内通信によって送信する。
自キャッシュノードの所属する下位クラスタ内の全てのキャッシュノード、および他の下位クラスタの全ての代表キャッシュノードからの確認メッセージを下位クラスタ内通信、上位クラスタ内通信によってそれぞれ受け取った後で、「元の代表キャッシュノード」は、自キャッシュノードの保持するキャッシュデータを削除し、情報のURLと自身のIPアドレスとを登録したDNSサーバに削除要求を出して下位クラスタから抜ける。
ステップ2:
ある下位クラスタに最終的に残ったキャッシュノードは必然的に下位クラスタの代表キャッシュノードであるが、代表キャッシュノードでも「『情報の必要度』の数値」がある閾値を下回ると、数値の変動を考慮して、その時点から一定時間の「『情報の必要度』の数値」の平均値を取得する。一定時間の「『情報の必要度』の数値」の平均値がある閾値を下回ると、代表キャッシュノードは他の下位クラスタの全ての代表キャッシュノードに対して、脱退メッセージを上位クラスタ内通信によって送る。同時に、脱退代表キャッシュノードは自キャッシュノードの上位クラスタNW用上位クラスタマップを見て、他の下位クラスタの全ての代表キャッシュノードのうち、キャッシュノード当たりの「『情報の必要度』の数値」が最も少なく、かつキャッシュノード密度の最大値の大きい代表キャッシュノードに、自キャッシュノードの所属する下位クラスタ内用の下位クラスタマップを上位クラスタ内通信によって送信する。
他の下位クラスタの全ての代表キャッシュノードは、脱退メッセージを送信した代表キャッシュノードに対して「代表キャッシュノードが抜けること」を確認するメッセージを「代表キャッシュノード」宛に上位クラスタ内通信によって送信した後で、定期メッセージの宛先から代表キャッシュノードに関するIPアドレス以外の情報を上位クラスタNW用上位クラスタマップから削除する。ここで脱退代表キャッシュノードから下位クラスタ内用の下位クラスタマップを受け取った代表キャッシュノードは、「下位クラスタマップを受け取ったこと」を確認メッセージとして、脱退代表キャッシュノードに上位クラスタ内通信によって送信する。
脱退代表キャッシュノードは、他の下位クラスタの全ての代表キャッシュノードから「代表キャッシュノードが抜けること」を確認するメッセージを上位クラスタ内通信によって受け取り、かつ脱退代表キャッシュノードから下位クラスタ内用の下位クラスタマップを受け取った代表キャッシュノードから「下位クラスタマップを受け取ったこと」を確認するメッセージを上位クラスタ内通信によって受け取った後で、自キャッシュノードの保持するキャッシュデータを削除し、情報のURLと自身のIPアドレスとを登録したDNSサーバに削除要求を出して上位クラスタNWから抜ける。
ステップ3:
オリジナルキャッシュノードを含む下位クラスタ以外で最終的に残った下位クラスタにおいて、最終的に残ったキャッシュノード(以下、終末キャッシュノードと呼ぶ)でも「『情報の必要度』の数値」がある閾値を下回ると、数値の変動を考慮して、その時点から一定時間の「『情報の必要度』の数値」の平均値を取得する。一定時間の「『情報の必要度』の数値」の平均値がある閾値を下回ると、オリジナルキャッシュノードに対して「自分が最終データのキャッシュノードであること」、終末キャッシュノードが保持している「キャッシュデータ」および「過去に脱退した他の下位クラスタの下位クラスタ内用の下位クラスタマップ」を、1)自キャッシュノードにそのまま置いても良い、2)何か他の形態(例えばリンク先としてなど)で置いても良い、あるいは、3)削除して欲しい、という「希望情報」と共に、上位クラスタ内通信によって伝える。
ステップ4:
オリジナルキャッシュノードは、終末キャッシュノードからの「希望情報」を元に、情報を、1)そのまま置いてもらうか、2)何か他の形態(例えばリンク先としてなど)で置かせてもらうか、あるいは、3)削除してもらうかを検討し、その結果を週末キャッシュノードに対して上位クラスタ内通信によって伝える。ここで、終末キャッシュノードに情報をキャッシュし続けてもらう理由は、そのデータが再度必要になる場合、最後までアクセスがあったキャッシュノードの周辺からの場合が多いと推定されるためである。
ステップ5:
情報を削除してもらう場合には、最後に残った下位クラスタにいた他のキャッシュノードに対して、情報を、1)そのまま置いて欲しい、2)何か他の形態(例えばリンク先としてなど)で置かせて欲しい、ことを通常のInternetの通信手段によって伝える。
ステップ6:
終末キャッシュノードは、オリジナルキャッシュノードからの回答に従って、情報の管理形態を決定する。すなわち、情報を、1)そのまま置くか、2)何か他の形態(例えばリンク先としてなど)で置くか、あるいは、3)削除するか、のいずれかを行う。
ステップ7:
オリジナルキャッシュノードから、情報を、1)そのまま置いて欲しい、2)何か他の形態(例えばリンク先としてなど)で置かせて欲しいというメッセージを通常のInternetの通信手段によって受け取った、最後に残った下位クラスタにいた他のキャッシュノードは、それぞれオリジナルキャッシュノードに対して、情報を、1)自キャッシュノードにそのまま置いても良い、2)何か他の形態(例えばリンク先としてなど)で置いても良い、あるいは、3)置きたくない、という「希望情報」を通常のInternetの通信手段によって伝える。
ステップ8:
「希望情報」を通常のInternetの通信手段によって受け取ったオリジナルキャッシュノードは、その中に、情報を、1)自キャッシュノードにそのまま置いても良い、2)何か他の形態(例えばリンク先としてなど)で置いても良いという回答があれば、1)、2)の優先順位で、そのキャッシュノードと上位クラスタを構成し、キャッシュする情報を上位クラスタ内通信によって送信する。
ステップ9:
「希望情報」を受け取ったオリジナルキャッシュノードは、その中に3)置きたくないという回答しか無ければ、最後から2番目に削除された下位クラスタにいた他のキャッシュノードに対して、情報を、1)そのまま置いて欲しい、2)何か他の形態(例えばリンク先としてなど)で置かせて欲しい、ことを通常のInternetの通信手段によって伝える。
ステップ10:
以下、ステップ7から9を繰り返す。
ステップ11:
最終的にオリジナルキャッシュノード以外にキャッシュしてくれるキャッシュノードが無ければ、オリジナルキャッシュノードは、情報を自キャッシュノードに保存したままにする。
(3)アクセスが再度増加した場合に関する動作の説明
上記「情報へのアクセス数が減少する場合」のステップ7〜11において、最終的にキャッシュされるべき情報をどのキャッシュノードが保持しているかによって、最初のステップのみが異なる。
(3−1)最終的にオリジナルキャッシュノードのみがキャッシュされるべき情報を保持している場合
この場合は、「(1)情報へのアクセス数が増加する場合」のステップ3が最初のステップとなる。
(3−2)最終的にオリジナルキャッシュノードと終末キャッシュノードがキャッシュされるべき情報を保持している場合
この場合、オリジナルキャッシュノードと終末キャッシュノードのうち、アクセスを受けたキャッシュノードにおいて、「(1)情報へのアクセス数が増加する場合」のステップ3が最初のステップとなる。終末キャッシュノードにおいてアクセスが増加し、「(1)情報へのアクセス数が増加する場合」で示した、閾値1を超えてキャッシュノードの追加が必要になった場合、「(1)情報へのアクセス数が増加する場合」のステップ3で示した手順に従って、一定時間待ってから、終末キャッシュノードは自分の保持している下位クラスタ内の下位クラスタマップの中に残っている、下位クラスタ内で過去にキャッシュノードであったキャッシュノードに情報をキャッシュしてもらえないかを通常のInternetの通信手段によって打診する。もし、いずれからも承諾を得られなかった場合には、ある一定のホップ数にあるキャッシュノードのうち、次数の大きなキャッシュノードにランダムに情報をキャッシュしてもらえないかを通常のInternetの通信手段によって打診する。一定のホップ数内のキャッシュノードから承諾が得られなければ、終末キャッシュノードは探索ホップ数を+1して、承諾を得られるキャッシュノードを探索する。
下位クラスタ内の過去のキャッシュノード、あるいはホップ数による探索によって、いずれかのキャッシュノードから承諾を受けると、後は「(1)情報へのアクセス数が増加する場合」のステップ3以降において説明した手順に従って、キャッシュノードを増加させていく。
以上のようにして、通信NW上の情報へのアクセス数に適応して、情報のキャッシュ配置の量と質を利他的かつ協調的な仕組みによって自律分散的に決定することで、効率的な情報の分散キャッシュ配置を実現するとともに、一度廃れてアクセスの無くなった情報の効率的な再生を実現する。
[構成の説明]
次に、本実施例の構成を詳細に説明する。
図1を参照すると、本実施例の分散情報配置システムにおける「『情報の必要度』の数値」の変化の様子の1例が示されている。アクセスがあるたびに、「『情報の必要度』の数値」は一定量だけ増加する。「『情報の必要度』の数値」は一定時間が経過する毎に一定量だけ減少する。
図2を参照すると、本実施例の分散情報配置システムにおける新規キャッシュノード追加の様子の1例が示されている。図3を参照すると、本実施例の分散情報配置システムにおける新規キャッシュノード追加のフローチャートの1例が示されている。図4を参照すると、本実施例の分散情報配置システムにおける、各キャッシュノードが保持する下位クラスタ内用の下位クラスタマップの1例が示されている。
下位クラスタ内用の下位クラスタマップの内容は、図4に示したように、キャッシュノードの、DNS登録名、グローバルIPアドレス、『情報の必要度』の数値、『情報の必要度』の数値の1次微分値、および『情報の必要度』の数値の2次微分値である。『情報の必要度』の数値の1次微分値は、直近の単位時間当たりの『情報の必要度』の数値の増減量である。『情報の必要度』の数値の2次微分値は、直近の単位時間当たりの『情報の必要度』の数値の増減割合である。
ここで、下位クラスタNW2内のオーバーレイ通信のために、下位クラスタNW2内のキャッシュノードに、下位クラスタNW2内部でのみ通用するローカルなIPアドレスを各々割り当て、このローカルなIPアドレスを用いた下位クラスタNW2内のオーバーレイ通信を行っても良い。その場合、下位クラスタ内用の下位クラスタマップの内容は、図4に示した以外に、下位クラスタ2内でローカルに付加したローカルなIPアドレスを含んでいても良い。
なお、下位クラスタ内用の下位クラスタマップの内容は、図4の内容から『情報の必要度』の数値の2次微分値を削除したものでも良い。また、下位クラスタ内用の下位クラスタマップの内容は、図4に示した以外に何らかの『情報の必要度』の数値の経時変化の様子を表す変数を含んでいても良い。
オリジナルノードは、自身の所属するNWのDNSサーバに自身をNW上で一意に識別可能な識別子であるグローバルIPアドレスと、NW内の他のノードがアクセスする場合に用いるキャッシュ情報の場所を指し示す記述方式であるURLを登録しておく(図2aまたは図2bのオリジナルノード1から出ている1点鎖線)。
情報とある値(初期値)の「情報の必要度」をオリジナルキャッシュノード1に配置する。同時に自分を代表キャッシュノードとする下位クラスタ2を生成し、オリジナルキャッシュノード1のIPアドレスと「『情報の必要度』の数値」とを下位クラスタ内用の下位クラスタマップ4−2に登録する。下位クラスタ内用の下位クラスタマップ4−2は各下位クラスタ内のキャッシュノードが分散的に所有し、キャッシュノードは下位クラスタ内用の下位クラスタマップに登録された複数のキャッシュノードとオーバーレイで下位クラスタ内通信を行う。図1に示したように情報へのアクセスがあるたびに「『情報の必要度』の数値」が増加する。
図2では、理解のし易さを目的に、アクセスをアリ3で表し、またアクセスによる「『情報の必要度』の数値」の増加分をアリ3が運んでいる荷物Aで表している。アクセスが増えて「『情報の必要度』の数値」がある閾値Θ1を超えると、数値の変動を考慮して、その時点から一定時間の「『情報の必要度』の数値」の平均値を取得する。一定時間の「『情報の必要度』の数値」の平均値がある閾値Θ1を超えると代表キャッシュノードはある物理的あるいは論理的NW距離にある、次数の大きなキャッシュノードに情報をキャッシュしてもらえないかランダムに打診し、承諾をもらったキャッシュノード6にキャッシュさせてもらう。ここで、複数の承諾をもらった場合には、それらの全て、あるいはそれらのうち次数の大きなキャッシュノードに、キャッシュさせてもらう。「ある物理的あるいは論理的NW距離」としては、ホップ数を用いる。ここで、「ある物理的あるいは論理的NW距離」は、ある一定のRTT値を用いても良い。
新規追加されたキャッシュノード6は、情報のURLと自身のIPアドレスを自身の属するNWドメインのDNSサーバに登録しておく。これにより、(a)自身の属するNWドメインがオリジナルキャッシュノード(または代表キャッシュノード)と異なっていれば、オリジナルキャッシュノード(または代表キャッシュノード)と異なるDNSサーバに情報のURLと自身のIPアドレスが登録される(図2aのキャッシュサーバ6から出ている1点鎖線)。他方、(b)自身の属するNWドメインがオリジナルキャッシュノード(または代表キャッシュノード)と同じであれば、同じDNSサーバに情報のURLと自身のIPアドレスが登録される(図2bのキャッシュサーバ6から出ている1点鎖線)。
新規追加されたキャッシュノード6は、下位クラスタ2内の代表キャッシュノード1に、キャッシュノード6が下位クラスタ2に属することを認識してもらうための「entryメッセージ」を通常のInternet上の通信手段によって送る。キャッシュノード6への依頼を行った代表キャッシュノード1は、新規追加されたキャッシュノード6宛に、「entryメッセージ」を受信したことを示すメッセージを下位クラスタ2内通信によって送り、同時に下位クラスタマップ4−2に必要な情報を要求する。要求を受けた新規追加キャッシュノード6は、自身のキャッシュノード6に関する要求情報を下位クラスタ2内通信によって、キャッシュノード6への依頼を行った代表キャッシュノード1へ送る。
キャッシュノード依頼を行った代表キャッシュノード1は、新規代表キャッシュノード6から受け取った要求情報をもとに下位クラスタマップ4−2を更新し、更新された下位クラスタマップ4−2を、下位クラスタ2内通信によって、代表キャッシュノード1の所属する下位クラスタ内の他のキャッシュノード宛に送る。各キャッシュノードは各自の持つ下位クラスタ用の下位クラスタマップを更新して、登録完了のメッセージを、キャッシュノード依頼を行った代表キャッシュノードに、下位クラスタ内通信によって送る。
図5を参照すると、本実施例の分散情報配置システムにおける同一下位クラスタ内のキャッシュノード間の通信の様子の1例が示されている。下位クラスタ2内に存在する、代表キャッシュノード1を含む複数のキャッシュノード6、8らは、下位クラスタ内通信を一定時間間隔毎または不定時間間隔で行うことによって、互いの「生存」と「『情報の必要度』の数値」などの情報を交換し合う。これによって下位クラスタ2内の全てのキャッシュノードの下位クラスタ2内用の下位クラスタマップの更新と同期とを行う。ここで、下位クラスタ内通信は、新規にキャッシュノードが追加されたり、キャッシュノードやキャッシュノード間のリンクの障害などのイベントが発生した場合には、そのイベントをトリガーとして行われる。
図6(a)および図6(b)を参照すると、本実施例の分散情報配置システムにおける同一下位クラスタ内でのアクセスの負荷分散の様子の1例が、それぞれ示されている。図7(a)および図7(b)を参照すると、本実施例の分散情報配置システムにおけるアクセスの負荷分散のフローチャートの1例が、それぞれ示されている。
下位クラスタ内に、代表キャッシュノードを除く少なくとも1つの他のキャッシュノードが追加されると、それらは自律的に負荷分散を行う。すなわち、下位クラスタ内通信によって下位クラスタ2内の「『情報の必要度』の数値」は各キャッシュノード1、6、8が、同一内容の下位クラスタ2内用下位クラスタマップを保持しているため、「『情報の必要度』の数値」の最も少ないキャッシュノードから順番にアクセスを転送する。
図8を参照すると、本実施例の分散情報配置システムにおける、あるNW距離以上のキャッシュノードからのアクセスが増加することによって、NW距離以上の次数の高いキャッシュノードのキャッシュノード化とそこでの新規下位クラスタ生成が行われる様子の1例が示されている。図9を参照すると、本実施例の分散情報配置システムにおける、あるNW距離以上のキャッシュノードからのアクセスが増加することによって、NW距離以上の次数の高いキャッシュノードのキャッシュノード化とそこでの新規下位クラスタ生成が行われる際のフローチャートの1例が示されている。図10を参照すると、本実施例の分散情報配置システムにおける、代表キャッシュノードのみで構成される上位クラスタNWの上位クラスタマップ18の1例が示されている。
新規追加されたキャッシュノード11は自分を代表キャッシュノードとする下位クラスタ15を新たに形成し、下位クラスタ15内用下位クラスタマップ4−15を作成する。また、新規追加されたキャッシュノード11は情報のURLと自身のIPアドレスを自身の所属するNWドメイン内のDNSサーバ34に登録しておく。ここで、キャッシュノード11の登録するDNSサーバは、オリジナルキャッシュノードの所属するクラスタ2内のキャッシュノードが、それぞれ情報のURLと自身のIPアドレスを登録しているDNSサーバ31,32,33の全てと異なっている。以降、追加される下位クラスタの代表ノードとその下位クラスタ内に追加されるキャッシュノードでの負荷分散の動作は、図2(a)および図2(b)と図3(a)および図3(b)で示したように行われる。これらの方法により、自律分散的な負荷分散が実現される。ここで、この代表キャッシュノード同士による上位クラスタ間オーバーレイNW17は、下位クラスタ2および下位クラスタ15の上位クラスタ間オーバーレイNWの上に構築される。
ここで、上位クラスタNW17内の上位クラスタ内通信のために、上位クラスタNW17内の代表キャッシュノードに、上位クラスタNW17内部でのみ通用するローカルなIPアドレスを各々割り当て、このローカルなIPアドレスを用いた上位クラスタNW17内の上位クラスタ内通信を行っても良い。
またここで、上位クラスタ内用の上位クラスタマップの内容は、図10に示したように、代表キャッシュノードのDNS登録名、グローバルIPアドレス、各クラスタ内のキャッシュノード数、『情報の必要度』の数値の合計値、および『情報の必要度』の数値の合計値の1次微分値である。ここで、上位クラスタ17内用の上位クラスタマップの内容は、図10に示した以外に、上位クラスタ17内でローカルに付加したローカルなIPアドレスを含んでいても良い。また、上位クラスタ17内用の上位クラスタマップの内容は、図10に示した以外に何らかの『情報の必要度』の数値の経時変化の様子を表す変数を含んでいても良い。
各下位クラスタには、その代表キャッシュノードまたはクラスタの中心から一定の物理距離または論理的距離をNW半径10とする円で特定されるクラスタ領域と、このクラスタ領域に設置することのできるキャッシュノードの最大数とが予め定められる。
下位クラスタ2の代表キャッシュノード1が「NW半径10を超える遠くからのアクセスが多くなる」あるいは「計算した自下位クラスタ2に置くことの出来るキャッシュノードの最大数に近づく」ことを検知すると、NW半径10を超える場所に存在する、次数の大きなキャッシュノードに情報をキャッシュしてもらえないかランダムに、通常のInternet上の通信手段によって打診し、通常のInternet上の通信手段によって承諾をもらったキャッシュノード11にキャッシュさせてもらう。ここで、複数の承諾をもらった場合には、それらの全て、あるいはそれらのうち次数の大きなキャッシュノードに対して、キャッシュさせてもらう。なお、この新規キャッシュノード11の追加は、アクセス数の変動を考慮して、一定時間待ってから行う。
キャッシュノードの依頼を行った代表キャッシュノード1は、自キャッシュノード1を含む代表キャッシュノード1のみで構成される上位クラスタNW17を作成し、上位クラスタNW17用の上位クラスタマップ18−2を作成する。
新規追加されたキャッシュノード11は自分を代表キャッシュノードとする下位クラスタ15を新たに形成し、下位クラスタ15内用下位クラスタマップ4−15を作成する。ここで、この代表キャッシュノード同士による上位クラスタ内オーバーレイNW17は、下位クラスタ2および下位クラスタ15のオーバーレイNWの上に構築される。また、新規追加されたキャッシュノード11はキャッシュノード依頼を受けた代表キャッシュノード1に対して、代表キャッシュノードのみで構成される上位クラスタNW17に対して、キャッシュノード11が上位クラスタ17に属することを認識してもらうための「entryメッセージ」を通常のInternet上の通信手段によって送る。キャッシュノード11への依頼を行った代表キャッシュノード1は、新規追加されたキャッシュノード11宛に、「entryメッセージ」を受信したことを示すメッセージを上位クラスタ17内通信によって送り、同時に上位クラスタマップ18に必要な情報を要求する。要求を受けた新規追加キャッシュノード11は、自身のキャッシュノード11に関する要求情報を上位クラスタ17内通信によって、キャッシュノード11への依頼を行った代表キャッシュノード1へ送る。
キャッシュノード依頼を行った代表キャッシュノード1は、新規代表キャッシュノード11から受け取った要求情報をもとに上位クラスタマップ18−11を更新し、更新された上位クラスタマップ18−11を、上位クラスタ17内通信によって、代表キャッシュノードが所属する下位クラスタ内の他の代表キャッシュノード宛に送る。各代表キャッシュノードは各自の持つ上位クラスタ用の上位クラスタマップを更新して、登録完了のメッセージを、キャッシュノード依頼を行った代表キャッシュノード1に、上位クラスタ内通信によって送る。
図11を参照すると、本実施例の分散情報配置システムにおける、代表キャッシュノードのみで構成される上位クラスタレベルのNW17(上位層)、下位クラスタレベルのNW2、15、16(中間層)、およびノードレベルのNW(最下層)の関係の1例が示されている。
下位クラスタ同士は原則的に代表キャッシュノードであるキャッシュノード1、11、14同士が、各下位クラスタ2、15、16内のキャッシュノード数などのマクロな情報を、一定時間間隔毎または不定時間間隔で上位クラスタNW17上でオーバーレイ通信を行うことによって交換し、互いの生存と状況を確認し合うと共に、各々の代表キャッシュノード1,11,14が保持している各下位クラスタ2,15,16のマクロ情報を更新する。
図12を参照すると、本実施例の分散情報配置システムにおけるキャッシュノードの脱退の様子の1例が示されている。図13を参照すると、本実施例の分散情報配置システムにおけるキャッシュノードの脱退のフローチャートの1例が示されている。図14を参照すると、本実施例の分散情報配置システムにおける代表キャッシュノードの脱退のフローチャートの1例が示されている。
図12の下位クラスタ15を例に取る。キャッシュノード19へのアクセスが減って、「『情報の必要度』の数値」がある閾値2を下回ると、数値の変動を考慮して、その時点から一定時間の「『情報の必要度』の数値」の平均値を取得する。一定時間経過後の「『情報の必要度』の数値」の平均値がある閾値2を下回ると、自キャッシュノード19の所属する下位クラスタ15内に他のキャッシュノードがいる限り、下位クラスタ15内の他のキャッシュノード全てに「脱退メッセージ」を下位クラスタ内通信によって送る。脱退メッセージを受け取った下位クラスタ15内の他のキャッシュノードは、自キャッシュノードの保持している下位クラスタ15内用下位クラスタマップから、脱退キャッシュノード19のIPアドレス以外の情報を消去し、「脱退メッセージが到着した」という確認メッセージを脱退キャッシュノード19に対して、下位クラスタ内通信によって送信する。脱退キャッシュノード19は、下位クラスタ15内の全ての他のキャッシュノードから、確認メッセージを受け取った後で、自キャッシュノード19の保持しているキャッシュデータを削除し、情報のURLと自身のIPアドレスとを登録したDNSサーバに削除要求を出して下位クラスタ15から抜ける。
ここで、仮に代表キャッシュノード11が抜ける場合には、以下のようになる。代表キャッシュノード11へのアクセスが減って、「『情報の必要度』の数値」がある閾値2を下回ると、数値の変動を考慮して、その時点から一定時間の「『情報の必要度』の数値」の平均値を取得する。一定時間の「『情報の必要度』の数値」の平均値がある閾値2を下回ると、自キャッシュノード11の所属する下位クラスタ15内の他のキャッシュノードのうち、最も「『情報の必要度』の数値」の小さいキャッシュノード13に他下位クラスタ2、16との通信を行う代表キャッシュノードを譲り、自キャッシュノード11の所属する下位クラスタ15内の他のキャッシュノード全てと、他の下位クラスタ2、16の各々全ての代表キャッシュノード1、14へ、「別のキャッシュノード13が代表キャッシュノードを引き継ぎ、自分11が抜けること」を、下位クラスタ内通信、上位クラスタ内通信によってそれぞれ知らせる。代表キャッシュノード11からの脱退メッセージを受け取った下位クラスタ15内の他の全てのキャッシュノードは各々の持つ下位クラスタ内15用下位クラスタマップから代表キャッシュノード11の情報をIPアドレスを除いて削除し、「代表キャッシュノードを受け継いだキャッシュノード13」を代表キャッシュノードとして下位クラスタ15内用下位クラスタマップに設定する。さらに、「元の代表キャッシュノード11」と「代表キャッシュノードを受け継いだキャッシュノード13」に対して、「新しい代表キャッシュノード13を下位クラスタ15内用下位クラスタマップ4に登録したこと」を確認メッセージとして、下位クラスタ内通信によって伝える。
同様に他の下位クラスタ2、16の各々の代表キャッシュノード1、14は、各々の保持している上位クラスタNW17用の上位クラスタマップ18−2、18−16から代表キャッシュノード11の情報を削除し、新しい代表キャッシュノード13を下位クラスタ15の代表キャッシュノードとして上位クラスタNW17用の上位クラスタマップ18−2、18−16に設定する。さらに他の下位クラスタ2、16の各々の代表キャッシュノード1、14は、確認メッセージを「代表キャッシュノードを受け継いだキャッシュノード13」と「元の代表キャッシュノード11」宛に、上位クラスタ内通信によって送信する。
自キャッシュノード11の所属する下位クラスタ15内の全てのキャッシュノード、および他の下位クラスタ2、16の各々全ての代表キャッシュノード1、14から、下位クラスタ内通信、上位クラスタ内通信によってそれぞれ確認メッセージを受け取った後で、「元の代表キャッシュノード11」は、自キャッシュノード11の保持するキャッシュデータを削除し、情報のURLと自身のIPアドレスとを登録したDNSサーバに削除要求を出して下位クラスタ15から抜ける。
図15を参照すると、本実施例の分散情報配置システムにおける下位クラスタの脱退の様子の1例が示されている。図16を参照すると、本実施例の分散情報配置システムにおける下位クラスタの脱退のフローチャートの1例が示されている。
下位クラスタ16を例にとって説明する。下位クラスタ16に最終的に残ったキャッシュノード14は必然的に下位クラスタの代表キャッシュノードであるが、代表キャッシュノード14でも「『情報の必要度』の数値」がある閾値を下回ると、数値の変動を考慮して、その時点から一定時間の「『情報の必要度』の数値」の平均値を取得する。一定時間の「『情報の必要度』の数値」の平均値がある閾値を下回ると、代表キャッシュノード14は他の全ての下位クラスタ2、15の代表キャッシュノード1、11に対して、脱退メッセージを上位クラスタ内通信によって送る。同時に、脱退代表キャッシュノード14は自キャッシュノード14の保持している上位クラスタNW17用下位クラスタマップ18−16を見て、他の全ての下位クラスタ2、15の代表キャッシュノード1,11のうち、キャッシュノード当たりの「『情報の必要度』の数値」が最も少なく、かつ下位クラスタ内のキャッシュノード密度の最大値の大きい代表キャッシュノード11に、自キャッシュノード14の所属する下位クラスタ16内用の下位クラスタマップ4−16を上位クラスタ内通信によって送信する。
他の全ての下位クラスタ2、15の代表キャッシュノード1、11は、脱退メッセージを送信した代表キャッシュノード14に対して「代表キャッシュノード14が抜けること」を確認するメッセージを「代表キャッシュノード14」宛に上位クラスタ内通信によって送信した後で、代表キャッシュノード14に関するIPアドレス以外の情報を上位クラスタNW17用下位クラスタマップ18−2、18−15の各々から削除する。ここで脱退代表キャッシュノード14から下位クラスタ16内用の下位クラスタマップ4−16を受け取った代表キャッシュノード11は、「下位クラスタマップ4−16を受け取ったこと」を確認メッセージとして、脱退代表キャッシュノード14に上位クラスタ内通信によって送信する。
脱退代表キャッシュノード14は、他の全ての下位クラスタ2、15の代表キャッシュノード1、11から「代表キャッシュノード14が抜けること」を確認するメッセージを受け取り、かつ脱退代表キャッシュノード14から下位クラスタ16内用の下位クラスタマップ4−16を受け取った代表キャッシュノード11から「下位クラスタマップ4−16を受け取ったこと」を確認するメッセージを受け取った後で、自キャッシュノード14の保持するキャッシュデータを削除し、情報のURLと自身のIPアドレスとを登録したDNSサーバに削除要求を出して上位クラスタNW17から抜ける。
図17を参照すると、本実施例の分散情報配置システムにおける最後に残ったキャッシュノードの脱退の様子の1例が示されている。図18を参照すると、本実施例の分散情報配置システムにおける最後に残ったキャッシュノードの脱退のフローチャートの1例が示されている。
オリジナルキャッシュノードを含む下位クラスタ以外で最終的に残った下位クラスタ15において、最終的に残ったキャッシュノード11(終末キャッシュノード)でも「『情報の必要度』の数値」がある閾値を下回ると、数値の変動を考慮して、その時点から一定時間の「『情報の必要度』の数値」の平均値を取得する。一定時間の「『情報の必要度』の数値」の平均値がある閾値を下回ると、オリジナルキャッシュノード1に対して、「自分11が最終データのキャッシュノードであること」、終末キャッシュノードが保持している「キャッシュデータ」および「過去に脱退した他の下位クラスタの下位クラスタ内用の下位クラスタマップ」を、1)自キャッシュノード11にそのまま置いても良い、2)何か他の形態(例えばリンク先としてなど)で置いても良い、あるいは、3)削除して欲しい、という「希望情報」と共に、上位クラスタ内通信によって伝える。
オリジナルキャッシュノード1は、終末キャッシュノード11からの「希望情報」を元に、情報を、1)そのまま置いてもらうか、2)何か他の形態(例えばリンク先としてなど)で置かせてもらうか、あるいは、3)削除してもらうかを検討し、その結果を終末キャッシュノード11に対して上位クラスタ内通信によって伝える。ここで、終末キャッシュノード11に情報をキャッシュし続けてもらう理由は、そのデータが再度必要になる場合、最後までアクセスがあったキャッシュノードの周辺からの場合が多いと推定されるためである。
終末キャッシュノード11に終末キャッシュノード11がキャッシュしている情報を削除してもらう場合、オリジナルキャッシュノード1は、最後に残った下位クラスタ15にいた他のキャッシュノード13、19に対して、情報を、1)そのまま置いて欲しい、2)何か他の形態(例えばリンク先としてなど)で置かせて欲しい、ことを通常のInternetの通信手段によって伝える。
終末キャッシュノード11は、オリジナルキャッシュノード1からの回答に従って、情報の管理形態を決定する。すなわち、情報を、1)そのまま置くか、2)何か他の形態(例えばリンク先としてなど)で置くか、あるいは、3)削除するか、のいずれかを行う。
オリジナルキャッシュノード1から、情報を、1)そのまま置いて欲しい、2)何か他の形態(例えばリンク先としてなど)で置かせて欲しいというメッセージを通常のInternetの通信手段によって受け取った、最後に残った下位クラスタ15にいた他のキャッシュノード13、19は、それぞれオリジナルキャッシュノード1に対して、情報を、1)自キャッシュノードにそのまま置いても良い、2)何か他の形態(例えばリンク先としてなど)で置いても良い、あるいは、3)置きたくない、という「希望情報」を通常のInternetの通信手段によって伝える。
「希望情報」を受け取ったオリジナルキャッシュノード1は、その中に、情報を、1)自キャッシュノードにそのまま置いても良い、2)何か他の形態(例えばリンク先としてなど)で置いても良いという回答があれば、1)、2)の優先順位で、そのキャッシュノードと上位クラスタを形成し、情報を1)自キャッシュノードにそのまま置いても良い、2)何か他の形態(例えばリンク先としてなど)で置いても良いという回答を行ったキャッシュノードへ、キャッシュする情報を上位クラスタ内通信によって送信する。
「希望情報」を受け取ったオリジナルキャッシュノード1は、その中に、3)置きたくないという回答しか無ければ、最後から2番目に削除された下位クラスタ16にいた全てのキャッシュノードに対して、情報を、1)そのまま置いて欲しい、2)何か他の形態(例えばリンク先としてなど)で置かせて欲しい、ことを通常のInternet上の通信手法によって伝える。
オリジナルキャッシュノード1から、情報を、1)そのまま置いて欲しい、2)何か他の形態(例えばリンク先としてなど)で置かせて欲しいというメッセージを受け取った、最後から2番目に残った下位クラスタ16にいた全てのキャッシュノード14、20、21は、それぞれオリジナルキャッシュノード1に対して、情報を、1)自キャッシュノードにそのまま置いても良い、2)何か他の形態(例えばリンク先としてなど)で置いても良い、あるいは、3)置きたくない、という「希望情報」をそれぞれ通常のInternet上の通信手法によって伝える。
以下、上記の段落0125から段落0128までの手順を繰り返す。
最終的にオリジナルキャッシュノード1以外にキャッシュしてくれるキャッシュノードが無ければ、オリジナルキャッシュノード1は、情報を自キャッシュノード1に保存したままにする。
以上のようにして、通信NW上の情報へのアクセス数に適応して、情報のキャッシュ配置の量と質を利他的かつ協調的な仕組みによって自律分散的に決定することで、効率的な情報の分散キャッシュ配置を実現するとともに、一度廃れてアクセスの無くなった情報の効率的な再生を実現する。
[動作の説明]
次に本実施例の分散情報配置システムの動作について説明する。
図1を参照すると、本実施例の分散情報配置システムにおける「『情報の必要度』の数値」の変化の様子の1例が示されている。アクセスがあるたびに、「『情報の必要度』の数値」は一定量だけ増加する。「『情報の必要度』の数値」は一定時間が経過する毎に一定量だけ減少する。なお、時間経過に伴い減少する「『情報の必要度』の数値」は、非線形に減少しても良い。また、アクセスがあるたびに増加する「『情報の必要度』の数値」は、キャッシュノードのアクセスを受信可能なインターフェースの数や、インターフェースの入力バッファサイズなどに応じて、キャッシュノード毎に異なっていても良い。また、アクセスがあるたびに増加する「『情報の必要度』の数値」は、自下位クラスタ内に置くことの出来るキャッシュノードの最大数に応じて、下位クラスタ毎で異なっていても良い。また、時間経過に伴い減少する「『情報の必要度』の数値」は、キャッシュノードのアクセスを受信可能なインターフェースの数や、インターフェースの入力バッファサイズなどに応じて、キャッシュノード毎に異なっていても良い。また、時間経過に伴い減少する「『情報の必要度』の数値」は、自下位クラスタ内に置くことの出来るキャッシュノードの最大数に応じて、下位クラスタ毎で異なっていても良い。
(1)キャッシュノードの増加に関する動作の説明
図2(a)および(b)、図3(a)および(b)、図4を参照して、本実施例の分散情報配置システムにおけるキャッシュノードの増加に関する動作を説明する。
情報とある値(初期値)の「情報の必要度」をオリジナルキャッシュノード1に配置する(図3aのS301、図3bのS321)。またオリジナルキャッシュノードは、自身の所属するNWのDNSサーバに自身をNW上で一意に識別可能な識別子であるグローバルIPアドレスと、NW内の他のノードがアクセスする場合に用いる該キャッシュ情報の場所を指し示す記述方式であるURLを登録しておく(図2aまたは図2bのオリジナルキャッシュノード1から出ている1点鎖線)。同時に自分を代表キャッシュノードとする下位クラスタ2を生成し、当該オリジナルキャッシュノード1のIPアドレスと「『情報の必要度』の数値」とを下位クラスタ内用の下位クラスタマップ4−2に登録する。下位クラスタ内用の下位クラスタマップ4−2は各下位クラスタ内のキャッシュノードが分散的に所有し、キャッシュノードは下位クラスタ内用の下位クラスタマップに登録された複数のキャッシュノードと下位クラスタ内のオーバーレイ通信で下位クラスタNW2内通信を行う。
図1に示したように情報へのアクセスがあるたびに「『情報の必要度』の数値」が増加する。
図2(a)および(b)では、理解のし易さを目的に、アクセスをアリ3で表し、またアクセスによる「『情報の必要度』の数値」の増加分をアリ3が運んでいる荷物Aで表している。アクセスが増えて「『情報の必要度』の数値」がある閾値Θ1を超えると、数値の変動を考慮して、その時点から一定時間の「『情報の必要度』の数値」の平均値を取得する(図3aのS302、S303、図3bのS322、S323)。一定時間の「『情報の必要度』の数値」の平均値がある閾値Θ1を超えると、代表キャッシュノードはあるホップ数内にある、次数の大きなキャッシュノードに情報をキャッシュしてもらえないかランダムに打診し、承諾をもらったキャッシュノード6にキャッシュさせてもらう(図3aのS304〜S307、図3bのS324〜S327)。
ここで閾値Θ1は、キャッシュノードのアクセスを受信可能なインターフェースの入力バッファサイズの最大値の1から100%の割合の範囲内で、かつ後述のキャッシュノードが下位クラスタから脱退する場合の閾値Θ2より大きい割合に設定する。また、閾値Θ1は、キャッシュノードのアクセスを受信可能なインターフェースの数や、該インターフェースの入力バッファサイズなどに応じて、キャッシュノード毎に異なっていても良い。また、閾値Θ1は、自下位クラスタ内に置くことの出来るキャッシュノードの最大数に応じて、下位クラスタ毎で異なっていても良い。
複数のキャッシュノードから通常のInternetにおける通信手法により承諾をもらった場合には、それらの全て、あるいはそれらのうち次数の大きなキャッシュノードに対して、キャッシュさせてもらう(図3aのS308、図3bのS328)。もし、一定のホップ数内のキャッシュノードから承諾が得られなければ、オリジナルキャッシュノードは探索ホップ数を+1して、承諾を得られるキャッシュノードを探索する(図3aのS306でNo、図3bのS326でNo)。
新規追加されたキャッシュノード6は、自情報のURLと自身のIPアドレスを自ノードの属するNWドメインのDNSサーバに登録しておく(図3aのS309、図3bのS329、図2aのキャッシュサーバ6から出ている1点鎖線、図2bのキャッシュサーバ6から出ている1点鎖線)。
新規追加されたキャッシュノード6は、下位クラスタ2内の代表キャッシュノード1に、キャッシュノード6が下位クラスタ2に属することを認識してもらうための「entryメッセージ」を通常のInternet上の通信手段によって送る。キャッシュノード6への依頼を行った代表キャッシュノード1は、新規追加されたキャッシュノード6宛に、「entryメッセージ」を受信したことを示すメッセージを下位クラスタ2内通信によって送り、同時に下位クラスタマップ4−2に必要な情報を要求する(図3aのS310、図3bのS330)。要求を受けた新規追加キャッシュノード6は、自身のキャッシュノード6に関する要求情報を下位クラスタ2内通信によって、キャッシュノード6への依頼を行った代表キャッシュノード1へ送る(図3aのS311、図3bのS331)。
キャッシュノード依頼を行った代表キャッシュノード1は、新規代表キャッシュノード6から受け取った要求情報をもとに下位クラスタマップ4−2を更新し、更新された下位クラスタマップ4−2を、下位クラスタ2内通信によって、代表キャッシュノードの所属する下位クラスタ内の他のキャッシュノード宛に送る(図3aのS312、図3bのS332)。各キャッシュノードは各自の持つ下位クラスタ用の下位クラスタマップを更新して、登録完了のメッセージを、キャッシュノード依頼を行った代表キャッシュノードに、下位クラスタ内通信によって送る(図3aのS313、図3bのS333)。
図5を参照すると、本実施例の分散情報配置システムにおける同一下位クラスタ内のキャッシュノード間の通信の様子の1例が示されている。下位クラスタ2内に存在する、代表キャッシュノード1を含む複数のキャッシュノード6、8らは、下位クラスタ内通信によって一定時間間隔毎または不定時間間隔で行うことによって、互いの「生存」と「『情報の必要度』の数値」などの情報を交換し合う。これによって下位クラスタ2内の全てのキャッシュノードの下位クラスタ2内用の下位クラスタマップの更新と同期とを行う。ここで、下位クラスタ内通信は、新規にキャッシュノードが追加されたり、キャッシュノードやキャッシュノード間のリンクの障害などのイベントが発生した場合には、そのイベントをトリガーとして行われる。
ここで、同一情報のループを防ぐために、下位クラスタNW内でのオーバーレイ通信は、代表キャッシュノード1をIETF(The Internet Engineering Task Forceの略)のRFC2796に規定されたルートリフレクタに設定した上での通信であっても良い。
また、ここで同一情報のループを防ぐために、下位クラスタ内通信は、IETFのRFC2328に規定されたOSPF(Open Shortest Path Algorithm)をプロトコルとして用いても良い。
また、ここで同一情報のループを防ぐために、下位クラスタNW内の何らかのオーバーレイ通信は、IETFのRFC1142またはRFC1195に規定されたIS−IS(Intermediate System−Intermediate System)をプロトコルとして用いても良い。
さらに、全てのキャッシュノードの下位クラスタ2内用の下位クラスタマップの同期を取るために、下位クラスタ2内において下位クラスタ内通信によって交換される情報には、何らかのフォーマットによるバージョン情報を含んでいても良い。
(2)下位クラスタ内でのアクセス負荷分散に関する動作の説明
図6(a)および図6(b)、図7(a)および図7(b)を参照して、本実施例の分散情報配置システムにおける下位クラスタ内でのアクセスの負荷分散に関する動作を説明する。
下位クラスタ内に、代表キャッシュノードを除く少なくとも1つの他のキャッシュノードが追加されると、それらは自律的に負荷分散を行う。すなわち、下位クラスタ内のオーバーレイ通信によって下位クラスタ2内の「『情報の必要度』の数値」は各キャッシュノード1、6、8が、同一内用の下位クラスタ2内用下位クラスタマップ4−2を保持しているため、「『情報の必要度』の数値」の最も少ないキャッシュノードから順番にアクセスを転送する。
図6(a)は、下位クラスタ2内の複数のキャッシュノードがそれぞれ個別のDNSに登録している場合である。この場合、アクセス元のノード3a、3b、3cはそれぞれ自身の所属するNWドメインのDNSサーバ31、32、33に、キャッシュされている情報のキャッシュノードのIPアドレスを知るためにアクセスする(図7aのS701)。ここでは、簡単のためDNSサーバ31、32、33はキャッシュノードのIPアドレスを知っていることとする。
DNSサーバ31、32、33はアクセス元のノード3a、3b、3cに対してそれぞれキャッシュノードである1、6、8のIPアドレスを教える(図7aのS702)。これによって、アクセス元のノード3a、3b、3cはキャッシュノード1、6、8にそれぞれアクセスする(図7aのS703)。
アクセスをそれぞれ受けたキャッシュノード1、6、8は、それぞれが保有する下位クラスタ2のクラスタマップ4−2を見て、「『情報の必要度』の数値」の最も少ないキャッシュノードから順番にアクセスを転送する(図7aのS704)。
これらの方法により、自律分散的な負荷分散が実現される。
図6(b)は、下位クラスタ2内の複数のキャッシュノードが同じDNSに登録している場合である。この場合、アクセス元のノード3a、3b、3cはそれぞれDNSサーバ31に、キャッシュされている情報のキャッシュノードのIPアドレスを知るためにアクセスする(図7bのS711)。ここでは、簡単のためDNSサーバ31はキャッシュノードのIPアドレスを知っていることとする。
DNSサーバ31は、自身に実装されている手法によってアクセス元のノード3a、3b、3cに対してそれぞれキャッシュノードである1、6、8の中からいずれかを選んで、そのキャッシュノードのIPアドレスを教える(図7bのS712)。これによって、アクセス元のノード3a、3b、3cは、DNSサーバによって選択されたキャッシュノードにそれぞれアクセスする(図7bのS713)。
アクセスをそれぞれ受けたキャッシュノードは、それぞれが保有する下位クラスタ2のクラスタマップ4−2を見て、「『情報の必要度』の数値」の最も少ないキャッシュノードから順番にアクセスを転送する(図7bのS714)。
これらの方法により、自律分散的な負荷分散が実現される。
ここで、アクセスを転送する順番は、クラスタマップ4内にある全てのキャッシュノードの「現在の『情報の必要度』の数値」に「アクセス時間間隔の平均値」と「『情報の必要度』の数値の1次微分値」との積を加えた値を計算することで、それぞれのキャッシュノードの今後の「『情報の必要度』の数値」の予測値を計算し、予測値の最も小さいキャッシュノードから順でも良い。
また、アクセスを転送する順番は、クラスタマップ4内にある全てのキャッシュノードの「現在の『情報の必要度』の数値」に「アクセス時間間隔の平均値」と「『情報の必要度』の数値の1次微分値」との積と、「アクセス時間間隔の平均値」の2乗と「『情報の必要度』の数値の2次微分値」との積を加えた値を計算することで、それぞれのキャッシュノードの今後の「『情報の必要度』の数値」の予測値を計算し、予測値の最も小さいキャッシュノードから順でも良い。
また、アクセスを転送する順番は、「『情報の必要度』の数値」の最も少ないキャッシュノードに対して、閾値Θ1まで増加させ、その後その時点で「『情報の必要度』の数値」の最も少ないキャッシュノードに対して、閾値Θ1まで増加させることを繰り返しても良い。
また、アクセスを転送する順番は、「『情報の必要度』の数値」の最も少ないキャッシュノードから「『情報の必要度』の数値」の少ない順番にアクセスを転送することを繰り返すものであっても良い。
また、アクセスを転送する順番は、下位クラスタ2内のキャッシュノードのアクセスを受信可能なインターフェースの数が少ない順でも良い。
また、アクセスを転送する順番は、下位クラスタ2内のキャッシュノードのアクセスを受信可能なインターフェースの入力バッファサイズが少ない順でも良い。
また、アクセスを転送する順番は、下位クラスタ毎で異なっていても良い。
(3)クラスタの増加に関する動作の説明
図8、図9および図10を参照して、本実施例の分散情報配置システムにおけるクラスタの増加に関する動作を説明する。
各下位クラスタ2には、その代表キャッシュノード1またはクラスタ2の中心から一定の物理距離または論理的距離をNW半径10とする円で特定されるクラスタ領域と、このクラスタ領域に設置することのできるキャッシュノードの最大数とが予め定められる。
ここで、自キャッシュノード1または下位クラスタ2を中心としたアクセス元のNW半径10は、下位クラスタ2内の全てまたは1部のキャッシュノードの、アクセスを受信可能なインターフェースの数に基づいて設定しても良い。
また、自キャッシュノード1または下位クラスタ2を中心としたアクセス元のNW半径10は、下位クラスタ2内の全てまたは1部のキャッシュノードの、アクセスを受信可能なインターフェースの入力バッファサイズに基づいて設定しても良い。
また、自キャッシュノード1または下位クラスタ2を中心としたアクセス元のNW半径10は、下位クラスタ2内の全てまたは1部のキャッシュノードの、アクセスを受信可能なインターフェースの数と、アクセスを受信可能なインターフェースの入力バッファサイズの両方に基づいて設定しても良い。
このようにして、下位クラスタ2の代表キャッシュノード1が「NW半径10を超える遠くからのアクセスが多くなる」あるいは「計算した自下位クラスタ2に置くことの出来るキャッシュノードの最大数に近づく」ことを知ると、NW半径10を超える場所に存在する、次数の大きなキャッシュノードに情報をキャッシュしてもらえないかランダムに通常のInternetにおける通信手法により打診し、承諾をもらったキャッシュノード11にキャッシュさせてもらう(図9のS901〜S904)。ここで、複数の承諾をもらった場合には、それらの全て、あるいはそれらのうち次数の大きなキャッシュノードに対して、キャッシュさせてもらう(図9のS905)。
キャッシュノードの依頼を行った代表キャッシュノード1は、自キャッシュノード1を含む代表キャッシュノード1のみで構成される上位クラスタNW17を作成し、上位クラスタNW17用の上位クラスタマップ18−2を作成する(図9のS906)。
新規追加されたキャッシュノード11は自分を代表キャッシュノードとする下位クラスタ15を新たに形成し、下位クラスタ15内用下位クラスタマップ4−15を作成する(図9のS907)。
また、新規追加されたキャッシュノード11は情報のURLと自身のIPアドレスを自身の所属するNWドメイン内のDNSサーバ34に登録しておく(図9のS907)。ここで、キャッシュノード11の登録するDNSサーバは、オリジナルキャッシュノードの所属するクラスタ2内のキャッシュノードが、それぞれ情報のURLと自身のIPアドレスを登録しているDNSサーバ31,32,33の全てと異なっている。以降、追加される下位クラスタの代表ノードとその下位クラスタ内に追加されるキャッシュノードでの負荷分散の動作は、図2(a)および図2(b)と図3(a)および図3(b)で示したように行われる。これらの方法により、自律分散的な負荷分散が実現される(図9のS907)。
ここで、この代表キャッシュノード同士による上位クラスタ間オーバーレイNW17は、下位クラスタ2および下位クラスタ15のクラスタ内オーバーレイNWの上に構築される(図9のS907)。
また、新規追加されたキャッシュノード11はキャッシュノード依頼を受けた代表キャッシュノード1に対して、代表キャッシュノードのみで構成される上位クラスタNW17に対して、キャッシュノード11が上位クラスタ17に属することを認識してもらうための「entryメッセージ」を通常のInternet上の通信手段によって送る(図9のS907)。
キャッシュノード11への依頼を行った代表キャッシュノード1は、新規追加されたキャッシュノード11宛に、「entryメッセージ」を受信したことを示すメッセージを上位クラスタ17内通信によって送り、同時に上位クラスタマップ18に必要な情報を要求する(図9のS908)。要求を受けた新規追加キャッシュノード11は、自身のキャッシュノード11に関する要求情報を上位クラスタ17内通信によって、キャッシュノード11への依頼を行った代表キャッシュノード1へ送る。
キャッシュノード依頼を行った代表キャッシュノード1は、新規代表キャッシュノード11から受け取った要求情報をもとに上位クラスタマップ18−11を更新し、更新された上位クラスタマップ18−11を、上位クラスタ17内通信によって、代表キャッシュノードが所属する下位クラスタ内の他の代表キャッシュノード宛に送る。各代表キャッシュノードは各自の持つ上位クラスタ用の上位クラスタマップを更新して、登録完了のメッセージを、キャッシュノード依頼を行った代表キャッシュノード1に、上位クラスタ内通信によって送る(図9のS908)。
図11を参照すると、本実施例の分散情報配置システムにおける、代表キャッシュノードのみで構成される上位クラスタレベルのNW17(上位層)、下位クラスタレベルのNW2、15、16(中間層)、およびノードレベルのNW(最下層)の関係の1例が示されている。
下位クラスタ同士は原則的に代表キャッシュノードであるキャッシュノード1、11、14同士が、各下位クラスタ2、15、16内のキャッシュノード数などのマクロな情報を、一定時間間隔毎または不定時間間隔で上位クラスタNW17上でオーバーレイ通信を行うことによって交換し、互いの生存と状況を確認し合うと共に、各々の代表キャッシュノード1,11,14が保持している各下位クラスタ2,15,16のマクロ情報を更新する(図9のS909)。
ここで、同一情報のループを防ぐために、何らかのオーバーレイ通信は、代表キャッシュノード1、11、14のいずれかをIETFのRFC2796に規定されたルートリフレクタに設定した上での通信であっても良い。また、ここで同一情報のループを防ぐために、下位クラスタNW内の何らかのオーバーレイ通信は、IETFのRFC2328に規定されたOSPFをプロトコルとして用いても良い。また、ここで同一情報のループを防ぐために、下位クラスタNW内の何らかのオーバーレイ通信は、IETFのRFC1142またはRFC1195に規定されたIS−ISをプロトコルとして用いても良い。
さらに、全ての代表キャッシュノードの上位クラスタ17内用の下位クラスタマップの同期を取るために、上位クラスタ17内において何らかのオーバーレイ通信によって交換される情報には、何らかのフォーマットによるバージョン情報を含んでいても良い。
(4)キャッシュノードの減少に関する動作の説明
図12、図13および図14を参照して、本実施例の分散情報配置システムにおけるキャッシュノードの減少に関する動作を説明する。
図12の下位クラスタ15を例に取る。キャッシュノード19へのアクセスが減って、「『情報の必要度』の数値」がある閾値Θ2を下回ると、数値の変動を考慮して、その時点から一定時間の「『情報の必要度』の数値」の平均値を取得する(図13のS1301、S1302)。一定時間経過後の「『情報の必要度』の数値」の平均値がある閾値Θ2を下回ると、自キャッシュノード19の所属する下位クラスタ15内に他のキャッシュノードがいる限り、下位クラスタ15内の他のキャッシュノード全てに「脱退メッセージ」を下位クラスタ15内用通信によって送る(図13のS1303、S1304)。
ここで閾値Θ2は、キャッシュノードのアクセスを受信可能なインターフェースの入力バッファサイズの最大値の0から99%の割合の範囲内で、かつ後述のキャッシュノードが下位クラスタに追加される場合の閾値Θ1より小さい割合に設定する。また、閾値Θ2は、キャッシュノードのアクセスを受信可能なインターフェースの数や、インターフェースの入力バッファサイズなどに応じて、キャッシュノード毎に異なっていても良い。また、閾値Θ2は、自下位クラスタ内に置くことの出来るキャッシュノードの最大数に応じて、下位クラスタ毎で異なっていても良い。
脱退メッセージを受け取った下位クラスタ15内の他のキャッシュノードは自キャッシュノードの保持している下位クラスタ15内用下位クラスタマップから、脱退キャッシュノード19のIPアドレス以外の情報を消去し、「脱退メッセージが到着した」という確認メッセージを脱退キャッシュノード19に対して下位クラスタ内通信によって送信する(図13のS1305、S1306)。脱退キャッシュノード19は、下位クラスタ15内の全ての他のキャッシュノードから、確認メッセージを受け取った後で、自キャッシュノード19の保持しているキャッシュデータを削除し、情報のURLと自身のIPアドレスとを登録したDNSサーバに削除要求を出して下位クラスタ15から抜ける(図13のS1307)。
ここで、仮に代表キャッシュノード11が抜ける場合には、以下のようになる。代表キャッシュノード11へのアクセスが減って、「『情報の必要度』の数値」がある閾値Θ2を下回ると、数値の変動を考慮して、その時点から一定時間の「『情報の必要度』の数値」の平均値を取得する(図14のS1401、S1402)。一定時間の「『情報の必要度』の数値」の平均値がある閾値Θ2を下回ると、自キャッシュノード11の所属する下位クラスタ15内の他のキャッシュノードのうち、最も「『情報の必要度』の数値」の小さいキャッシュノード13に他の下位クラスタ2、16との通信を行う代表キャッシュノードを譲り、自キャッシュノード11の所属する下位クラスタ15内の他のキャッシュノード全てと、他の下位クラスタ2、16の各々全ての代表キャッシュノード1、14へ、「別のキャッシュノード13が代表キャッシュノードを引き継ぎ、自分11が抜けること」を、下位クラスタ内通信、上位クラスタ内通信によってそれぞれ知らせる(図14のS1403、S1404)。
代表キャッシュノード11からの脱退メッセージを受け取った下位クラスタ15内の他の全てのキャッシュノードは各々の持つ下位クラスタ15内用下位クラスタマップから代表キャッシュノード11の情報をIPアドレスを除いて削除し、「代表キャッシュノードを受け継いだキャッシュノード13」を代表キャッシュノードとして下位クラスタ15内用下位クラスタマップに設定する。さらに、「元の代表キャッシュノード11」と「代表キャッシュノードを受け継いだキャッシュノード13」に対して、下位クラスタ内通信によって「新しい代表キャッシュノード13を下位クラスタ15内用下位クラスタマップ4−15に登録したこと」を確認メッセージとして伝える(図14のS1405)。
同様に他の下位クラスタ2、16の各々の代表キャッシュノード1、14は、各々の保持している上位クラスタNW17用の上位クラスタマップ18−2、18−16から代表キャッシュノード11の情報を削除し、新しい代表キャッシュノード13を下位クラスタ15の代表キャッシュノードとして上位クラスタNW17用の上位クラスタマップ18−2、18−16に設定する。さらに他の下位クラスタ2、16の各々の代表キャッシュノード1、14は、確認メッセージを「代表キャッシュノードを受け継いだキャッシュノード13」と「元の代表キャッシュノード11」宛に上位クラスタ内通信によって送信する(図14のS1406)。
自キャッシュノード11の所属する下位クラスタ15内の全てのキャッシュノード、および他の下位クラスタ2、16の各々全ての代表キャッシュノード1、14からの確認メッセージを下位クラスタ内通信、上位クラスタ内通信によってそれぞれ受け取った後で、「元の代表キャッシュノード11」は、自キャッシュノード11の保持するキャッシュデータを削除し、情報のURLと自身のIPアドレスとを登録したDNSサーバに削除要求を出して下位クラスタ15から抜ける(図14のS1407)。
(5)クラスタの減少に関する動作の説明
図15および図16を参照して、本実施例の分散情報配置システムにおけるクラスタの減少に関する動作を説明する。
下位クラスタ16を例にとって説明する。下位クラスタ16に最終的に残ったキャッシュノード14は必然的に下位クラスタの代表キャッシュノードであるが、代表キャッシュノード14でも「『情報の必要度』の数値」がある閾値を下回ると、数値の変動を考慮して、その時点から一定時間の「『情報の必要度』の数値」の平均値を取得する(図16のS1601、S1602)。一定時間の「『情報の必要度』の数値」の平均値がある閾値を下回ると、代表キャッシュノード14は他の全ての下位クラスタ2、15の代表キャッシュノード1、11に対して、脱退メッセージを送る(図16のS1603、S1604)。同時に、脱退代表キャッシュノード14は自キャッシュノード14の保持している上位クラスタNW17用上位クラスタマップ18−16を見て、他の全ての下位クラスタ2、15の代表キャッシュノード1,11のうち、キャッシュノード当たりの「『情報の必要度』の数値」が最も少なく、かつ下位クラスタ内のキャッシュノード密度の最大値の大きい代表キャッシュノード11に、自キャッシュノード14の所属する下位クラスタ16内用の下位クラスタマップ4−16を上位クラスタ内通信によって送信する(図16のS1606)。
他の全ての下位クラスタ2、15の代表キャッシュノード1、11は、脱退メッセージを送信した代表キャッシュノード14に対して「代表キャッシュノード14が抜けること」を確認するメッセージを「代表キャッシュノード14」宛に上位クラスタ内通信によって送信した後で、代表キャッシュノード14に関するIPアドレス以外の情報を上位クラスタNW17用上位クラスタマップ18−2、18−15の各々から削除する(図16のS1605)。ここで脱退代表キャッシュノード14から下位クラスタ16内用の下位クラスタマップ4−16を受け取った代表キャッシュノード11は、「下位クラスタマップ4−16を受け取ったこと」を確認メッセージとして、脱退代表キャッシュノード14に上位クラスタ内通信によって送信する(図16のS1607)。
脱退代表キャッシュノード14は、他の全ての下位クラスタ2、15の代表キャッシュノード1、11から「代表キャッシュノード14が抜けること」を確認するメッセージを受け取り、かつ脱退代表キャッシュノード14から下位クラスタ16内用の下位クラスタマップ4−16を受け取った代表キャッシュノード11から「下位クラスタマップ4−16を受け取ったこと」を確認するメッセージを上位クラスタ内通信によって受け取った後で、自キャッシュノード14の保持するキャッシュデータを削除し、情報のURLと自身のIPアドレスとを登録したDNSサーバに削除要求を出して上位クラスタNW17から抜ける(図16のS1608)。
(6)終末キャッシュノードの脱退に関する動作の説明
図17および図18を参照して、終末キャッシュノードの脱退に関する動作を説明する。
最終的に残った下位クラスタ15において、最終的に残ったキャッシュノード11(終末キャッシュノード)でも「『情報の必要度』の数値」がある閾値を下回ると、数値の変動を考慮して、その時点から一定時間の「『情報の必要度』の数値」の平均値を取得する(図18のS1801)。一定時間の「『情報の必要度』の数値」の平均値がある閾値を下回ると、オリジナルキャッシュノード1に対して、「自分11が最終データのキャッシュノードであること」、終末キャッシュノードが保持している「キャッシュデータ」および「過去に脱退した他の下位クラスタの下位クラスタ内用の下位クラスタマップ」を、1)自キャッシュノード11にそのまま置いても良い、2)何か他の形態(例えばリンク先としてなど)で置いても良い、あるいは、3)削除して欲しい、という「希望情報」と共に、上位クラスタ内通信によって伝える(図18のS1802)。
オリジナルキャッシュノード1は、終末キャッシュノード11からの「希望情報」を元に、情報を、1)そのまま置いてもらうか、2)何か他の形態(例えばリンク先としてなど)で置かせてもらうか、あるいは、3)削除してもらうかを検討し、その結果を終末キャッシュノード11に対して上位クラスタ内通信によって伝える(図18のS1803)。ここで、終末キャッシュノード11に情報をキャッシュし続けてもらう理由は、そのデータが再度必要になる場合、最後までアクセスがあったキャッシュノードの周辺からの場合が多いと推定されるためである。
終末キャッシュノード11に終末キャッシュノード11がキャッシュしている情報を削除してもらう場合、オリジナルキャッシュノード1は、最後に残った下位クラスタ15にいた他のキャッシュノード13、19に対して、情報を、1)そのまま置いて欲しい、2)何か他の形態(例えばリンク先としてなど)で置かせて欲しい、ことを通常のInternet上の通信手段によって伝える(図18のS1805)。
終末キャッシュノード11は、オリジナルキャッシュノード1からの回答に従って、情報の管理形態を決定する。すなわち、情報を、1)そのまま置くか、2)何か他の形態(例えばリンク先としてなど)で置くか、あるいは、3)削除するか、のいずれかを行う(図18のS1804)。
オリジナルキャッシュノード1から、情報を、1)そのまま置いて欲しい、2)何か他の形態(例えばリンク先としてなど)で置かせて欲しいというメッセージを受け取った、最後に残った下位クラスタ15にいた他のキャッシュノード13、19は、それぞれオリジナルキャッシュノード1に対して、情報を、1)自キャッシュノードにそのまま置いても良い、2)何か他の形態(例えばリンク先としてなど)で置いても良い、あるいは、3)置きたくない、という「希望情報」をそれぞれ通常のInternet上の通信手法によって伝える(図18のS1806)。
「希望情報」を受け取ったオリジナルキャッシュノード1は、その中に、情報を、1)自キャッシュノードにそのまま置いても良い、2)何か他の形態(例えばリンク先としてなど)で置いても良いという回答があれば、1)、2)の優先順位で、そのキャッシュノードと上位クラスタを形成し、情報を、1)自キャッシュノードにそのまま置いても良い、2)何か他の形態(例えばリンク先としてなど)で置いても良いという回答を行ったキャッシュノードへ、キャッシュする情報を上位クラスタ内通信によって送信する(図18のS1807)。
「希望情報」を受け取ったオリジナルキャッシュノード1は、その中に3)置きたくないという回答しか無ければ、最後から2番目に削除された下位クラスタ16にいた全てのキャッシュノードに対して、情報を、1)そのまま置いて欲しい、2)何か他の形態(例えばリンク先としてなど)で置かせて欲しい、ことを通常のInternet上の通信手法によって伝える。
オリジナルキャッシュノード1から、情報を、1)そのまま置いて欲しい、2)何か他の形態(例えばリンク先としてなど)で置かせて欲しいというメッセージを受け取った、最後から2番目に残った下位クラスタ16にいた全てのキャッシュノード14、20、21は、それぞれオリジナルキャッシュノード1に対して、情報を、1)自キャッシュノードにそのまま置いても良い、2)何か他の形態(例えばリンク先としてなど)で置いても良い、あるいは、3)置きたくない、という「希望情報」をそれぞれ通常のInternet上の通信手法によって伝える(図18のS1808)。
以下、段落番号0199から段落番号0202までの手順を繰り返す。
最終的にオリジナルキャッシュノード1以外にキャッシュしてくれるキャッシュノードが無ければ、オリジナルキャッシュノード1は、情報を自キャッシュノード1に保存したままにする(図18のS1809)。
ここで、オリジナルキャッシュノード1が保存する情報は、キャッシュ情報および上位クラスタの過去に登録された1部または全ての代表ノードのDNSサーバ上の登録名およびIPアドレスであっても良い。また、オリジナルキャッシュノード1が保存する情報は、キャッシュ情報および複数の下位クラスタ過去に登録された1部または全てのキャッシュノードのDNSサーバ上の登録名およびIPアドレスを含んでいても良い。また、オリジナルキャッシュノード1が保存する情報は、キャッシュ情報および上位クラスタの過去に登録された1部または全ての代表ノードと、複数の下位クラスタの過去に登録された1部または全てのキャッシュノードのDNSサーバ上の登録名およびIPアドレスを含んでいても良い。
(7)アクセスが再度増加した場合に関する動作の説明
上記「(6)終末キャッシュノードの脱退に関する動作の説明」において、最終的にキャッシュされるべき情報をどのキャッシュノードが保持しているかによって、最初のステップのみが異なる。
(7−1)最終的にオリジナルキャッシュノードのみがキャッシュされるべき情報を保持している場合
この場合は、「(1)キャッシュノードの増加に関する動作の説明」が最初のステップとなる。
(7−2)最終的にオリジナルキャッシュノードと終末キャッシュノードがキャッシュされるべき情報を保持している場合
図17を用いて説明する。この場合、オリジナルキャッシュノード1と終末キャッシュノード11のうち、アクセスを受けたキャッシュノードにおいて、「(1)キャッシュノードの増加に関する動作の説明」が最初のステップとなる。終末キャッシュノード11においてアクセスが増加し、「(1)キャッシュノードの増加に関する動作の説明」で示した、閾値Θ1を超えてキャッシュノードの追加が必要になった場合、「(1)キャッシュノードの増加に関する動作の説明」で示した手順に従って、一定時間待ってから、終末キャッシュノード11は自分の保持している下位クラスタ15内の下位クラスタマップ4−15の中に残っている、下位クラスタ15内で過去にキャッシュノードであったキャッシュノード13、19に情報をキャッシュしてもらえないかを通常のInternet上の通信手法によって打診する。もし、いずれからも承諾を得られなかった場合には、ある一定のホップ数にあるキャッシュノードのうち、次数の大きなキャッシュノードにランダムに情報をキャッシュしてもらえないかを通常のInternet上の通信手法によって打診する。一定のホップ数内のキャッシュノードから承諾が得られなければ、該終末キャッシュノードは探索ホップ数を+1して、承諾を得られるキャッシュノードを探索する。
下位クラスタ15内の過去のキャッシュノード13、19あるいはホップ数による探索によって、いずれかのキャッシュノードから承諾を通常のInternet上の通信手法によって受けると、後は「(1)キャッシュノードの増加に関する動作の説明」において説明した手順に従って、キャッシュノードを増加させていく。
本実施例によれば、以下のような効果が得られる。
第1の効果は、分散キャッシュ配置が効率的に行えることである。その理由は、代表キャッシュノードを用いたキャッシュノードの下位クラスタ化、代表キャッシュノードあるいは下位クラスタを中心としたNW距離の導入、NW距離より遠い先からのアクセスが一定量以上増加した場合にはNW距離より遠い位置にいるキャッシュノードを中心とした別下位クラスタを形成する、という仕組みを用いたためである。
第2の効果は、キャッシュノード間のアクセスの負荷分散が自律分散的かつ効率的に行えることである。その理由は、代表キャッシュノードを含む下位クラスタ内で独自のオーバーレイNWを形成し、その中で各キャッシュノードの負荷状況を、下位クラスタに属する全てのキャッシュノードが把握可能となる仕組みを用いたためである。
第3の効果は、ある期間に渡ってアクセスが減少し、殆どまたは全くアクセスされなくなった情報を、再びアクセスが増えてくると効率的に増加させることができることである。その理由は、アクセス量の減少に伴うキャッシュノードおよび下位クラスタの縮小の仕組み、最終的な情報の効率的な保管の仕組みを設けたためである。
第4の効果は、各々の下位クラスタは自律分散的に負荷分散を行うこと、各々の下位クラスタはネットワーク上の距離的に異なる場所に配置されることによって、キャッシュする情報に対する破壊行為から情報を守ることが可能になる、すなわち情報の攻撃行為に対する頑健性が向上することである。
次に、本発明の分散情報配置システムの構成要素となるノード装置の実施例について説明する。
図20を参照すると、本実施例のノード装置は、処理装置1100と、記憶装置1200と、通信装置1300とから構成される。
記憶装置1200は、コンピュータの主記憶や補助記憶で構成され、ユーザ端末へ提供する情報であるキャッシュ情報1210、図4に示した下位クラスタマップ1220および図10に示した上位クラスタマップ1230を記憶するために用いられる。
通信装置1300は、ネットワークインタフェースカード等で構成され、インターネット通信手段1310およびオーバーレイ通信手段1320として用いられる。
処理装置1100は、コンピュータの中央処理装置で構成され、負荷分散手段1110、サービス提供手段1120、負荷情報更新手段1130、キャッシュノード増加手段1140、キャッシュノード減少手段1150、クラスタ増加手段1160、クラスタ減少手段1170、終末手段1180およびクラスタマップ同期手段1190を備えている。これらの各手段は、処理装置1100上で実行されるプログラムによって実現することができる。プログラムは、磁気ディスク等のコンピュータ可読記録媒体に記録され、コンピュータに読み取られることによって、コンピュータ上に上記の各手段1110〜1190を実現する。
負荷分散手段1110は、ユーザ端末からキャッシュ情報1210に対するアクセス要求を受信した場合に、このアクセス要求を自ノードの属するクラスタの何れのノードで受け付けるかを、下位クラスタマップ1220に記載された各ノードの負荷情報(本実施例の場合は、『情報の必要度』の数値)に基づいて判断する機能を有する。負荷分散手段1110は、自ノードで受け付けると判断した場合にはアクセス要求を自ノードのサービス提供手段1120へ転送し、他ノードで受け付けると判断した場合には、オーバーレイ通信手段1320を通じて該当する他のノードへアクセス要求を転送する。また負荷分散手段1110は、自ノードのグローバルIPアドレスとキャッシュ情報1210のURLの対応関係を、自ノードが属するNWドメインのDNSサーバに登録する機能を有する。
サービス提供手段1120は、負荷分散手段1110から通知されたアクセス要求に従って、キャッシュ情報1210を要求元のユーザ端末へ送信する機能を有する。
負荷情報更新手段1130は、サービス提供手段1120がキャッシュ情報1210をアクセスする毎に、図1で説明したように、下位クラスタマップ1220中の自ノードの『情報の必要度』の数値を増加させ、それに応じて、その1次および2次微分値を更新する機能を有する。また負荷情報更新手段1130は、一定時間経過毎に、下位クラスタマップ1220中の自ノードの『情報の必要度』の数値を減少させ、それに応じて、その1次および2次微分値を更新する機能を有する。
キャッシュノード増加手段1140は、図2および図3で説明したように、自ノードの属するクラスタに新たなキャッシュノードを追加する機能を有する。このキャッシュノード増加手段1140は、図3で説明した処理のうち、クラスタの代表ノードによって実行される処理部であるマスタ部1141と、代表ノード以外のノードによって実行される処理部であるスレーブ部1142とで構成される。
キャッシュノード減少手段1150は、図12、図13および図14で説明したように、クラスタからキャッシュノードを削減する機能を有する。このキャッシュノード減少手段1150は、図13および図14で説明した処理のうち、削減対象となるノードによって実行される処理部であるマスタ部1151と、削減対象となるノード以外のノードによって実行される処理部であるスレーブ1152とで構成される。
クラスタ増加手段1160は、図8および図9で説明したように、新たなクラスタを追加する機能を有する。このクラスタ増加手段1160は、図9で説明した処理のうち、新たなクラスタを生成しようとする代表ノードによって実行される処理部であるマスタ部1161と、新たなクラスタを生成しようとする代表ノード以外のノードによって実行される処理部であるスレーブ部1162とで構成される。
クラスタ減少手段1170は、図15および図16で説明したように、クラスタを削減する機能を有する。このクラスタ減少手段1170は、図16で説明した処理のうち、削減対象となるクラスタの代表ノードによって実行される処理部であるマスタ部1171と、削減対象となるクラスタの代表ノード以外のノードによって実行される処理部であるスレーブ部1172とで構成される。
終末手段1180は、図17および図18で説明したような終末キャッシュノードに関する処理を司る機能を有する。この終末手段1180は、図18で説明した処理のうち、、オリジナルキャッシュノードによって実行される処理部であるマスタ部1181と、それ以外のノードによって実行される処理部であるスレーブ部1182とで構成される。クラスタマップ同期手段1190は、キャッシュノード間でクラスタマップの内容を一致させる処理を司る機能を有する。このクラスタマップ同期手段1190は、図10に示した上位クラスタマップの同期処理を実行する処理部である上位クラスタ部1191と、図4に示した下位クラスタマップの同期処理を実行する処理部である下位クラスタ部1192とで構成される。
以上、本発明の実施の形態および実施例を説明したが、本発明は以上の例に限定されずその他各種の付加変更が可能である。例えば、上記の例では、幾つかのキャッシュノードを一つのクラスタとしてまとめたが、クラスタ化は本発明の必須の要件ではない。
本発明の活用例としては、通信NW上でのキャッシングを行う、Webサービス、Peer−to−Peerサービス、データストレージなどが挙げられる。
本発明の一実施例の分散情報配置システムにおける情報の必要度の数値の変化の様子の1例を示す図である。 本発明の一実施例の分散情報配置システムにおける新規キャッシュノード追加の様子の1例を示す図である。 本発明の一実施例の分散情報配置システムにおける新規キャッシュノード追加の様子の1例を示す図である。 本発明の一実施例の分散情報配置システムにおける新規キャッシュノード追加のフローチャートの1例を示す図である。 本発明の一実施例の分散情報配置システムにおける新規キャッシュノード追加のフローチャートの1例を示す図である。 本発明の一実施例の分散情報配置システムにおける、各キャッシュノードが保持する下位クラスタ内用の下位クラスタマップの1例を示す図である。 本発明の一実施例の分散情報配置システムにおける同一下位クラスタ内のキャッシュノード間の通信の様子の1例を示す図である。 本発明の一実施例の分散情報配置システムにおける同一下位クラスタ内でのアクセスの負荷分散の様子の1例を示す図である。 本発明の一実施例の分散情報配置システムにおける同一下位クラスタ内でのアクセスの負荷分散の様子の1例を示す図である。 本発明の一実施例の分散情報配置システムにおけるアクセスの負荷分散のフローチャートの1例を示す図である。 本発明の一実施例の分散情報配置システムにおけるアクセスの負荷分散のフローチャートの1例を示す図である。 本発明の一実施例の分散情報配置システムにおける、あるNW距離以上のキャッシュノードからのアクセスが増加することによって、NW距離以上の次数の高いキャッシュノードのキャッシュノード化とそこでの新規下位クラスタ生成が行われる様子の1例を示す図である。 本発明の一実施例の分散情報配置システムにおける、あるNW距離以上のキャッシュノードからのアクセスが増加することによって、NW距離以上の次数の高いキャッシュノードのキャッシュノード化とそこでの新規下位クラスタ生成が行われる際のフローチャートの1例を示す図である。 本発明の一実施例の分散情報配置システムにおける、代表キャッシュノードのみで構成される上位クラスタNWの上位クラスタマップの1例を示す図である。 本発明の一実施例の分散情報配置システムにおける、代表キャッシュノードのみで構成される上位クラスタレベルのNW(上位層)、下位クラスタ内レベルのNW(中間層)、およびノードレベルのNW(最下層)の関係の1例を示す図である。 本発明の一実施例の分散情報配置システムにおけるキャッシュノードの脱退の様子の1例を示す図である。 本発明の一実施例の分散情報配置システムにおけるキャッシュノードの脱退のフローチャートの1例を示す図である。 本発明の一実施例の分散情報配置システムにおける代表キャッシュノードの脱退のフローチャートの1例を示す図である。 本発明の一実施例の分散情報配置システムにおける下位クラスタの脱退の様子の1例を示す図である。 本発明の一実施例の分散情報配置システムにおける下位クラスタの脱退のフローチャートの1例を示す図である。 本発明の一実施例の分散情報配置システムにおける最後に残ったキャッシュノードの脱退の様子の1例を示す図である。 本発明の一実施例の分散情報配置システムにおける最後に残ったキャッシュノードの脱退のフローチャートの1例を示す図である。 本発明の一実施の形態の分散情報配置システムのブロック図である。 本発明のノード装置の一実施例のブロック図である。
符号の説明
1…オリジナルキャッシュノードかつ下位クラスタ2の代表キャッシュノード
2…オリジナルキャッシュノードを含む下位クラスタ
3、3a、3b、3c…アクセスを表すアリ
4、4−2、4−15、4−16…下位クラスタマップ
5…オリジナルキャッシュノード1から一定の距離
6…下位クラスタ2内のキャッシュノード
8…下位クラスタ2内のキャッシュノード
10…オリジナルキャッシュノード1または下位クラスタ2から一定の物理的または論理的距離
10a…代表キャッシュノード11または下位クラスタ15から一定の距離または論理的距離
10b…代表キャッシュノード11または下位クラスタ16から一定の距離または論理的距離
11…新規追加されたキャッシュノードかつ下位クラスタ15の代表キャッシュノード
13…下位クラスタ15内のキャッシュノード
14…新規追加されたキャッシュノードかつ下位クラスタ16の代表キャッシュノード
15…新規追加されたキャッシュノード11が作成した下位クラスタ
16…新規追加されたキャッシュノード14が作成した下位クラスタ
17…各下位クラスタの代表キャッシュノードのみで構成される上位クラスタおよびそのNW
18…上位クラスタ内用のクラスタマップ
19…下位クラスタ15内のキャッシュノード
20…下位クラスタ16内のキャッシュノード
21…下位クラスタ16内のキャッシュノード
31,32,33、34、35、36、37、38、39…DNSサーバ
A…アクセスによる情報の必要度の数値の増加分で、アリ3が運んでいる荷物
B…一般的なノード(キャッシュを行っていないノード)

Claims (20)

  1. データを記憶するキャッシュと該キャッシュから前記データを読み出して端末装置に送信する手段とを備えた複数のノード装置がネットワークを介して接続された分散情報配置システムであって、
    前記ノード装置は、自ノード装置および他のノード装置の負荷情報を記憶する記憶手段と、前記端末装置から前記データのアクセス要求を受信したとき、前記記憶手段に記憶された負荷情報に基づいて、受信した前記アクセス要求を自ノード装置で処理するか、他の何れのノード装置で処理するかを判断する負荷分散手段と、自ノード装置で処理すると判断した前記アクセス要求を自ノード装置で受け付けて処理を行うサービス提供手段と、何れかの他のノード装置で処理すると判断した前記アクセス要求を該当する他のノード装置へ転送する通信手段とを備えたことを特徴とする分散情報配置システム。
  2. 前記ノード装置は、自ノード装置のグローバルIPアドレスと前記データのURLとの対応関係を、自ノード装置が属するネットワークのDNSサーバに登録する手段を備えることを特徴とする請求項1に記載の分散情報配置システム。
  3. 前記DNSサーバは、同一のURLに対して異なる複数のグローバルIPアドレスが登録されているとき、これら複数のグローバルIPアドレスがほぼ均等に使用されるように、前記URLに対応するグローバルIPアドレスの問い合わせに対する応答中に含めるグローバルIPアドレスを決定することを特徴とする請求項2に記載の分散情報配置システム。
  4. 前記ノード装置は、前記負荷情報の内容を他の前記ノード装置と授受し合って内容を一致させる同期手段を備えることを特徴とする請求項1乃至3の何れか1項に記載の分散情報配置システム。
  5. 前記負荷情報は、キャッシュ情報がアクセスされる毎に値が加算され、一定時間が経過する毎に値が減少される数値で表現されることを特徴とする請求項1乃至4の何れか1項に記載の分散情報配置システム。
  6. 同じ前記データを記憶する複数の前記ノード装置が複数集まって1つのクラスタを構成し、同じクラスタ内の複数の前記ノード装置間で前記端末装置から受信したアクセス要求の負荷分散を行う請求項1乃至5の何れか1項に記載の分散情報配置システム。
  7. 前記クラスタを構成する複数のノード装置のうちの1つのノード装置が代表ノードとして機能し、前記代表ノードは、自クラスタ内の前記ノード装置の負荷情報を収集して監視し、負荷が高くなった際に、前記データを未だキャッシュしていない他の前記ノード装置に前記データのコピーを送信して当該ノード装置を自クラスタの新たな構成メンバに加える処理を行うことを特徴とする請求項6に記載の分散情報配置システム。
  8. 前記代表ノードは、自クラスタ内の前記ノード装置の負荷情報を収集して監視し、負荷が低くなった際に、自クラスタ内の幾つかの構成メンバに対して前記データのキャッシュを削除する指示を送信して当該ノード装置を自クラスタの構成メンバから外す処理を行うことを特徴とする請求項7に記載の分散情報配置システム。
  9. 前記代表ノードは、新クラスタ生成条件が成立したか否かを判定し、前記新クラスタ生成条件が成立した場合に、前記データを未だキャッシュしていない他の前記ノード装置に対して、前記データのコピーを添えて新規クラスタの生成指示を送信する手段を備え、前記新規クラスタの生成指示を受信した前記ノード装置は、前記データのコピーを自ノード装置の前記キャッシュに記憶し、自ノード装置を代表ノードとする新たなクラスタを生成する手段を備えることを特徴とする請求項6または7に記載の分散情報配置システム。
  10. 前記代表ノードは、自クラスタ内の前記ノード装置への前記端末装置からのアクセス情報を収集して監視し、予め定めれたネットワーク半径を超える遠くからのアクセスが増大した状況が発生した場合に、前記新クラスタ生成条件が成立したものと判定することを特徴とする請求項9に記載の分散情報配置システム。
  11. 前記代表ノードは、自クラスタに属する前記ノード装置の数が予め定められた最大数に達した場合に、前記新クラスタ生成条件が成立したものと判定することを特徴とする請求項9に記載の分散情報配置システム。
  12. 新たに生成された前記クラスタの前記代表ノードは、自クラスタに属する前記ノード装置が自ノードだけになり、且つ、自ノードに対する前記端末装置からのアクセス頻度が低下した場合に、自クラスタを消滅させる処理を行うことを特徴とする請求項10または11に記載の分散情報配置システム。
  13. 前記データのオリジナルを保有する前記ノード装置を含むクラスタ以外で最終的に残ったクラスタにおいて、最終的に残った前記ノード装置である終末ノードでも前記端末装置からのアクセス頻度が低下した場合は、前記終末ノードと前記データのオリジナルを保有する前記ノード装置との間で、前記終末ノードにおけるキャッシュデータの維持および破棄に関するネゴシエーションを行い、両者で合意が得られた場合、前記終末ノードにおいて前記データのキャッシュを保持し続けることを特徴とする請求項12に記載の分散情報配置システム。
  14. データを記憶するキャッシュと該キャッシュから前記データを読み出して端末装置に送信する手段とを備えた複数のノード装置がネットワークを介して接続された分散情報配置システムにおける負荷分散方法であって、
    前記ノード装置のそれぞれが、前記端末装置から前記データのアクセス要求を受信したとき、自ノード装置および他のノード装置の負荷情報に基づいて、受信した前記アクセス要求を自ノード装置で処理するか、他の何れのノード装置で処理するかを判断するステップと、
    前記ノード装置のそれぞれが、自ノード装置で処理すると判断した前記アクセス要求を自ノード装置で受け付けて処理を行うステップと、
    前記ノード装置のそれぞれが、何れかの他のノード装置で処理すると判断した前記アクセス要求を該当する他のノード装置へ転送するステップとを含むことを特徴とする負荷分散方法。
  15. 前記ノード装置が、自ノード装置のグローバルIPアドレスと前記データのURLとの対応関係を、自ノード装置が属するネットワークのDNSサーバに登録するステップを含むことを特徴とする請求項14に記載の負荷分散方法。
  16. 前記DNSサーバが、同一のURLに対して異なる複数のグローバルIPアドレスが登録されているとき、これら複数のグローバルIPアドレスがほぼ均等に使用されるように、前記URLに対応するグローバルIPアドレスの問い合わせに対する応答中に含めるグローバルIPアドレスを決定するステップを含むことを特徴とする請求項15に記載の負荷分散方法。
  17. データを記憶するキャッシュと該キャッシュから前記データを読み出して端末装置に送信する手段とを備えたノード装置であって、
    自ノード装置および他のノード装置の負荷情報を記憶する記憶手段と、前記端末装置から前記データのアクセス要求を受信したとき、前記記憶手段に記憶された負荷情報に基づいて、受信した前記アクセス要求を自ノード装置で処理するか、他の何れのノード装置で処理するかを判断する負荷分散手段と、自ノード装置で処理すると判断された前記アクセス要求を自ノード装置で受け付けて処理を行うサービス提供手段と、何れかの他のノード装置で処理すると判断された前記アクセス要求を該当する他のノード装置へ転送する通信手段とを備えたことを特徴とするノード装置。
  18. 自ノード装置のグローバルIPアドレスと前記データのURLとの対応関係を、自ノード装置が属するネットワークのDNSサーバに登録する手段を備えることを特徴とする請求項17に記載のノード装置。
  19. データを記憶するキャッシュと、該キャッシュから前記データを読み出して端末装置に送信する手段と、自ノード装置および他のノード装置の負荷情報を記憶する記憶手段とを備えたノード装置を構成するコンピュータを、
    前記端末装置から前記データのアクセス要求を受信したとき、前記記憶手段に記憶された負荷情報に基づいて、受信した前記アクセス要求を自ノード装置で処理するか、他の何れのノード装置で処理するかを判断する負荷分散手段と、自ノード装置で処理すると判断された前記アクセス要求を自ノード装置で受け付けて処理を行うサービス提供手段と、何れかの他のノード装置で処理すると判断された前記アクセス要求を該当する他のノード装置へ転送する通信手段として機能させるためのプログラム。
  20. 前記コンピュータを、さらに、自ノード装置のグローバルIPアドレスと前記データのURLとの対応関係を、自ノード装置が属するネットワークのDNSサーバに登録する手段として機能させるための請求項19に記載のプログラム。
JP2008170116A 2008-06-30 2008-06-30 分散情報配置システム Pending JP2010009449A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008170116A JP2010009449A (ja) 2008-06-30 2008-06-30 分散情報配置システム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008170116A JP2010009449A (ja) 2008-06-30 2008-06-30 分散情報配置システム

Publications (1)

Publication Number Publication Date
JP2010009449A true JP2010009449A (ja) 2010-01-14

Family

ID=41589830

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008170116A Pending JP2010009449A (ja) 2008-06-30 2008-06-30 分散情報配置システム

Country Status (1)

Country Link
JP (1) JP2010009449A (ja)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100896838B1 (ko) * 2004-04-30 2009-05-12 화이자 인코포레이티드 모폴린 화합물
JP2013205891A (ja) * 2012-03-27 2013-10-07 Fujitsu Ltd 並列計算機、並列計算機の制御方法及び制御プログラム
JP2014528615A (ja) * 2011-09-29 2014-10-27 オラクル・インターナショナル・コーポレイション トランザクショナルミドルウェアマシン環境において正確なロードバランシングをサポートするためのシステムおよび方法
JP2017033240A (ja) * 2015-07-31 2017-02-09 三菱電機株式会社 サーバ
JP2017117015A (ja) * 2015-12-21 2017-06-29 富士通株式会社 情報処理システム、プロキシ装置、プロキシ制御方法及びプロキシプログラム
US9736235B2 (en) 2014-09-02 2017-08-15 Hitachi, Ltd. Computer system, computer, and load balancing method

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1998053410A2 (en) * 1997-05-22 1998-11-26 Trustees Of Boston University A method and system for distributed caching, prefetching and replication
JP2005031987A (ja) * 2003-07-14 2005-02-03 Nec Corp コンテンツ配信システムにおけるコンテンツ配置管理システム及びコンテンツ配置管理プログラム
JP2007305025A (ja) * 2006-05-15 2007-11-22 Nippon Telegr & Teleph Corp <Ntt> 生体の原理を用いたレプリカ制御法、およびそれを具備する装置、ならびにそのプログラム
JP2008071156A (ja) * 2006-09-14 2008-03-27 Nec Corp 負荷分散システム、方法、及び、プログラム

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1998053410A2 (en) * 1997-05-22 1998-11-26 Trustees Of Boston University A method and system for distributed caching, prefetching and replication
JP2005031987A (ja) * 2003-07-14 2005-02-03 Nec Corp コンテンツ配信システムにおけるコンテンツ配置管理システム及びコンテンツ配置管理プログラム
JP2007305025A (ja) * 2006-05-15 2007-11-22 Nippon Telegr & Teleph Corp <Ntt> 生体の原理を用いたレプリカ制御法、およびそれを具備する装置、ならびにそのプログラム
JP2008071156A (ja) * 2006-09-14 2008-03-27 Nec Corp 負荷分散システム、方法、及び、プログラム

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100896838B1 (ko) * 2004-04-30 2009-05-12 화이자 인코포레이티드 모폴린 화합물
JP2014528615A (ja) * 2011-09-29 2014-10-27 オラクル・インターナショナル・コーポレイション トランザクショナルミドルウェアマシン環境において正確なロードバランシングをサポートするためのシステムおよび方法
JP2013205891A (ja) * 2012-03-27 2013-10-07 Fujitsu Ltd 並列計算機、並列計算機の制御方法及び制御プログラム
US9736235B2 (en) 2014-09-02 2017-08-15 Hitachi, Ltd. Computer system, computer, and load balancing method
JP2017033240A (ja) * 2015-07-31 2017-02-09 三菱電機株式会社 サーバ
JP2017117015A (ja) * 2015-12-21 2017-06-29 富士通株式会社 情報処理システム、プロキシ装置、プロキシ制御方法及びプロキシプログラム

Similar Documents

Publication Publication Date Title
CN105409248B (zh) 用于增强发现的系统和方法
Ascigil et al. A keyword-based ICN-IoT platform
WO2010107105A1 (ja) ネットワークシステム
US10554555B2 (en) Hash-based overlay routing architecture for information centric networks
KR20170094863A (ko) 보안 감시 네트워크에서 정보데이터의 전송 및 캐싱 방법, 기록매체, 보안 감시 네트워크의 정보데이터 캐싱 장치, 그리고 보안 감시 네트워크 시스템
US10356209B2 (en) System and method to support context-aware content requests in information centric networks
CN102195855A (zh) 一种业务路由方法和业务网络
JP2010009449A (ja) 分散情報配置システム
US9069761B2 (en) Service-aware distributed hash table routing
JP2010009448A (ja) 分散情報配置システム
JP5845877B2 (ja) 情報処理装置、データ制御方法およびデータ制御プログラム
JP2016111703A (ja) 情報指向ネットワークにおけるコンテンツ配置
JP5136585B2 (ja) 情報通信システム、ノード装置、情報処理方法、及び情報処理プログラム
US20140317271A1 (en) Method and node apparatus for collecting information in content network based on information-centric networking
US20080235244A1 (en) Distributed content storing system, node device, node process program, and content data providing method
JP2013105227A (ja) P2P型Webプロキシネットワークシステム
JP5370269B2 (ja) 分散保存システム、分散保存システムの接続情報通知方法及びプログラム
Yassine et al. Routing approaches in named data network: a survey and emerging research challenges
CN102037711A (zh) 在对等网络中限制存储消息
JP5942994B2 (ja) イベント通知サービス方法およびシステム
JP3968066B2 (ja) 名前解決システム
JP2007006214A (ja) リソース情報検索システム、リゾルバ及びプログラム
Thiruvenkatam et al. A novel replication protocol using scalable partition prediction and information estimation algorithm for improving DCN data availability
JP5434268B2 (ja) 分散保存システム、データファイル分散保存方法及びプログラム
Jia et al. Modelling of P2P‐Based Video Sharing Performance for Content‐Oriented Community‐Based VoD Systems in Wireless Mobile Networks

Legal Events

Date Code Title Description
RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20091016

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20091016

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110510

RD07 Notification of extinguishment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7427

Effective date: 20120712

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120815

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120911

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20130129