(57)【要約】【課題】複数の情報処理装置がデータに対する複数のレプリカをそれぞれ記憶するデータベースシステムにおいて、端末装置が適切な情報処理装置にアクセスする制御を実現する。【解決手段】端末装置が複数のレプリカにアクセスするための複数の通信端点のうち、第１通信端点は、複数の情報処理装置のうち１つの情報処理装置が記憶するレプリカに対応付けて、その情報処理装置に設定されている。コンピュータは、いずれかの情報処理装置における動作状況の変化を契機として、複数の通信端点の中から、第１通信端点以外の第２通信端点を特定する（ステップ２０１）。そして、コンピュータは、特定した第２通信端点を、上記１つの情報処理装置が記憶するレプリカに対応付けて、その情報処理装置に設定する（ステップ２０２）。【選択図】図２
2019012318.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータが、
データに対する複数のレプリカをそれぞれ記憶する複数の情報処理装置のいずれかにおける動作状況の変化を契機として、端末装置が前記複数のレプリカにアクセスするための複数の通信端点の中から、前記複数の情報処理装置のうち１つの情報処理装置が記憶するレプリカに対応付けて前記１つの情報処理装置に設定されている第１通信端点以外の第２通信端点を特定し、
前記第２通信端点を、前記１つの情報処理装置が記憶するレプリカに対応付けて前記１つの情報処理装置に設定する、
ことを特徴とするアクセス制御方法。
【請求項２】
前記コンピュータは、
前記１つの情報処理装置が記憶するレプリカを示すレプリカ識別情報と、前記１つの情報処理装置に設定されている前記第１通信端点を示す第１通信端点識別情報との間の対応関係を示す対応関係情報を記憶し、
前記動作状況の変化を契機として、前記対応関係情報に含まれる前記第１通信端点識別情報を、前記第２通信端点を示す第２通信端点識別情報に変更することを特徴とする請求項１記載のアクセス制御方法。
【請求項３】
前記端末装置は、前記複数の通信端点に設定されている優先度に従って前記複数の通信端点のいずれかにアクセスし、前記動作状況の変化は、前記１つの情報処理装置が高負荷状態になったことを表し、前記第２通信端点の優先度は前記第１通信端点の優先度よりも低いことを特徴とする請求項２記載のアクセス制御方法。
【請求項４】
前記端末装置は、前記複数の通信端点に設定されている優先度に従って前記複数の通信端点のいずれかにアクセスし、前記動作状況の変化は、前記１つの情報処理装置以外の他の情報処理装置が高負荷状態になったことを表し、前記他の情報処理装置が高負荷状態になる前において、前記第２通信端点は、前記他の情報処理装置が記憶するレプリカに対応付けて前記他の情報処理装置に設定されており、前記第２通信端点の優先度は前記第１通信端点の優先度よりも高いことを特徴とする請求項２記載のアクセス制御方法。
【請求項５】
前記コンピュータは、
前記１つの情報処理装置が記憶するレプリカを示すレプリカ識別情報と、前記１つの情報処理装置に設定されている前記第１通信端点を示す第１通信端点識別情報との間の対応関係を示す対応関係情報を記憶し、
前記動作状況の変化を契機として、前記レプリカ識別情報と前記第２通信端点を示す第２通信端点識別情報との間の対応関係を、前記対応関係情報に追加し、
前記端末装置は、前記複数の通信端点に設定されている優先度に従って前記複数の通信端点のいずれかにアクセスし、前記動作状況の変化は、前記１つの情報処理装置以外の他の情報処理装置に故障が発生したことを表し、前記他の情報処理装置に故障が発生する前において、前記第２通信端点は、前記他の情報処理装置が記憶するレプリカに対応付けて前記他の情報処理装置に設定されており、前記第２通信端点の優先度は前記第１通信端点の優先度よりも高いことを特徴とする請求項１記載のアクセス制御方法。
【請求項６】
データに対する複数のレプリカをそれぞれ記憶する複数の情報処理装置のいずれかにおける動作状況の変化を契機として、端末装置が前記複数のレプリカにアクセスするための複数の通信端点の中から、前記複数の情報処理装置のうち１つの情報処理装置が記憶するレプリカに対応付けて前記１つの情報処理装置に設定されている第１通信端点以外の第２通信端点を特定する特定部と、
前記第２通信端点を、前記１つの情報処理装置が記憶するレプリカに対応付けて前記１つの情報処理装置に設定する設定部と、
を備えることを特徴とするアクセス制御装置。
【請求項７】
データに対する複数のレプリカをそれぞれ記憶する複数の情報処理装置のいずれかにおける動作状況の変化を契機として、端末装置が前記複数のレプリカにアクセスするための複数の通信端点の中から、前記複数の情報処理装置のうち１つの情報処理装置が記憶するレプリカに対応付けて前記１つの情報処理装置に設定されている第１通信端点以外の第２通信端点を特定し、
前記第２通信端点を、前記１つの情報処理装置が記憶するレプリカに対応付けて前記１つの情報処理装置に設定する、
処理をコンピュータに実行させるためのアクセス制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、アクセス制御方法、アクセス制御装置、及びアクセス制御プログラムに関する。
【背景技術】
【０００２】
複数のサーバ（ノード）にデータを分散して記憶させる分散データベースにおいて、複数の通信端点各々を、キーの定義域内の互いに素な複数の部分集合のいずれか１つに静的に対応付ける分散制御方法が知られている（例えば、特許文献１を参照）。
【０００３】
分散データベースの監視メカニズム及び高可用性クラスターの仮想サーバ・システムも知られている（例えば、特許文献２及び３を参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１３−５４５２１号公報
【特許文献２】特表２０１２−５０４８０７号公報
【特許文献３】特表２００４−５３７１２６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
分散データベースシステムでは、同一データに対する複数のレプリカを複数のサーバに分散して保持することによって、データの冗長性を確保することが多い。これにより、分散データベースの高可用性及び高信頼性を実現することが可能になる。各レプリカは、同一データの複製に対応する。
【０００６】
しかしながら、複数のレプリカを用いてデータを冗長化する分散データベースシステムでは、端末装置であるクライアントがデータを利用する際、アクセス先のサーバが高負荷状態であったり、故障していたりすることがある。
【０００７】
なお、かかる問題は、クライアントサーバ形式の分散データベースシステムに限らず、複数の情報処理装置がデータに対する複数のレプリカをそれぞれ記憶する他のデータベースシステムにおいても生ずるものである。
【０００８】
１つの側面において、本発明は、複数の情報処理装置がデータに対する複数のレプリカをそれぞれ記憶するデータベースシステムにおいて、端末装置が適切な情報処理装置にアクセスする制御を実現することを目的とする。
【課題を解決するための手段】
【０００９】
１つの案では、複数の情報処理装置は、データに対する複数のレプリカをそれぞれ記憶する。端末装置がそれらのレプリカにアクセスするための複数の通信端点のうち、第１通信端点は、それらの情報処理装置のうち１つの情報処理装置が記憶するレプリカに対応付けて、その情報処理装置に設定されている。
【００１０】
コンピュータは、いずれかの情報処理装置における動作状況の変化を契機として、複数の通信端点の中から、第１通信端点以外の第２通信端点を特定する。そして、コンピュータは、特定した第２通信端点を、上記１つの情報処理装置が記憶するレプリカに対応付けて、その情報処理装置に設定する。
【発明の効果】
【００１１】
１つの実施形態によれば、複数の情報処理装置がデータに対する複数のレプリカをそれぞれ記憶するデータベースシステムにおいて、端末装置が適切な情報処理装置にアクセスすることができる。
【図面の簡単な説明】
【００１２】
【図１】アクセス制御装置の機能的構成図である。
【図２】アクセス制御処理のフローチャートである。
【図３】第１の分散データベースシステムの構成図である。
【図４】サーバの機能的構成図である。
【図５】クライアントの機能的構成図である。
【図６】レプリカを示す図である。
【図７】通信端点テーブルを示す図である。
【図８】対応関係情報を示す図である。
【図９】アクセス処理のフローチャートである。
【図１０】応答処理のフローチャートである。
【図１１】引き受け依頼処理のフローチャートである。
【図１２】引き受け処理のフローチャートである。
【図１３】通信端点が交換された対応関係情報を示す図である。
【図１４】死活監視処理のフローチャートである。
【図１５】死活監視に対する応答処理のフローチャートである。
【図１６】通信端点が追加された対応関係情報を示す図である。
【図１７】引き取り処理のフローチャートである。
【図１８】引き取り依頼処理のフローチャートである。
【図１９】第２の分散データベースシステムの構成図である。
【図２０】情報処理装置のハードウェア構成図である。
【発明を実施するための形態】
【００１３】
以下、図面を参照しながら、実施形態を詳細に説明する。
【００１４】
複数のレプリカを用いてデータを冗長化する分散データベースシステムでは、端末装置であるクライアントがデータを利用する際、クライアントは、いずれのレプリカにアクセスしても構わない。しかし、特定のサーバにアクセスが集中して、そのサーバが高負荷状態になっている場合、クライアントを他の低負荷なサーバへ誘導することで、サーバの負荷を平準化することができる。また、特定のサーバに故障が発生した場合、クライアントを他の正常なサーバへ誘導することで、クライアントにおけるアクセスタイムアウトの発生を抑止することができる。
【００１５】
しかしながら、クライアントは、サーバの負荷、故障発生等の動作状況を把握していないため、高負荷サーバ及び故障サーバを迂回して、他のサーバが記憶しているレプリカをアクセス対象に選択することは困難である。そこで、クライアントが高負荷サーバ及び故障サーバにアクセスすることを抑止するアクセス制御方法として、以下のようなものが考えられる。
（１）管理装置が、各サーバの負荷、故障発生等の動作状況を反映した各レプリカのアクセス優先順位を示すテーブルを作成して、すべてのクライアントに配布する。
（２）各サーバが、クライアントから受信するアクセス要求を他の低負荷なサーバへリレーする。
（３）ロードバランサが、クライアントから受信するアクセス要求を低負荷なサーバへリレーする。
（４）クライアントが、複数のレプリカを保持するすべてのサーバに対して同時にアクセス要求を送信する。
【００１６】
（１）の方法では、各クライアントがデータにアクセスする際に、各サーバの最新の動作状況がテーブルに反映されていることが望ましい。しかし、多数のサーバの動作状況をリアルタイムに取得して、多数のクライアントが保持するテーブルをリアルタイムに更新する場合、計算量及び通信量が増大する。例えば、分散データベースシステムに数千台のサーバが含まれ、それらのサーバに数万台のクライアントがアクセスする場合、テーブルを更新するための計算量及び通信量は膨大になる。
【００１７】
（２）の方法では、アクセス要求をリレーする処理が発生するため、レイテンシが増加し、スループットが低下する。
【００１８】
（３）の方法では、アクセス要求をリレーする処理が発生するため、レイテンシが増加し、スループットが低下するとともに、ロードバランサがボトルネックになることがある。
【００１９】
（４）の方法では、レプリカの個数に応じてスループットが低下する。例えば、同一データに対してＮ個のレプリカが存在する場合、見かけ上、各クライアントからのアクセス要求の個数がＮ倍になるため、スループットは実質的に１／Ｎに低下する。
【００２０】
そこで、レイテンシ及びスループットに影響を与えることなく、クライアントが高負荷サーバ又は故障サーバにアクセスすることを抑止し、低負荷なサーバのレプリカにアクセスするようにクライアントを誘導することが望ましい。
【００２１】
図１は、実施形態のアクセス制御装置の機能的構成例を示している。図１のアクセス制御装置１０１は、特定部１１１及び設定部１１２を含む。複数の情報処理装置は、データに対する複数のレプリカをそれぞれ記憶する。端末装置がそれらのレプリカにアクセスするための複数の通信端点のうち、第１通信端点は、それらの情報処理装置のうち１つの情報処理装置が記憶するレプリカに対応付けて、その情報処理装置に設定されている。
【００２２】
図２は、図１のアクセス制御装置１０１が行うアクセス制御処理の例を示すフローチャートである。まず、特定部１１１は、いずれかの情報処理装置における動作状況の変化を契機として、複数の通信端点の中から、第１通信端点以外の第２通信端点を特定する（ステップ２０１）。次に、設定部１１２は、特定部１１１が特定した第２通信端点を、上記１つの情報処理装置が記憶するレプリカに対応付けて、その情報処理装置に設定する（ステップ２０２）。
【００２３】
図１のアクセス制御装置１０１によれば、複数の情報処理装置がデータに対する複数のレプリカをそれぞれ記憶するデータベースシステムにおいて、端末装置が適切な情報処理装置にアクセスすることができる。
【００２４】
図３は、図１のアクセス制御装置１０１を含む第１の分散データベースシステムの構成例を示している。図３の分散データベースシステムは、サーバ３０１−１〜サーバ３０１−Ｐ（Ｐは２以上の整数）とクライアント３０２−１〜クライアント３０２−Ｑ（Ｑは１以上の整数）を含む。各サーバ３０１−ｐ（ｐ＝１〜Ｐ）は、情報処理装置の一例であり、各クライアント３０２−ｑ（ｑ＝１〜Ｑ）は、端末装置の一例である。各サーバ３０１−ｐは、図１のアクセス制御装置１０１として動作する。
【００２５】
サーバ３０１−１〜サーバ３０１−Ｐは、通信ネットワーク３０３を介して互いに通信することができ、各サーバ３０１−ｐと各クライアント３０２−ｑは、通信ネットワーク３０３及び通信ネットワーク３０４を介して互いに通信することができる。通信ネットワーク３０３は、イーサネット（登録商標）等のLocal Area Network（ＬＡＮ）であってもよく、通信ネットワーク３０４は、インターネット等のWide Area Network（ＷＡＮ）であってもよい。
【００２６】
サーバ３０１−１〜サーバ３０１−Ｐは、複数のデータを分散して記憶するとともに、同一データに対する複数のレプリカを分散して記憶する。サーバ３０１−１〜サーバ３０１−Ｐによって実現される分散データベースは、キー・バリュー・ストア（Key-Value Store，ＫＶＳ）であってもよく、リレーショナル・データベース（Relational Database，ＲＤＢ）であってもよい。
【００２７】
分散データベースがＫＶＳである場合、分散データベースの各エントリは、キーとバリューのペアを含む。この場合、キーが取り得る値の範囲が複数のキー領域に分割され、１つのキー領域に属する１つ又は複数のキーによって指定される１つ又は複数のエントリの集合が、レプリカの単位として用いられる。したがって、１つのレプリカが複数のエントリを含むことがある。
【００２８】
各サーバ３０１−ｐは、いずれかのクライアント３０２−ｑからデータに対するアクセス要求を受信したとき、記憶しているそのデータのレプリカに対するデータ処理を行う。例えば、アクセス要求がリード要求である場合、サーバ３０１−ｐは、そのリード要求によって指定されるデータのレプリカをクライアント３０２−ｑへ返信する。
【００２９】
また、アクセス要求がライト要求である場合、サーバ３０１−ｐは、そのライト要求によって指定されるデータのレプリカをライトデータによって更新し、クライアント３０２−ｑへ応答を返信する。この場合、レプリケーション処理によって、更新されたレプリカと同じデータに対応する他のレプリカに対しても更新が反映される。
【００３０】
図４は、図３のサーバ３０１−ｐの機能的構成例を示している。図４のサーバ３０１−ｐは、データ記憶部４０１、制御情報記憶部４０２、データ制御部４０３、通信端点管理部４０４、通信処理部４０５、及びインタフェース４０６を含む。データ記憶部４０１は、１つ以上のレプリカ４１１を記憶し、制御情報記憶部４０２は、通信端点テーブル４２１及び対応関係情報４２２を記憶する。
【００３１】
通信端点テーブル４２１は、分散データベースが保持する複数のデータと、サーバ３０１−１〜サーバ３０１−Ｐに設定される複数の通信端点との間の静的な対応関係を示す。通信端点テーブル４２１は、分散データベースシステムの運用開始時にサーバ３０１−１〜サーバ３０１−Ｐに入力され、制御情報記憶部４０２に格納される。
【００３２】
通信端点は、クライアント３０２−ｑがサーバ３０１−ｐにアクセスする際に、アクセス先として指定する端点である。例えば、Transmission Control Protocol/Internet Protocol（ＴＣＰ／ＩＰ）の場合、ＩＰアドレスとポート番号の組み合わせによって通信端点を指定することができる。ポート番号があらかじめ決められている場合、ＩＰアドレスのみによって通信端点を指定することも可能である。
【００３３】
対応関係情報４２２は、レプリカ４１１とサーバ３０１−ｐに設定されている通信端点との間の動的な対応関係を示す。対応関係情報４２２は、分散データベースシステムの運用中に、サーバ３０１−１〜サーバ３０１−Ｐの動作状況に応じて更新される。
【００３４】
データ制御部４０３は、クライアント３０２−ｑからデータに対するアクセス要求を受信したとき、対応関係情報４２２を参照して、そのデータのレプリカ４１１に対するデータ処理を行う。データ制御部４０３は、他のサーバ３０１−ｘ（ｘ≠ｐ）の動作状況を監視するとともに、レプリケーション処理、縮退したレプリカ４１１を元の状態に戻す回復処理等も行う。レプリカ４１１の縮退については後述する。
【００３５】
通信端点管理部４０４は、図１の特定部１１１及び設定部１１２を含む。特定部１１１は、サーバ３０１−ｐ又は他のサーバ３０１−ｘの動作状況の変化を契機として、対応関係情報４２２に登録されている通信端点以外の他の通信端点を特定する。例えば、他の通信端点は、他のサーバ３０１−ｘに設定されている通信端点であってもよい。設定部１１２は、特定部１１１が特定した通信端点を、レプリカ４１１に対応付けて対応関係情報４２２に登録することで、その通信端点をサーバ３０１−ｐに設定する。
【００３６】
通信処理部４０５は、データ制御部４０３とクライアント３０２−ｑ又は他のサーバ３０１−ｘとの間の通信に関する処理を行う。例えば、通信処理部４０５の機能は、ＴＣＰ／ＩＰプロトコルスタックの標準ライブラリ等を用いて実現することができる。
【００３７】
インタフェース４０６は、通信ネットワーク３０３に接続され、クライアント３０２−ｑ又は他のサーバ３０１−ｘと通信する通信インタフェース回路である。インタフェース４０６は、ネットワークアダプタであってもよく、Network Interface Card（ＮＩＣ）であってもよい。インタフェース４０６には、１つ又は複数のＩＰアドレスが設定される。
【００３８】
図５は、図３のクライアント３０２−ｑの機能的構成例を示している。図５のクライアント３０２−ｑは、アクセス部５０１及び制御情報記憶部５０２を含む。制御情報記憶部５０２は、通信端点テーブル５１１を記憶する。通信端点テーブル５１１は、図４の通信端点テーブル４２１と同じ情報を含み、分散データベースシステムの運用中にクライアント３０２−１〜クライアント３０２−Ｑに入力され、制御情報記憶部５０２に格納される。
【００３９】
アクセス部５０１は、通信端点テーブル５１１を参照して、アクセス対象のデータに対応する通信端点を選択し、選択した通信端点を宛先とするアクセス要求を送信する。アクセス要求がリード要求である場合、リード要求を受信したサーバ３０１−ｐから、アクセス対象のデータのレプリカを受信する。また、アクセス要求がライト要求である場合、ライトデータを含むライト要求を生成して、選択した通信端点を有するサーバ３０１−ｐへ送信する。
【００４０】
例えば、分散データベースがＫＶＳである場合、データベース全体をＲ１〜ＲＭのＭ個（Ｍは２以上の整数）のキー領域に分割することができる。Ｒｉ（ｉ＝１〜Ｍ）は、キー領域識別情報である。
【００４１】
ここで、各キー領域Ｒｉに属するキーとバリューのペア（エントリ）の集合をデータと呼び、各キー領域Ｒｉのデータに対するＮ個（Ｎは２以上Ｐ以下の整数）のレプリカをｒｉ１〜ｒｉＮと記すことにする。ｒｉｊ（ｉ＝１〜Ｍ、ｊ＝１〜Ｎ）は、レプリカ識別情報である。このとき、レプリカｒｉ１〜レプリカｒｉＮは、サーバ３０１−１〜サーバ３０１−ＰのうちＮ台のサーバにそれぞれ格納される。
【００４２】
いずれかのサーバ３０１−ｐに故障が発生する等の理由によってレプリカｒｉｊが失われると、Ｎ個のレプリカがＮ−１個のレプリカに縮退する。この場合、正常に動作しているいずれかのサーバ３０１−ｐ内に他のレプリカｒｉｋ（ｋ≠ｊ）の複製を生成することで、レプリカｒｉｊが回復され、縮退が解消される。
【００４３】
さらに、キー領域Ｒｉのデータに対するレプリカｒｉ１〜レプリカｒｉＮにアクセスするためのＮ個の通信端点として、ａｉ１〜ａｉＮが設けられる。ａｉｊ（ｉ＝１〜Ｍ、ｊ＝１〜Ｎ）は、通信端点識別情報である。図４の通信端点テーブル４２１及び図５の通信端点テーブル５１１は、キー領域Ｒｉと通信端点ａｉ１〜通信端点ａｉＮとの間の対応関係を示し、通信端点ａｉ１〜通信端点ａｉＮそれぞれに優先度が設定される。
【００４４】
例えば、通信端点ａｉｊの添え字ｊが小さいほど通信端点ａｉｊの優先度が高くなるように、通信端点ａｉ１〜通信端点ａｉＮの優先度を設定してもよい。この場合、通信端点ａｉ１の優先度が最も高くなり、通信端点ａｉＮの優先度が最も低くなる。クライアント３０２−ｑは、通信端点ａｉ１〜通信端点ａｉＮに設定されている優先度に従って、いずれかの通信端点にアクセスする。
【００４５】
図４の対応関係情報４２２は、各サーバ３０１−ｐが記憶するレプリカｒｉｊと通信端点ａｉｊとの間の対応関係を示す。レプリカｒｉ１〜レプリカｒｉＮのうちいずれのレプリカに、通信端点ａｉ１〜通信端点ａｉＮのうちいずれの通信端点が対応付けられるかは、サーバ３０１−１〜サーバ３０１−Ｐの負荷、故障の発生等に応じて動的に決定される。
【００４６】
レプリカ４１１が縮退しているときは、１つのレプリカ４１１に対して複数の通信端点が対応付けられる可能性があり、縮退から回復した直後は、回復されたレプリカ４１１に対して通信端点が対応付けられていない。サーバ３０１−ｐ内に新たなレプリカ４１１が生成された場合、そのサーバ３０１−ｐの対応関係情報４２２に、生成されたレプリカ４１１と通信端点との間の対応関係が追加される。
【００４７】
図６は、Ｐ＝４、Ｍ＝４、及びＮ＝３の場合に各サーバ３０１−ｐが記憶するレプリカ４１１の例を示している。サーバ３０１−１は、レプリカｒ２１、レプリカｒ３３、及びレプリカｒ４２を記憶し、通信端点ａ２１、通信端点ａ３３、及び通信端点ａ４２を有する。サーバ３０１−２は、レプリカｒ１１、レプリカｒ２２、及びレプリカｒ４３を記憶し、通信端点ａ１１、通信端点ａ２２、及び通信端点ａ４３を有する。
【００４８】
サーバ３０１−３は、レプリカｒ１２、レプリカｒ２３、及びレプリカｒ３１を記憶し、通信端点ａ１２、通信端点ａ２３、及び通信端点ａ３１を有する。サーバ３０１−４は、レプリカｒ１３、レプリカｒ３２、及びレプリカｒ４１を記憶し、通信端点ａ１３、通信端点ａ３２、及び通信端点ａ４１を有する。
【００４９】
図７は、図６の分散データベースシステムにおける通信端点テーブル４２１及び通信端点テーブル５１１の例を示している。図７の通信端点テーブルは、キー領域、通信端点（優先度１）、通信端点（優先度２）、及び通信端点（優先度３）を含む。優先度１〜優先度３は、優先度のレベルを表す。キー領域Ｒｉに対応する通信端点ａｉ１〜通信端点ａｉ３のうち、通信端点ａｉ１の優先度１が最も高く、通信端点ａｉ２の優先度２が次に高く、通信端点ａｉ３の優先度３が最も低い。各通信端点ａｉｊは、ＩＰアドレスとポート番号の組み合わせを表している。
【００５０】
図８は、図６の分散データベースシステムにおける対応関係情報４２２の例を示している。図８（ａ）〜図８（ｄ）は、サーバ３０１−１〜サーバ３０１−４がそれぞれ記憶する対応関係情報４２２に対応する。各対応関係情報４２２は、キー領域、レプリカ、及び通信端点を含む。
【００５１】
図８（ａ）の対応関係情報４２２は、サーバ３０１−１が、キー領域Ｒ２のデータに対するレプリカｒ２１、キー領域Ｒ３のデータに対するレプリカｒ３３、及びキー領域Ｒ４のデータに対するレプリカｒ４２を記憶していることを示す。レプリカｒ２１、レプリカｒ３３、及びレプリカｒ４２には、通信端点ａ２１、通信端点ａ３３、及び通信端点ａ４２がそれぞれ対応付けられている。
【００５２】
図８（ｂ）の対応関係情報４２２は、サーバ３０１−２が、キー領域Ｒ１のデータに対するレプリカｒ１１、キー領域Ｒ２のデータに対するレプリカｒ２２、及びキー領域Ｒ４のデータに対するレプリカｒ４３を記憶していることを示す。レプリカｒ１１、レプリカｒ２２、及びレプリカｒ４３には、通信端点ａ１１、通信端点ａ２２、及び通信端点ａ４３がそれぞれ対応付けられている。
【００５３】
図８（ｃ）の対応関係情報４２２は、サーバ３０１−３が、キー領域Ｒ１のデータに対するレプリカｒ１２、キー領域Ｒ２のデータに対するレプリカｒ２３、及びキー領域Ｒ３のデータに対するレプリカｒ３１を記憶していることを示す。レプリカｒ１２、レプリカｒ２３、及びレプリカｒ３１には、通信端点ａ１２、通信端点ａ２３、及び通信端点ａ３１がそれぞれ対応付けられている。
【００５４】
図８（ｄ）の対応関係情報４２２は、サーバ３０１−４が、キー領域Ｒ１のデータに対するレプリカｒ１３、キー領域Ｒ３のデータに対するレプリカｒ３２、及びキー領域Ｒ４のデータに対するレプリカｒ４１を記憶していることを示す。レプリカｒ１３、レプリカｒ３２、及びレプリカｒ４１には、通信端点ａ１３、通信端点ａ３２、及び通信端点ａ４１がそれぞれ対応付けられている。
【００５５】
図９は、図５のクライアント３０２−ｑが行うアクセス処理の例を示すフローチャートである。まず、アクセス部５０１は、アクセス対象のエントリのキーを含むキー領域を決定する（ステップ９０１）。
【００５６】
次に、アクセス部５０１は、通信端点テーブル５１１を参照して、決定したキー領域に対応する通信端点の中から、優先度の高い順に１つの通信端点を選択する（ステップ９０２）。次に、アクセス部５０１は、アクセス対象のエントリのキーを含み、選択した通信端点を宛先とする、リード要求を送信する（ステップ９０３）。そして、アクセス部５０１は、リード要求に対する有効な応答を所定時間内に受信したか否かをチェックする（ステップ９０４）。
【００５７】
所定時間内に応答を受信しなかった場合、又は無効な応答を受信した場合（ステップ９０４，ＮＯ）、アクセス部５０１は、通信端点テーブル５１１の最後の通信端点を選択したか否かをチェックする（ステップ９０５）。未選択の通信端点が残っている場合（ステップ９０５，ＮＯ）、アクセス部５０１は、決定したキー領域に対応する通信端点のうち、次に高い優先度の通信端点について、ステップ９０２以降の処理を繰り返す。
【００５８】
所定時間内に有効な応答を受信した場合（ステップ９０４，ＹＥＳ）、アクセス部５０１は、受信した応答からアクセス対象のエントリのバリューを取得する（ステップ９０７）。一方、最後の通信端点を選択した場合（ステップ９０５，ＹＥＳ）、アクセス部５０１は、エラー処理を行う（ステップ９０６）。
【００５９】
図１０は、図４のサーバ３０１−ｐが行う応答処理の例を示すフローチャートである。まず、通信処理部４０５は、クライアント３０２−ｑからリード要求を受信し、受信したリード要求をデータ制御部４０３へ出力する（ステップ１００１）。
【００６０】
次に、データ制御部４０３は、対応関係情報４２２を参照して、リード要求の宛先である通信端点に対応するレプリカ４１１を特定し、特定したレプリカ４１１から、リード要求に含まれるキーに対応するバリューを取得する（ステップ１００２）。そして、データ制御部４０３は、取得したバリューを含む応答を通信処理部４０５へ出力する。
【００６１】
次に、通信処理部４０５は、リード要求を送信したクライアント３０２−ｑへ応答を送信する（ステップ１００３）。
【００６２】
クライアント３０２−ｑが送信するアクセス要求はリード要求に限られず、他のアクセス要求であってもよい。例えば、クライアント３０２−ｑは、アクセス対象のエントリのキー及びライトデータを含むライト要求を、サーバ３０１−ｐへ送信することもできる。この場合、データ制御部４０３は、ライト要求の宛先である通信端点に対応するレプリカ４１１を特定する。そして、データ制御部４０３は、特定したレプリカ４１１内において、ライト要求に含まれるキーに対応するバリューを、そのライト要求に含まれるライトデータによって更新し、クライアント３０２−ｑへ応答を送信する。
【００６３】
図９のアクセス処理及び図１０の応答処理によれば、クライアント３０２−ｑは、キー領域に対応付けられた通信端点のうち、優先度の高い通信端点を有するサーバ３０１−ｐから順にアクセスする。そして、優先度の高い通信端点を有するサーバ３０１−ｐが所定時間内に応答を返信しない場合、クライアント３０２−ｑは、より優先度の低い通信端点を有するサーバ３０１−ｐにアクセス先を変更する。したがって、複数のクライアント３０２−ｑが同じキー領域のデータにアクセスする場合、それらのクライアント３０２−ｑは、優先度の高い通信端点を有するサーバ３０１−ｐから順にアクセスしていく。
【００６４】
このため、優先度の高い通信端点を有するサーバ３０１−ｐには複数のクライアント３０２−ｑからのアクセス要求が集中しやすく、このようなサーバ３０１−ｐは、高負荷状態になる可能性が高い。一方、優先度の低い通信端点を有するサーバ３０１−ｐは、高負荷状態になる可能性が低いと言える。
【００６５】
そこで、サーバ３０１−１〜サーバ３０１−Ｐの負荷を平準化するためには、優先度の高い通信端点を有するサーバ３０１−ｐの負荷が高くなった場合、その通信端点を、負荷の低いサーバ３０１−ｐが有する通信端点と入れ替えることが好ましい。例えば、高負荷状態のサーバ３０１−ｐが他のサーバ３０１−ｐに通信端点の引き受けを依頼することで、通信端点の入れ替えを実現することができる。
【００６６】
図１１は、高負荷状態のサーバ３０１−ｐが他のサーバ３０１−ｐに優先度の高い通信端点の引き受けを依頼する引き受け依頼処理の例を示すフローチャートである。まず、通信端点管理部４０４の特定部１１１は、自サーバ３０１−ｐが高負荷状態であるか否かをチェックする（ステップ１１０１）。
【００６７】
例えば、特定部１１１は、サーバ３０１−ｐの負荷を示す所定の指標を閾値と比較し、指標が閾値よりも大きい場合、サーバ３０１−ｐが高負荷状態であると判定することができる。そして、特定部１１１は、指標が閾値以下である場合、サーバ３０１−ｐが高負荷状態ではないと判定することができる。所定の指標としては、ロードアベレージ、Central Processing Unit（ＣＰＵ）使用率、メモリ使用量、ディスク使用量、入出力負荷等を用いてもよい。
【００６８】
サーバ３０１−ｐが高負荷状態ではない場合（ステップ１１０１，ＮＯ）、特定部１１１は、ステップ１１０１の処理を繰り返す。一方、サーバ３０１−ｐが高負荷状態である場合（ステップ１１０１，ＹＥＳ）、特定部１１１は、通信端点テーブル４２１及び対応関係情報４２２を参照して、サーバ３０１−ｐに設定されている所定数の通信端点を抽出する（ステップ１１０２）。
【００６９】
このとき、特定部１１１は、対応関係情報４２２から、各レプリカ４１１に対応付けられている通信端点を抽出し、通信端点テーブル４２１を参照して、抽出した通信端点の中から、優先度の高い順に所定数の通信端点を抽出する。同じ優先度の複数の通信端点が存在する場合、特定部１１１は、それらの通信端点をすべて抽出してもよく、一部の通信端点を抽出してもよい。
【００７０】
次に、特定部１１１は、抽出した所定数の通信端点の中から、優先度の高い順に１つの通信端点Ａを選択し（ステップ１１０３）、対応関係情報４２２を参照して、通信端点Ａに対応付けられているキー領域及びレプリカ４１１を特定する（ステップ１１０４）。
【００７１】
次に、特定部１１１は、通信端点テーブル４２１を参照して、特定したキー領域に対応する、通信端点Ａ以外の通信端点の中から、通信端点Ａよりも優先度が低い通信端点を抽出する（ステップ１１０５）。そして、特定部１１１は、抽出した通信端点の中から、優先度の低い順に１つの通信端点Ｂを選択する（ステップ１１０６）。
【００７２】
次に、特定部１１１は、通信端点Ａの引き受けを依頼する引き受け依頼メッセージを、データ制御部４０３へ出力する（ステップ１１０７）。この引き受け依頼メッセージは、通信端点Ａの通信端点識別情報を含み、通信端点Ｂを宛先とするメッセージである。そして、データ制御部４０３は、引き受け依頼メッセージを通信処理部４０５へ出力し、通信処理部４０５は、引き受け依頼メッセージを通信端点Ｂへ送信する。
【００７３】
次に、特定部１１１は、引き受け依頼メッセージに対する応答メッセージを所定時間内に受信したか否かをチェックする（ステップ１１０８）。所定時間内に応答メッセージを受信した場合（ステップ１１０８，ＹＥＳ）、特定部１１１は、その応答メッセージが引き受けの受諾（ＯＫ）を示しているか否かをチェックする（ステップ１１０９）。
【００７４】
応答メッセージがＯＫを示していない場合（ステップ１１０９，ＮＯ）、特定部１１１は、通信端点Ｂがステップ１１０５で抽出した通信端点のうち最後の通信端点であるか否かをチェックする（ステップ１１１０）。通信端点Ｂが最後の通信端点ではない場合（ステップ１１１０，ＮＯ）、特定部１１１は、次に低い優先度の通信端点について、ステップ１１０６以降の処理を繰り返す。
【００７５】
通信端点Ｂが最後の通信端点である場合（ステップ１１１０，ＹＥＳ）、特定部１１１は、通信端点Ａがステップ１１０２で抽出した通信端点のうち最後の通信端点であるか否かをチェックする（ステップ１１１１）。通信端点Ａが最後の通信端点ではない場合（ステップ１１１１，ＮＯ）、特定部１１１は、次に高い優先度の通信端点について、ステップ１１０３以降の処理を繰り返す。
【００７６】
所定時間内に応答メッセージを受信しなかった場合（ステップ１１０８，ＮＯ）、特定部１１１は、ステップ１１１０以降の処理を行う。
【００７７】
応答メッセージがＯＫを示している場合（ステップ１１０９，ＹＥＳ）、設定部１１２は、対応関係情報４２２から通信端点Ａを削除し、通信端点Ａの無効化を通信処理部４０５に依頼する（ステップ１１１２）。そして、通信処理部４０５は、インタフェース４０６に設定されている通信端点Ａを無効にする。
【００７８】
次に、設定部１１２は、応答メッセージが示す通信端点Ｃを、通信端点Ａが対応付けられていたレプリカ４１１に対応付けて、対応関係情報４２２に登録し（ステップ１１１３）、通信端点Ｃの有効化を通信処理部４０５に依頼する（ステップ１１１４）。そして、通信処理部４０５は、インタフェース４０６において通信端点Ｃを有効にする。これにより、通信端点Ｃがインタフェース４０６に設定される。
【００７９】
ただし、応答メッセージが示す通信端点ＣがＮＵＬＬである場合、設定部１１２は、ステップ１１１３において、いずれの通信端点も対応関係情報４２２に登録せず、ステップ１１１４において、通信端点Ｃの有効化を通信処理部４０５に依頼しない。
【００８０】
ステップ１１１４の処理の後、特定部１１１は、ステップ１１１１以降の処理を行う。そして、通信端点Ａが最後の通信端点である場合（ステップ１１１１，ＹＥＳ）、通信端点管理部４０４は、処理を終了する。
【００８１】
通信端点管理部４０４は、通信端点Ａが最後の通信端点である場合に引き受け依頼処理を再開してもよく、引き受け依頼処理を所定時間毎に実行してもよい。
【００８２】
図１２は、高負荷状態のサーバ３０１−ｐから通信端点を引き受ける引き受け処理の例を示すフローチャートである。まず、通信端点管理部４０４の特定部１１１は、いずれかのサーバ３０１−ｐから引き受け依頼メッセージを受信したか否かをチェックする（ステップ１２０１）。引き受け依頼メッセージを受信していない場合（ステップ１２０１，ＮＯ）、特定部１１１は、ステップ１２０１の処理を繰り返す。
【００８３】
一方、引き受け依頼メッセージを受信した場合（ステップ１２０１，ＹＥＳ）、特定部１１１は、通信端点テーブル４２１を参照して、引き受け依頼メッセージが示す通信端点Ａに対応するキー領域を特定する（ステップ１２０２）。そして、特定部１１１は、対応関係情報４２２を参照して、データ記憶部４０１内に、特定したキー領域に対応するレプリカ４１１が存在するか否かをチェックする（ステップ１２０３）。
【００８４】
キー領域に対応するレプリカ４１１が存在しない場合（ステップ１２０３，ＮＯ）、特定部１１１は、引き受けの拒否（ＮＧ）を示す応答メッセージを、データ制御部４０３へ出力する（ステップ１２１０）。そして、データ制御部４０３は、応答メッセージを通信処理部４０５へ出力し、通信処理部４０５は、引き受け依頼メッセージを送信したサーバ３０１−ｐへ応答メッセージを送信する。
【００８５】
一方、キー領域に対応するレプリカ４１１が存在する場合（ステップ１２０３，ＹＥＳ）、特定部１１１は、自サーバ３０１−ｐが高負荷状態であるか否かをチェックする（ステップ１２０４）。サーバ３０１−ｐが高負荷状態である場合（ステップ１２０４，ＹＥＳ）、特定部１１１は、ステップ１２１０の処理を行う。
【００８６】
一方、サーバ３０１−ｐが高負荷状態ではない場合（ステップ１２０４，ＮＯ）、特定部１１１は、対応関係情報４２２を参照して、特定したキー領域に対応する１つ以上の通信端点のうち、優先度が最も低い通信端点Ｃを選択する（ステップ１２０５）。
【００８７】
次に、設定部１１２は、対応関係情報４２２から通信端点Ｃを削除し、通信端点Ｃの無効化を通信処理部４０５に依頼する（ステップ１２０６）。そして、通信処理部４０５は、インタフェース４０６に設定されている通信端点Ｃを無効にする。
【００８８】
次に、特定部１１１は、引き受けの受諾（ＯＫ）を示す応答メッセージを、データ制御部４０３へ出力する（ステップ１２０７）。この応答メッセージは、通信端点Ｃの通信端点識別情報を含み、通信端点Ａを引き受けることを示す。そして、データ制御部４０３は、応答メッセージを通信処理部４０５へ出力し、通信処理部４０５は、引き受け依頼メッセージを送信したサーバ３０１−ｐへ応答メッセージを送信する。
【００８９】
次に、設定部１１２は、引き受け依頼メッセージが示す通信端点Ａを、通信端点Ｃが対応付けられていたレプリカ４１１に対応付けて、対応関係情報４２２に登録し（ステップ１２０８）、通信端点Ａの有効化を通信処理部４０５に依頼する（ステップ１２０９）。そして、通信処理部４０５は、インタフェース４０６において通信端点Ａを有効にする。これにより、通信端点Ａがインタフェース４０６に設定される。
【００９０】
ただし、特定したキー領域に通信端点が対応付けられていない場合、ステップ１２０６において、特定部１１１は、いずれの通信端点も対応関係情報４２２から削除せず、通信端点Ｃの無効化を通信処理部４０５に依頼しない。そして、ステップ１２０７において、特定部１１１は、通信端点ＣがＮＵＬＬであることを示す応答メッセージを、データ制御部４０３へ出力する。
【００９１】
通信端点管理部４０４は、ステップ１２０９又はステップ１２１０の処理の後で引き受け処理を再開してもよく、引き受け処理を所定時間毎に実行してもよい。
【００９２】
図１１の引き受け依頼処理及び図１２の引き受け処理によれば、高負荷状態のサーバ３０１−ｐに設定されている優先度の高い通信端点と、低負荷状態のサーバ３０１−ｐに設定されている優先度の低い通信端点とを交換することが可能になる。これにより、特定のサーバ３０１−ｐにアクセス要求が集中することを抑止し、サーバ３０１−１〜サーバ３０１−Ｐの負荷を平準化することができる。
【００９３】
図１３は、図６の分散データベースシステムにおいてサーバ３０１−１とサーバ３０１−３の間で通信端点が交換された場合の対応関係情報４２２の例を示している。図１３（ａ）〜図１３（ｄ）は、サーバ３０１−１〜サーバ３０１−４がそれぞれ記憶する対応関係情報４２２に対応する。
【００９４】
この例では、各サーバ３０１−ｐにおけるレプリカ４１１と通信端点とが図８のように対応付けられている状態で、サーバ３０１−１が高負荷状態になった場合を想定している。この場合、サーバ３０１−１は、図８（ａ）の対応関係情報４２２から、優先度の最も高い通信端点ａ２１を通信端点Ａとして選択し、通信端点ａ２１に対応付けられているキー領域Ｒ２及びレプリカｒ２１を特定する。
【００９５】
次に、サーバ３０１−１は、図７の通信端点テーブル４２１を参照して、キー領域Ｒ２に対応する、通信端点ａ２１以外の通信端点の中から、優先度が最も低い通信端点ａ２３を通信端点Ｂとして選択する。そして、サーバ３０１−１は、通信端点ａ２１の通信端点識別情報を含む引き受け依頼メッセージを、通信端点ａ２３を有するサーバ３０１−３へ送信する。
【００９６】
サーバ３０１−３は、図７の通信端点テーブル４２１を参照して、受信した引き受け依頼メッセージが示す通信端点ａ２１に対応するキー領域Ｒ２を特定する。そして、サーバ３０１−３は、図８（ｃ）の対応関係情報４２２を参照して、キー領域Ｒ２に対応するレプリカｒ２３が存在することを確認し、キー領域Ｒ２に対応する通信端点ａ２３を通信端点Ｃとして選択する。
【００９７】
次に、サーバ３０１−３は、図８（ｃ）の対応関係情報４２２から通信端点ａ２３を削除し、通信端点ａ２３を無効にして、通信端点ａ２３の通信端点識別情報を含むＯＫの応答メッセージを、サーバ３０１−１へ送信する。そして、サーバ３０１−３は、通信端点ａ２１を、通信端点ａ２３が対応付けられていたレプリカｒ２３に対応付けて、対応関係情報４２２に登録し、通信端点ａ２１を有効にする。これにより、図８（ｃ）の対応関係情報４２２が、図１３（ｃ）に示すように更新される。
【００９８】
サーバ３０１−１は、ＯＫの応答メッセージを受信すると、図８（ａ）の対応関係情報４２２から通信端点ａ２１を削除し、通信端点ａ２１を無効にする。そして、サーバ３０１−１は、応答メッセージが示す通信端点ａ２３を、通信端点ａ２１が対応付けられていたレプリカｒ２１に対応付けて、対応関係情報４２２に登録し、通信端点ａ２３を有効にする。これにより、図８（ａ）の対応関係情報４２２が、図１３（ａ）に示すように更新される。
【００９９】
こうして、キー領域Ｒ２に対応する通信端点ａ２１〜通信端点ａ２３のうち、高負荷状態のサーバ３０１−１に設定されていた通信端点ａ２１と、低負荷状態のサーバ３０１−３に設定されていた通信端点ａ２３とが交換される。図１３（ｂ）及び図１３（ｄ）の対応関係情報４２２は、図８（ｂ）及び図８（ｄ）の対応関係情報４２２と同一である。
【０１００】
ところで、図３のいずれかのサーバ３０１−ｐが故障した場合、クライアント３０２−ｑを他の正常なサーバ３０１−ｐへ誘導するためには、故障したサーバ３０１−ｐが有する通信端点を正常なサーバ３０１−ｐが引き継ぐことが好ましい。例えば、正常なサーバ３０１−ｐが他のサーバ３０１−ｐに対する死活監視を行うことで、通信端点の引継ぎを実現することができる。
【０１０１】
図１４は、正常なサーバ３０１−ｐが行う死活監視処理の例を示すフローチャートである。死活監視処理においては、死活監視メッセージに対する応答メッセージを返信しないサーバ３０１−ｐは、故障しているものとみなされる。
【０１０２】
まず、通信端点管理部４０４の特定部１１１は、対応関係情報４２２を参照して、データ記憶部４０１が記憶しているレプリカ４１１の中から１つのレプリカ４１１を選択する（ステップ１４０１）。そして、特定部１１１は、選択したレプリカ４１１に対応付けられている通信端点の中から、１つの通信端点を通信端点Ｄとして選択する（ステップ１４０２）。
【０１０３】
次に、特定部１１１は、通信端点テーブル４２１を参照して、選択したレプリカ４１１のキー領域に対応する、通信端点Ｄ以外の通信端点の中から、通信端点Ｄよりも優先度が１レベルだけ高い通信端点Ｅを特定する（ステップ１４０３）。ただし、通信端点Ｄの優先度が最も高い場合は、特定部１１１は、優先度が最も低い通信端点を通信端点Ｅとして特定する。
【０１０４】
次に、特定部１１１は、通信端点Ｅの生存確認をデータ制御部４０３に依頼する（ステップ１４０４）。そして、データ制御部４０３は、通信端点Ｅの生存確認を行う死活監視メッセージを通信処理部４０５へ出力し、通信処理部４０５は、死活監視メッセージを通信端点Ｅへ送信する。
【０１０５】
次に、データ制御部４０３は、死活監視メッセージに対する応答メッセージを所定時間内に受信したか否かをチェックする（ステップ１４０５）。所定時間内に応答メッセージを受信しなかった場合（ステップ１４０５，ＮＯ）、設定部１１２は、通信端点Ｅを特定部１１１が選択したレプリカ４１１に対応付けて、対応関係情報４２２に登録する（ステップ１４０６）。
【０１０６】
次に、設定部１１２は、通信端点Ｅの有効化を通信処理部４０５に依頼し（ステップ１４０７）、通信処理部４０５は、インタフェース４０６において通信端点Ｅを有効にする。これにより、生存が確認されない通信端点Ｅがインタフェース４０６に設定される。
【０１０７】
次に、特定部１１１は、通信端点Ｄが、選択したレプリカ４１１に対応付けられている通信端点のうち最後の通信端点であるか否かをチェックする（ステップ１４０８）。通信端点Ｄが最後の通信端点ではない場合（ステップ１４０８，ＮＯ）、特定部１１１は、次の通信端点について、ステップ１４０２以降の処理を繰り返す。
【０１０８】
所定時間内に応答メッセージを受信した場合（ステップ１４０５，ＹＥＳ）、特定部１１１は、次の通信端点について、ステップ１４０２以降の処理を繰り返す。
【０１０９】
通信端点Ｄが最後の通信端点である場合（ステップ１４０８，ＹＥＳ）、特定部１１１は、対応関係情報４２２に含まれる最後のレプリカ４１１を選択したか否かをチェックする（ステップ１４０９）。未選択のレプリカ４１１が残っている場合（ステップ１４０９，ＮＯ）、特定部１１１は、次のレプリカ４１１について、ステップ１４０１以降の処理を繰り返す。そして、最後のレプリカ４１１を選択した場合（ステップ１４０９，ＹＥＳ）、通信端点管理部４０４は、処理を終了する。
【０１１０】
なお、ステップ１４０３において、特定した通信端点Ｅが自サーバ３０１−ｐに設定されている場合、通信端点管理部４０４は、ステップ１４０４〜ステップ１４０７の処理をスキップして、ステップ１４０８以降の処理を行う。
【０１１１】
通信端点管理部４０４は、最後のレプリカ４１１を選択した場合に死活監視処理を再開してもよく、死活監視処理を所定時間毎に実行してもよい。
【０１１２】
図１５は、死活監視に対する応答処理の例を示すフローチャートである。まず、データ制御部４０３は、他のサーバ３０１−ｐから、自サーバ３０１−ｐが有するいずれかの通信端点を宛先とする死活監視メッセージを受信したか否かをチェックする（ステップ１５０１）。死活監視メッセージを受信していない場合（ステップ１５０１，ＮＯ）、データ制御部４０３は、ステップ１２０１の処理を繰り返す。
【０１１３】
一方、死活監視メッセージを受信した場合（ステップ１５０１，ＹＥＳ）、データ制御部４０３は、自サーバ３０１−ｐが生存していることを示す応答メッセージを通信処理部４０５へ出力する（ステップ１５０２）。そして、通信処理部４０５は、死活監視メッセージを送信したサーバ３０１−ｐへ応答メッセージを送信する。
【０１１４】
データ制御部４０３は、ステップ１５０２の処理の後で応答処理を再開してもよく、応答処理を所定時間毎に実行してもよい。
【０１１５】
図１４の死活監視処理及び図１５の応答処理によれば、いずれかのサーバ３０１−ｐが故障した場合、故障したサーバ３０１−ｐが有する通信端点を正常なサーバ３０１−ｐが引き継ぐことが可能になる。これにより、クライアント３０２−ｑを正常なサーバ３０１−ｐへ誘導し、クライアント３０２−ｑにおけるアクセスタイムアウトの発生を抑止することができる。通信端点を引き継いだサーバ３０１−ｐが記憶するレプリカ４１１には、２つ以上の通信端点が対応付けられることもある。
【０１１６】
図１６は、図６の分散データベースシステムにおいてサーバ３０１−１が故障したサーバ３０１−４の通信端点を引き継いだ場合に、サーバ３０１−４の通信端点が追加された対応関係情報４２２の例を示している。
【０１１７】
この例では、各サーバ３０１−ｐにおけるレプリカ４１１と通信端点とが図８のように対応付けられている状態で、サーバ３０１−４が故障した場合を想定している。この場合、サーバ３０１−１は、図８（ａ）の対応関係情報４２２から、レプリカｒ２１、レプリカｒ３３、及びレプリカｒ４２を順に選択する。そして、サーバ３０１−１は、レプリカｒ４２を選択したとき、レプリカｒ４２に対応付けられている通信端点ａ４２を、通信端点Ｄとして選択する。
【０１１８】
次に、サーバ３０１−１は、図７の通信端点テーブル４２１を参照して、レプリカｒ４２のキー領域Ｒ４に対応する通信端点ａ４１及び通信端点ａ４３のうち、通信端点ａ４２よりも優先度が１レベルだけ高い通信端点ａ４１を、通信端点Ｅとして特定する。そして、サーバ３０１−１は、通信端点ａ４１を有するサーバ３０１−４へ死活監視メッセージを送信する。
【０１１９】
サーバ３０１−１は、所定時間内に応答メッセージを受信しないため、通信端点ａ４１をレプリカｒ４２に対応付けて、対応関係情報４２２に登録し、通信端点ａ４１を有効にする。これにより、図８（ａ）の対応関係情報４２２が図１６に示すように更新され、対応関係情報４２２に通信端点ａ４１が追加される。この場合、サーバ３０１−１が記憶するレプリカｒ４２に対して、２つの通信端点が対応付けられる。
【０１２０】
図１１、図１２、図１４、及び図１５の処理によれば、各サーバ３０１−ｐの負荷、故障の発生等に応じて、各キー領域に対応する複数のレプリカ４１１をそれぞれ記憶する複数のサーバ３０１−ｐのアクセス優先順位をリアルタイムに更新することができる。これにより、各クライアント３０２−ｑを、正常に動作している低負荷状態のサーバ３０１−ｐにアクセスするように誘導することが可能になる。
【０１２１】
また、特定のサーバ３０１−ｐの対応関係情報４２２を更新するだけで、複数のサーバ３０１−ｐのアクセス優先順位を変更することができるため、変更された制御情報をすべてのサーバ３０１−ｐ及びすべてのクライアント３０２−ｑが共有する必要がない。このため、アクセス制御処理の計算量及び通信量を小さく抑えることができる。
【０１２２】
さらに、各クライアント３０２−ｑはいずれかのレプリカ４１１を記憶するサーバ３０１−ｐへアクセス要求を送信するだけよく、アクセス要求をリレーする必要もないため、アクセス制御処理がレイテンシ及びスループットに影響を与えることはない。
【０１２３】
ところで、故障したサーバ３０１−ｐの通信端点が他のサーバ３０１−ｐに引き継がれた場合、クライアント３０２−ｑがアクセス可能なレプリカ４１１の個数が減少し、レプリカ４１１が縮退する。この場合、正常なサーバ３０１−ｐが新たなレプリカ４１１を生成することで、縮退が解消される。このとき、サーバ３０１−ｐは、生成したレプリカ４１１をキー領域に対応付けて対応関係情報４２２に登録し、そのレプリカ４１１のための通信端点を他のサーバ３０１−ｐから取得する。
【０１２４】
図１７は、新たなレプリカ４１１を生成したサーバ３０１−ｐが他のサーバ３０１−ｐから通信端点を引き取る引き取り処理の例を示すフローチャートである。まず、通信端点管理部４０４の特定部１１１は、自サーバ３０１−ｐのデータ記憶部４０１内にレプリカ４１１が生成されたか否かをチェックする（ステップ１７０１）。データ記憶部４０１内にレプリカ４１１が生成されていない場合（ステップ１７０１，ＮＯ）、特定部１１１は、ステップ１７０１の処理を繰り返す。
【０１２５】
一方、データ記憶部４０１内にレプリカ４１１が生成された場合（ステップ１７０１，ＹＥＳ）、特定部１１１は、対応関係情報４２２を参照して、生成されたレプリカ４１１に対応付けられているキー領域を特定する（ステップ１７０２）。
【０１２６】
次に、特定部１１１は、通信端点テーブル４２１を参照して、特定したキー領域に対応する通信端点の中から、優先度の高い順に１つの通信端点Ｆを選択する（ステップ１７０３）。そして、特定部１１１は、特定したキー領域に対応する通信端点を取得するための引き取りメッセージを、データ制御部４０３へ出力する（ステップ１７０４）。この引き取りメッセージは、特定したキー領域の識別情報を含み、通信端点Ｆを宛先とするメッセージである。そして、データ制御部４０３は、引き取りメッセージを通信処理部４０５へ出力し、通信処理部４０５は、引き取りメッセージを通信端点Ｆへ送信する。
【０１２７】
次に、特定部１１１は、引き取りメッセージに対する応答メッセージを所定時間内に受信したか否かをチェックする（ステップ１７０５）。所定時間内に応答メッセージを受信した場合（ステップ１７０５，ＹＥＳ）、特定部１１１は、その応答メッセージが引き取りの依頼（ＯＫ）を示しているか否かをチェックする（ステップ１７０６）。
【０１２８】
応答メッセージがＯＫを示していない場合（ステップ１７０６，ＮＯ）、特定部１１１は、通信端点Ｆがキー領域に対応する通信端点のうち最後の通信端点であるか否かをチェックする（ステップ１７０７）。通信端点Ｆが最後の通信端点ではない場合（ステップ１７０７，ＮＯ）、特定部１１１は、次に高い優先度の通信端点について、ステップ１７０３以降の処理を繰り返す。一方、通信端点Ｆが最後の通信端点である場合（ステップ１７０７，ＹＥＳ）、通信端点管理部４０４は、処理を終了する。
【０１２９】
所定時間内に応答メッセージを受信しなかった場合（ステップ１７０５，ＮＯ）、特定部１１１は、ステップ１７０７以降の処理を行う。
【０１３０】
応答メッセージがＯＫを示している場合（ステップ１７０６，ＹＥＳ）、設定部１１２は、応答メッセージが示す通信端点Ｇを、生成されたレプリカ４１１に対応付けて、対応関係情報４２２に登録する（ステップ１７０８）。そして、設定部１１２は、通信端点Ｇの有効化を通信処理部４０５に依頼し（ステップ１７０９）、通信処理部４０５は、インタフェース４０６において通信端点Ｇを有効にする。これにより、生成されたレプリカ４１１に対応付けて、通信端点Ｇがインタフェース４０６に設定されるため、通信端点管理部４０４は、処理を終了する。
【０１３１】
通信端点管理部４０４は、通信端点Ｆが最後の通信端点である場合、又はステップ１７０９の処理の後で、引き取り処理を再開してもよく、引き取り処理を所定時間毎に実行してもよい。
【０１３２】
図１８は、引き取りメッセージを受信したサーバ３０１−ｐが通信端点の引き取りを依頼する引き取り依頼処理の例を示すフローチャートである。まず、通信端点管理部４０４の特定部１１１は、いずれかのサーバ３０１−ｐから引き取りメッセージを受信したか否かをチェックする（ステップ１８０１）。引き取りメッセージを受信していない場合（ステップ１８０１，ＮＯ）、特定部１１１は、ステップ１８０１の処理を繰り返す。
【０１３３】
一方、引き取りメッセージを受信した場合（ステップ１８０１，ＹＥＳ）、特定部１１１は、受信した引き取りメッセージが示すキー領域を取得する（ステップ１８０２）。そして、特定部１１１は、対応関係情報４２２を参照して、データ記憶部４０１内に、取得したキー領域に対応するレプリカ４１１が存在するか否かをチェックする（ステップ１８０３）。
【０１３４】
キー領域に対応するレプリカ４１１が存在しない場合（ステップ１８０３，ＮＯ）、特定部１１１は、引き取り依頼の拒否（ＮＧ）を示す応答メッセージを、データ制御部４０３へ出力する（ステップ１８０８）。そして、データ制御部４０３は、応答メッセージを通信処理部４０５へ出力し、通信処理部４０５は、引き取りメッセージを送信したサーバ３０１−ｐへ応答メッセージを送信する。
【０１３５】
一方、キー領域に対応するレプリカ４１１が存在する場合（ステップ１８０３，ＹＥＳ）、特定部１１１は、対応関係情報４２２を参照して、そのレプリカ４１１に対応する通信端点の個数をチェックする（ステップ１８０４）。通信端点の個数が１個以下である場合（ステップ１８０４，ＹＥＳ）、特定部１１１は、ステップ１８０８の処理を行う。
【０１３６】
一方、通信端点の個数が２個以上である場合（ステップ１８０４，ＮＯ）、特定部１１１は、それらの通信端点のうち、優先度が最も高い通信端点Ｇを選択する（ステップ１８０５）。通信端点Ｇは、図１７のステップ１７０３で選択された通信端点Ｆと一致することもあり、一致しないこともある。
【０１３７】
次に、設定部１１２は、対応関係情報４２２から通信端点Ｇを削除し、通信端点Ｇの無効化を通信処理部４０５に依頼する（ステップ１８０６）。そして、通信処理部４０５は、インタフェース４０６に設定されている通信端点Ｇを無効にする。
【０１３８】
次に、特定部１１１は、引き取りの依頼（ＯＫ）を示す応答メッセージを、データ制御部４０３へ出力する（ステップ１８０７）。この応答メッセージは、通信端点Ｇの通信端点識別情報を含み、通信端点Ｇの引き取りを依頼することを示す。そして、データ制御部４０３は、応答メッセージを通信処理部４０５へ出力し、通信処理部４０５は、引き取りメッセージを送信したサーバ３０１−ｐへ応答メッセージを送信する。
【０１３９】
通信端点管理部４０４は、ステップ１８０７又はステップ１８０８の処理の後で引き取り依頼処理を再開してもよく、引き取り依頼処理を所定時間毎に実行してもよい。
【０１４０】
図１７の引き取り処理及び図１８の引き取り依頼処理によれば、新たに生成されたレプリカ４１１を記憶するサーバ３０１−ｐが、同じキー領域に対応する複数の通信端点を有するサーバ３０１−ｐから、優先度の高い通信端点を引き取ることが可能になる。これにより、同じキー領域に対応する複数の通信端点を有するサーバ３０１−ｐに対して、アクセス要求が集中することを抑止することができる。
【０１４１】
図３の分散データベースシステムでは、アクセス制御処理を行う通信端点管理部４０４を各サーバ３０１−ｐに設けているが、サーバ３０１−１〜サーバ３０１−Ｐとは別にアクセス制御処理を行う情報処理装置を設けることも可能である。
【０１４２】
図１９は、独立したアクセス制御装置を含む第２の分散データベースシステムの構成例を示している。図１９の分散データベースシステムは、図３の分散データベースシステムにアクセス制御装置１９０１を追加した構成を有する。この場合、各サーバ３０１−ｐは、図４の構成から通信端点管理部４０４を削除した構成を有する。
【０１４３】
アクセス制御装置１９０１は、図１のアクセス制御装置１０１に対応し、通信端点テーブル４２１と、サーバ３０１−１〜サーバ３０１−Ｐそれぞれの対応関係情報４２２とを記憶する。そして、アクセス制御装置１９０１は、図１１、図１２、図１４、図１５、図１７、及び図１８と同様の処理を行うことで、複数のサーバ３０１−ｐのアクセス優先順位を集中的に制御する。
【０１４４】
例えば、図１１の引き受け依頼処理の場合、サーバ３０１−ｐのデータ制御部４０３がステップ１１０１の処理を行い、アクセス制御装置１９０１がステップ１１０２〜ステップ１１０６及びステップ１１１０〜ステップ１１１４の処理を行う。ステップ１１０７〜ステップ１１０９の処理は省略される。
【０１４５】
アクセス制御装置１９０１は、ステップ１１１２において、高負荷状態のサーバ３０１−ｐに、対応関係情報４２２の更新及び通信端点Ａの無効化を依頼する。そして、アクセス制御装置１９０１は、ステップ１１１３において、対応関係情報４２２の更新をそのサーバ３０１−ｐに依頼し、ステップ１１１４において、通信端点Ｃの有効化をそのサーバ３０１−ｐに依頼する。
【０１４６】
図１２の引き受け処理の場合、サーバ３０１−ｐのデータ制御部４０３がステップ１２０４の処理を行う。そして、アクセス制御装置１９０１がステップ１２０１〜ステップ１２０３及びステップ１２０５、ステップ１２０６、ステップ１２０８、及びステップ１２０９の処理を行う。ステップ１２０１、ステップ１２０７、及びステップ１２１０の処理は省略される。
【０１４７】
アクセス制御装置１９０１は、ステップ１２０６において、低負荷状態のサーバ３０１−ｐに、対応関係情報４２２の更新及び通信端点Ｃの無効化を依頼する。そして、アクセス制御装置１９０１は、ステップ１２０８において、対応関係情報４２２の更新をそのサーバ３０１−ｐに依頼し、ステップ１２０９において、通信端点Ａの有効化をそのサーバ３０１−ｐに依頼する。
【０１４８】
図１４の死活監視処理の場合、アクセス制御装置１９０１がステップ１４０１〜ステップ１４０９の処理を行う。アクセス制御装置１９０１は、ステップ１４０１において、すべてのサーバ３０１−ｐが記憶しているレプリカ４１１を順に選択し、ステップ１４０６において、選択したレプリカ４１１を記憶しているサーバ３０１−ｐに、対応関係情報４２２の更新を依頼する。そして、アクセス制御装置１９０１は、ステップ１４０７において、通信端点Ｅの有効化をそのサーバ３０１−ｐに依頼する。
【０１４９】
図１７の引き取り処理の場合、サーバ３０１−ｐのデータ制御部４０３がステップ１７０１の処理を行い、アクセス制御装置１９０１がステップ１７０２、ステップ１７０３、及びステップ１７０７〜ステップ１７０９の処理を行う。ステップ１７０４〜ステップ１７０６の処理は省略される。
【０１５０】
アクセス制御装置１９０１は、ステップ１７０８において、レプリカ４１１を生成したサーバ３０１−ｐに、対応関係情報４２２の更新を依頼し、ステップ１７０９において、通信端点Ｇの有効化をそのサーバ３０１−ｐに依頼する。
【０１５１】
図１８の引き取り依頼処理の場合、アクセス制御装置１９０１がステップ１８０２〜ステップ１８０６の処理を行う。ステップ１８０１、ステップ１８０７、及びステップ１８０８の処理は省略される。
【０１５２】
アクセス制御装置１９０１は、ステップ１８０６において、キー領域に対応するレプリカ４１１を記憶しているサーバ３０１−ｐに、対応関係情報４２２の更新及び通信端点Ｇの無効化を依頼する。
【０１５３】
図１のアクセス制御装置１０１の構成は一例に過ぎず、アクセス制御装置１０１の用途又は条件に応じて、一部の構成要素を省略又は変更してもよい。
【０１５４】
図３及び図１９の分散データベースシステムの構成は一例に過ぎず、分散データベースシステムの用途又は条件に応じて、一部の構成要素を省略又は変更してもよい。例えば、サーバ３０１−１〜サーバ３０１−Ｐが通信ネットワーク３０４に直接接続される場合は、通信ネットワーク３０３を省略することができる。分散データベースシステムは、分散ハッシュテーブル（Distributed Hash Table，ＤＨＴ）を利用したピア・ツー・ピア（Peer-To-Peer，Ｐ２Ｐ）型のデータ配信システムであってもよい。
【０１５５】
図４のサーバ３０１−ｐの構成は一例に過ぎず、分散データベースシステムの用途又は条件に応じて、一部の構成要素を省略又は変更してもよい。例えば、データ記憶部４０１が通信端点テーブル４２１及び対応関係情報４２２を記憶する場合は、制御情報記憶部４０２を省略することができる。図５のクライアント３０２−ｑの構成は一例に過ぎず、分散データベースシステムの用途又は条件に応じて、一部の構成要素を省略又は変更してもよい。
【０１５６】
図９〜図１２、図１４、図１５、図１７、及び図１８のフローチャートは一例に過ぎず、分散データベースシステムの構成又は条件に応じて一部の処理を省略又は変更してもよい。例えば、分散データベースがＲＤＢである場合、各エントリに含まれる所定のフィールドのデータをキーとして用いることができ、分散データベースがＤＨＴを利用したデータベースである場合、ハッシュ値をキーとして用いることができる。
【０１５７】
図６のレプリカ及び通信端点は一例に過ぎず、各サーバ３０１−ｐが記憶するレプリカと各サーバ３０１−ｐに設定される通信端点は、分散データベースシステムの用途又は条件に応じて変化する。図７の通信端点テーブルと図８、図１３、及び図１６の対応関係情報は一例に過ぎず、通信端点テーブルと対応関係情報は、分散データベースシステムの用途又は条件に応じて変化する。
【０１５８】
図２０は、図１のアクセス制御装置１０１、図１９のアクセス制御装置１９０１、図４のサーバ３０１−ｐ、及び図５のクライアント３０２−ｑとして用いられる情報処理装置（コンピュータ）の構成例を示している。図２０の情報処理装置は、ＣＰＵ２００１、メモリ２００２、入力装置２００３、出力装置２００４、補助記憶装置２００５、媒体駆動装置２００６、及びネットワーク接続装置２００７を備える。これらの構成要素はバス２００８により互いに接続されている。
【０１５９】
メモリ２００２は、例えば、Read Only Memory（ＲＯＭ）、Random Access Memory（ＲＡＭ）、フラッシュメモリ等の半導体メモリであり、処理に用いられるプログラム及びデータを格納する。メモリ２００２は、図４のデータ記憶部４０１、制御情報記憶部４０２、又は図５の制御情報記憶部５０２として用いることができる。
【０１６０】
ＣＰＵ２００１（プロセッサ）は、例えば、メモリ２００２を利用してプログラムを実行することにより、図１及び図４の特定部１１１及び設定部１１２として動作する。ＣＰＵ２００１は、メモリ２００２を利用してプログラムを実行することにより、図４のデータ制御部４０３、通信端点管理部４０４、及び通信処理部４０５としても動作する。ＣＰＵ２００１は、メモリ２００２を利用してプログラムを実行することにより、図５のアクセス部５０１としても動作する。
【０１６１】
入力装置２００３は、例えば、キーボード、ポインティングデバイス等であり、オペレータ又はユーザからの指示及び情報の入力に用いられる。出力装置２００４は、例えば、表示装置、プリンタ、スピーカ等であり、オペレータ又はユーザへの問い合わせ又は指示、及び処理結果の出力に用いられる。処理結果は、図９のアクセス処理において、クライアント３０２−ｑがサーバ３０１−ｐから受信したバリューであってもよい。
【０１６２】
補助記憶装置２００５は、例えば、磁気ディスク装置、光ディスク装置、光磁気ディスク装置、テープ装置等である。補助記憶装置２００５は、ハードディスクドライブ又はフラッシュメモリであってもよい。情報処理装置は、補助記憶装置２００５にプログラム及びデータを格納しておき、それらをメモリ２００２にロードして使用することができる。補助記憶装置２００５は、図４のデータ記憶部４０１、制御情報記憶部４０２、又は図５の制御情報記憶部５０２として用いることができる。
【０１６３】
媒体駆動装置２００６は、可搬型記録媒体２００９を駆動し、その記録内容にアクセスする。可搬型記録媒体２００９は、メモリデバイス、フレキシブルディスク、光ディスク、光磁気ディスク等である。可搬型記録媒体２００９は、Compact Disk Read Only Memory（ＣＤ−ＲＯＭ）、Digital Versatile Disk（ＤＶＤ）、Universal Serial Bus（ＵＳＢ）メモリ等であってもよい。オペレータ又はユーザは、この可搬型記録媒体２００９にプログラム及びデータを格納しておき、それらをメモリ２００２にロードして使用することができる。
【０１６４】
このように、処理に用いられるプログラム及びデータを格納するコンピュータ読み取り可能な記録媒体は、メモリ２００２、補助記憶装置２００５、又は可搬型記録媒体２００９のような、物理的な（非一時的な）記録媒体である。
【０１６５】
ネットワーク接続装置２００７は、通信ネットワーク３０３又は通信ネットワーク３０４に接続され、通信に伴うデータ変換を行う通信インタフェース回路である。ネットワーク接続装置２００７は、図４のインタフェース４０６として用いることができる。情報処理装置は、プログラム及びデータを外部の装置からネットワーク接続装置２００７を介して受け取り、それらをメモリ２００２にロードして使用することができる。
【０１６６】
なお、情報処理装置が図２０のすべての構成要素を含む必要はなく、用途又は条件に応じて一部の構成要素を省略することも可能である。例えば、情報処理装置がオペレータ又はユーザと対話を行わない場合は、入力装置２００３及び出力装置２００４を省略してもよい。また、可搬型記録媒体２００９を利用しない場合は、媒体駆動装置２００６を省略してもよい。
【０１６７】
開示の実施形態とその利点について詳しく説明したが、当業者は、特許請求の範囲に明確に記載した本発明の範囲から逸脱することなく、様々な変更、追加、省略をすることができるであろう。
【０１６８】
図１乃至図２０を参照しながら説明した実施形態に関し、さらに以下の付記を開示する。
（付記１）
コンピュータが、
データに対する複数のレプリカをそれぞれ記憶する複数の情報処理装置のいずれかにおける動作状況の変化を契機として、端末装置が前記複数のレプリカにアクセスするための複数の通信端点の中から、前記複数の情報処理装置のうち１つの情報処理装置が記憶するレプリカに対応付けて前記１つの情報処理装置に設定されている第１通信端点以外の第２通信端点を特定し、
前記第２通信端点を、前記１つの情報処理装置が記憶するレプリカに対応付けて前記１つの情報処理装置に設定する、
ことを特徴とするアクセス制御方法。
（付記２）
前記コンピュータは、
前記１つの情報処理装置が記憶するレプリカを示すレプリカ識別情報と、前記１つの情報処理装置に設定されている前記第１通信端点を示す第１通信端点識別情報との間の対応関係を示す対応関係情報を記憶し、
前記動作状況の変化を契機として、前記対応関係情報に含まれる前記第１通信端点識別情報を、前記第２通信端点を示す第２通信端点識別情報に変更することを特徴とする付記１記載のアクセス制御方法。
（付記３）
前記端末装置は、前記複数の通信端点に設定されている優先度に従って前記複数の通信端点のいずれかにアクセスし、前記動作状況の変化は、前記１つの情報処理装置が高負荷状態になったことを表し、前記第２通信端点の優先度は前記第１通信端点の優先度よりも低いことを特徴とする付記２記載のアクセス制御方法。
（付記４）
前記端末装置は、前記複数の通信端点に設定されている優先度に従って前記複数の通信端点のいずれかにアクセスし、前記動作状況の変化は、前記１つの情報処理装置以外の他の情報処理装置が高負荷状態になったことを表し、前記他の情報処理装置が高負荷状態になる前において、前記第２通信端点は、前記他の情報処理装置が記憶するレプリカに対応付けて前記他の情報処理装置に設定されており、前記第２通信端点の優先度は前記第１通信端点の優先度よりも高いことを特徴とする付記２記載のアクセス制御方法。
（付記５）
前記コンピュータは、
前記１つの情報処理装置が記憶するレプリカを示すレプリカ識別情報と、前記１つの情報処理装置に設定されている前記第１通信端点を示す第１通信端点識別情報との間の対応関係を示す対応関係情報を記憶し、
前記動作状況の変化を契機として、前記レプリカ識別情報と前記第２通信端点を示す第２通信端点識別情報との間の対応関係を、前記対応関係情報に追加し、
前記端末装置は、前記複数の通信端点に設定されている優先度に従って前記複数の通信端点のいずれかにアクセスし、前記動作状況の変化は、前記１つの情報処理装置以外の他の情報処理装置に故障が発生したことを表し、前記他の情報処理装置に故障が発生する前において、前記第２通信端点は、前記他の情報処理装置が記憶するレプリカに対応付けて前記他の情報処理装置に設定されており、前記第２通信端点の優先度は前記第１通信端点の優先度よりも高いことを特徴とする付記１記載のアクセス制御方法。
（付記６）
データに対する複数のレプリカをそれぞれ記憶する複数の情報処理装置のいずれかにおける動作状況の変化を契機として、端末装置が前記複数のレプリカにアクセスするための複数の通信端点の中から、前記複数の情報処理装置のうち１つの情報処理装置が記憶するレプリカに対応付けて前記１つの情報処理装置に設定されている第１通信端点以外の第２通信端点を特定する特定部と、
前記第２通信端点を、前記１つの情報処理装置が記憶するレプリカに対応付けて前記１つの情報処理装置に設定する設定部と、
を備えることを特徴とするアクセス制御装置。
（付記７）
前記１つの情報処理装置が記憶するレプリカを示すレプリカ識別情報と、前記１つの情報処理装置に設定されている前記第１通信端点を示す第１通信端点識別情報との間の対応関係を示す対応関係情報を記憶する記憶部をさらに備え、
前記設定部は、前記動作状況の変化を契機として、前記対応関係情報に含まれる前記第１通信端点識別情報を、前記第２通信端点を示す第２通信端点識別情報に変更することを特徴とする付記６記載のアクセス制御装置。
（付記８）
前記端末装置は、前記複数の通信端点に設定されている優先度に従って前記複数の通信端点のいずれかにアクセスし、前記動作状況の変化は、前記１つの情報処理装置が高負荷状態になったことを表し、前記第２通信端点の優先度は前記第１通信端点の優先度よりも低いことを特徴とする付記７記載のアクセス制御装置。
（付記９）
前記端末装置は、前記複数の通信端点に設定されている優先度に従って前記複数の通信端点のいずれかにアクセスし、前記動作状況の変化は、前記１つの情報処理装置以外の他の情報処理装置が高負荷状態になったことを表し、前記他の情報処理装置が高負荷状態になる前において、前記第２通信端点は、前記他の情報処理装置が記憶するレプリカに対応付けて前記他の情報処理装置に設定されており、前記第２通信端点の優先度は前記第１通信端点の優先度よりも高いことを特徴とする付記７記載のアクセス制御装置。
（付記１０）
前記１つの情報処理装置が記憶するレプリカを示すレプリカ識別情報と、前記１つの情報処理装置に設定されている前記第１通信端点を示す第１通信端点識別情報との間の対応関係を示す対応関係情報を記憶する記憶部をさらに備え、
前記設定部は、前記動作状況の変化を契機として、前記レプリカ識別情報と前記第２通信端点を示す第２通信端点識別情報との間の対応関係を、前記対応関係情報に追加し、
前記端末装置は、前記複数の通信端点に設定されている優先度に従って前記複数の通信端点のいずれかにアクセスし、前記動作状況の変化は、前記１つの情報処理装置以外の他の情報処理装置に故障が発生したことを表し、前記他の情報処理装置に故障が発生する前において、前記第２通信端点は、前記他の情報処理装置が記憶するレプリカに対応付けて前記他の情報処理装置に設定されており、前記第２通信端点の優先度は前記第１通信端点の優先度よりも高いことを特徴とする付記６記載のアクセス制御装置。
（付記１１）
データに対する複数のレプリカをそれぞれ記憶する複数の情報処理装置のいずれかにおける動作状況の変化を契機として、端末装置が前記複数のレプリカにアクセスするための複数の通信端点の中から、前記複数の情報処理装置のうち１つの情報処理装置が記憶するレプリカに対応付けて前記１つの情報処理装置に設定されている第１通信端点以外の第２通信端点を特定し、
前記第２通信端点を、前記１つの情報処理装置が記憶するレプリカに対応付けて前記１つの情報処理装置に設定する、
処理をコンピュータに実行させるためのアクセス制御プログラム。
（付記１２）
前記コンピュータは、
前記１つの情報処理装置が記憶するレプリカを示すレプリカ識別情報と、前記１つの情報処理装置に設定されている前記第１通信端点を示す第１通信端点識別情報との間の対応関係を示す対応関係情報を記憶し、
前記動作状況の変化を契機として、前記対応関係情報に含まれる前記第１通信端点識別情報を、前記第２通信端点を示す第２通信端点識別情報に変更することを特徴とする付記１１記載のアクセス制御プログラム。
（付記１３）
前記端末装置は、前記複数の通信端点に設定されている優先度に従って前記複数の通信端点のいずれかにアクセスし、前記動作状況の変化は、前記１つの情報処理装置が高負荷状態になったことを表し、前記第２通信端点の優先度は前記第１通信端点の優先度よりも低いことを特徴とする付記１２記載のアクセス制御プログラム。
（付記１４）
前記端末装置は、前記複数の通信端点に設定されている優先度に従って前記複数の通信端点のいずれかにアクセスし、前記動作状況の変化は、前記１つの情報処理装置以外の他の情報処理装置が高負荷状態になったことを表し、前記他の情報処理装置が高負荷状態になる前において、前記第２通信端点は、前記他の情報処理装置が記憶するレプリカに対応付けて前記他の情報処理装置に設定されており、前記第２通信端点の優先度は前記第１通信端点の優先度よりも高いことを特徴とする付記１２記載のアクセス制御プログラム。
（付記１５）
前記コンピュータは、
前記１つの情報処理装置が記憶するレプリカを示すレプリカ識別情報と、前記１つの情報処理装置に設定されている前記第１通信端点を示す第１通信端点識別情報との間の対応関係を示す対応関係情報を記憶し、
前記動作状況の変化を契機として、前記レプリカ識別情報と前記第２通信端点を示す第２通信端点識別情報との間の対応関係を、前記対応関係情報に追加し、
前記端末装置は、前記複数の通信端点に設定されている優先度に従って前記複数の通信端点のいずれかにアクセスし、前記動作状況の変化は、前記１つの情報処理装置以外の他の情報処理装置に故障が発生したことを表し、前記他の情報処理装置に故障が発生する前において、前記第２通信端点は、前記他の情報処理装置が記憶するレプリカに対応付けて前記他の情報処理装置に設定されており、前記第２通信端点の優先度は前記第１通信端点の優先度よりも高いことを特徴とする付記１１記載のアクセス制御プログラム。
【符号の説明】
【０１６９】
１０１、１９０１  アクセス制御装置
１１１  特定部
１１２  設定部
３０１  サーバ
３０２  クライアント
３０３、３０４  通信ネットワーク
４０１  データ記憶部
４０２、５０２  制御情報記憶部
４０３  データ制御部
４０４  通信端点管理部
４０５  通信処理部
４０６  インタフェース
４１１  レプリカ
４２１、５１１  通信端点テーブル
４２２  対応関係情報
５０１  アクセス部
２００１  ＣＰＵ
２００２  メモリ
２００３  入力装置
２００４  出力装置
２００５  補助記憶装置
２００６  媒体駆動装置
２００７  ネットワーク接続装置
２００８  バス
２００９  可搬型記録媒体
【図１】
2019012318.tif 000003
【図２】
2019012318.tif 000004
【図３】
2019012318.tif 000005
【図４】
2019012318.tif 000006
【図５】
2019012318.tif 000007
【図６】
2019012318.tif 000008
【図７】
2019012318.tif 000009
【図８】
2019012318.tif 000010
【図９】
2019012318.tif 000011
【図１０】
2019012318.tif 000012
【図１１】
2019012318.tif 000013
【図１２】
2019012318.tif 000014
【図１３】
2019012318.tif 000015
【図１４】
2019012318.tif 000016
【図１５】
2019012318.tif 000017
【図１６】
2019012318.tif 000018
【図１７】
2019012318.tif 000019
【図１８】
2019012318.tif 000020
【図１９】
2019012318.tif 000021
【図２０】
2019012318.tif 000022