(57)【要約】【課題】タイムアウトのタイマ値を適切に設定する。【解決手段】分散ＤＢシステム１００のキャプチャサーバ１０は、各ＤＢサーバ２０間で行われる通信の遅延時間を測定し、測定した遅延時間をキャプチャログ記憶部１３ａに格納する。そして、キャプチャサーバ１０は、キャプチャログ記憶部１３ａに記憶された遅延時間をＤＢサーバ２０間ごとに分類し、各ＤＢサーバ２０間の遅延時間の平均および分散を算出する。続いて、キャプチャサーバ１０は、算出された各ＤＢサーバ２０間の遅延時間の平均および分散を用いて、各ＤＢサーバ２０間で行われる通信の遅延時間に対してそれぞれ設定されるタイマ値を決定する。【選択図】図１
2018142807.tif 000002
【特許請求の範囲】
【請求項１】
それぞれ異なる場所に設置された各ＤＢサーバ同士で通信を行う分散ＤＢシステムであって、
各ＤＢサーバ間で行われる通信の遅延時間を測定し、測定した遅延時間を記憶部に格納する測定部と、
前記記憶部に記憶された遅延時間をＤＢサーバ間ごとに分類し、各ＤＢサーバ間の遅延時間の平均および分散を算出する算出部と、
前記算出部によって算出された各ＤＢサーバ間の遅延時間の平均および分散を用いて、各ＤＢサーバ間で行われる通信の遅延時間に対してそれぞれ設定されるタイマ値を決定する決定部と、
を備えることを特徴とする分散ＤＢシステム。
【請求項２】
前記決定部によって決定されたタイマ値を前記各ＤＢサーバに通知する通知部をさらに備えることを特徴とする請求項１に記載の分散ＤＢシステム。
【請求項３】
前記算出部は、所定期間に格納された遅延時間をＤＢサーバ間ごとに分類し、各ＤＢサーバ間の遅延時間の平均および分散を算出することを特徴とする請求項１に記載の分散ＤＢシステム。
【請求項４】
前記所定期間に前記記憶部に格納された遅延時間のサンプル数が所定の閾値未満である場合には、前記所定期間よりも以前に前記記憶部に格納された過去の遅延時間を読み出す読出部をさらに備え、
前記算出部は、前記所定期間に前記記憶部に格納された遅延時間と、前記過去の遅延時間とをＤＢサーバ間ごとに分類し、各ＤＢサーバ間の遅延時間の平均および分散を算出することを特徴とする請求項３に記載の分散ＤＢシステム。
【請求項５】
それぞれ異なる場所に設置された各ＤＢサーバ同士で通信を行う分散ＤＢシステムによって実行されるタイマ設定方法であって、
各ＤＢサーバ間で行われる通信の遅延時間を測定し、測定した遅延時間を記憶部に格納する測定工程と、
前記記憶部に記憶された遅延時間をＤＢサーバ間ごとに分類し、各ＤＢサーバ間の遅延時間の平均および分散を算出する算出工程と、
前記算出工程によって算出された各ＤＢサーバ間の遅延時間の平均および分散を用いて、各ＤＢサーバ間で行われる通信の遅延時間に対してそれぞれ設定されるタイマ値を決定する決定工程と、
を含んだことを特徴とするタイマ設定方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、分散ＤＢシステムおよびタイマ設定方法に関する。
【背景技術】
【０００２】
従来、ＤＢクライアントからの要求に応じて、複数のＤＢサーバ間でリレーを行う分散ＤＢシステムにおいて、システム全体が停止しないようにＤＢサーバを離れた位置に設置するのが一般的である。このような分散ＤＢシステムにおいて、ＤＢサーバ間でのリレーでは通信網が利用されるため、ＤＢサーバ間のリレー時間は、通信距離やＮＷ機器の構成等の影響を受け、通信経路によって異なる。
【０００３】
また、このような分散ＤＢシステムにおいて、ＤＢクライアントが要求を行って、該要求に対する応答を受け取るまでの制限時間として、タイマ値が設定されており、該タイマ値を過ぎた場合には、タイムアウトとなる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１４−２３９３３１号公報
【特許文献２】特開平４−２０８７９１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、従来の技術では、タイムアウトのタイマ値を適切に設定することができない場合があるという課題があった。つまり、従来の技術では、例えば、分散ＤＢシステムを新規導入する際、もしくは、ＤＢサーバを追加配置する際のタイマ設計に複雑性がある。また、分散ＤＢシステムは、離れた距離にＤＢサーバが配置されており、通信距離やネットワーク機器の構成等の影響があるため、通信経路によってリレーによる通信速度が異なるため、通信経路を考慮したタイマ値を適切に設定することが難しい場合がある。
【課題を解決するための手段】
【０００６】
上述した課題を解決し、目的を達成するために、本発明の分散ＤＢシステムは、それぞれ異なる場所に設置された各ＤＢサーバ同士で通信を行う分散ＤＢシステムであって、各ＤＢサーバ間で行われる通信の遅延時間を測定し、測定した遅延時間を記憶部に格納する測定部と、前記記憶部に記憶された遅延時間をＤＢサーバ間ごとに分類し、各ＤＢサーバ間の遅延時間の平均および分散を算出する算出部と、前記算出部によって算出された各ＤＢサーバ間の遅延時間の平均および分散を用いて、各ＤＢサーバ間で行われる通信の遅延時間に対してそれぞれ設定されるタイマ値を決定する決定部と、を備えることを特徴とする。
【０００７】
また、本発明のタイマ設定方法は、それぞれ異なる場所に設置された各ＤＢサーバ同士で通信を行う分散ＤＢシステムによって実行されるタイマ設定方法であって、各ＤＢサーバ間で行われる通信の遅延時間を測定し、測定した遅延時間を記憶部に格納する測定工程と、前記記憶部に記憶された遅延時間をＤＢサーバ間ごとに分類し、各ＤＢサーバ間の遅延時間の平均および分散を算出する算出工程と、前記算出工程によって算出された各ＤＢサーバ間の遅延時間の平均および分散を用いて、各ＤＢサーバ間で行われる通信の遅延時間に対してそれぞれ設定されるタイマ値を決定する決定工程と、を含んだことを特徴とする。
【発明の効果】
【０００８】
本発明によればタイムアウトのタイマ値を適切に設定することができるという効果を奏する。
【図面の簡単な説明】
【０００９】
【図１】図１は、第一の実施の形態に係る分散ＤＢシステムの構成の一例を示す図である。
【図２】図２は、第一の実施の形態に係る分散ＤＢシステムにおける遅延時間について説明する図である。
【図３】図３は、第一の実施の形態に係るキャプチャサーバの構成を示すブロック図である。
【図４】図４は、キャプチャログ記憶部に記憶される情報の一例を示す図である。
【図５】図５は、遅延時間を計測する処理を説明する図である。
【図６】図６は、各ＤＢサーバにタイマ値を通知する処理を説明する図である。
【図７】図７は、第一の実施の形態に係るキャプチャサーバによる処理を説明するフローチャートである。
【図８】図８は、第二の実施の形態に係るキャプチャサーバの構成を示すブロック図である。
【図９】図９は、第二の実施の形態に係るキャプチャサーバによる一連のタイマ設定処理を説明する図である。
【図１０】図１０は、第二の実施の形態に係るキャプチャサーバによる処理を説明するフローチャートである。
【図１１】図１１は、タイマ設定プログラムを実行するコンピュータを示す図である。
【発明を実施するための形態】
【００１０】
以下に、本願に係る分散ＤＢシステムおよびタイマ設定方法の実施の形態を図面に基づいて詳細に説明する。なお、この実施の形態により本願に係る分散ＤＢシステムおよびタイマ設定方法が限定されるものではない。
【００１１】
［第一の実施の形態］
以下の実施の形態では、第一の実施の形態に係る分散ＤＢシステムの構成、キャプチャサーバの構成、キャプチャサーバの処理の流れを順に説明し、最後に第一の実施の形態による効果を説明する。
【００１２】
［分散ＤＢシステムの構成］
まず、図１を用いて、第一の実施の形態に係る分散ＤＢシステムについて説明する。図１は、第一の実施の形態に係る分散ＤＢシステムの構成の一例を示す図である。第一の実施の形態に係る分散ＤＢシステム１００は、キャプチャサーバ１０、複数のＤＢサーバ２０ａ〜２０ｃ、クライアントサーバ３０および複数のネットワーク機器（図１ではＮＷ機器と記載）４０ａ、４０ｂを有する。なお、各ＤＢサーバ２０ａ〜２０ｃは、それぞれ同様の構成を有しており、特に区別なく説明する場合には、ＤＢサーバ２０と記載する。また、各ネットワーク機器４０ａ、４０ｂについても、それぞれ同様の構成を有しており、特に区別なく説明する場合には、ネットワーク機器４０と記載する。また、図１に示す各装置の数は、あくまで一例であり、これに限られるものではない。
【００１３】
キャプチャサーバ１０は、ＤＢサーバ２０間の通信を中継するネットワーク機器４０からＤＢサーバ２０間に流れるデータを取得する。そして、キャプチャサーバ１０は、取得したデータからＤＢサーバ２０間で行われる通信の遅延時間を測定し、キャプチャログとして後述するキャプチャログ記憶部１３ａに格納する。
【００１４】
また、キャプチャサーバ１０は、キャプチャログ記憶部１３ａに記憶された遅延時間をＤＢサーバ２０間ごとに分類し、各ＤＢサーバ２０間の遅延時間の平均および分散を算出する。そして、キャプチャサーバ１０は、算出された各ＤＢサーバ２０間の遅延時間の平均および分散を用いて、各ＤＢサーバ２０間で行われる通信の遅延時間に対してそれぞれ設定されるタイマ値を決定する。
【００１５】
各ＤＢサーバ２０は、アクセス要求の対象となるデータを記憶する他のＤＢサーバ２０にアクセス要求を送信したり、他のＤＢサーバ２０からアクセス要求を受信して返信したりする。各ＤＢサーバ２０では、各ＤＢサーバ２０間で通信を行う際に、通信距離やネットワーク機器４０の構成等の影響により、遅延時間がそれぞれ異なる。
【００１６】
ここで、図２を用いて、第一の実施の形態に係る分散ＤＢシステム１００における遅延時間について説明する。図２は、第一の実施の形態に係る分散ＤＢシステムにおける遅延時間について説明する図である。図２に例示するように、分散ＤＢシステム１００において、各ＤＢサーバ２０は、システム全体が停止しないように、それぞれ離れた位置に設置されている。例えば、ＤＢサーバ２０ａが東京に設置され、ＤＢサーバ２０ｂが大阪に設置され、ＤＢサーバ２０ｃがニューヨークに設置されているものとする。また、各ＤＢサーバ２０は、図示しないネットワークを介して、それぞれ接続されている。なお、図２の例では、クライアントサーバ３０からのアクセス要求をＤＢサーバ２０ａが受け付けているものとする。
【００１７】
例えば、ＤＢサーバ２０ａは、クライアントサーバ３０からアクセス要求を受け付けたデータをＤＢサーバ２０ｂが収容している場合には、ＤＢサーバ２０ｂにアクセス要求を送信し、アクセス要求を受け付けたデータをＤＢサーバ２０ｃが収容している場合には、ＤＢサーバ２０ｃにアクセス要求を送信する。
【００１８】
ここで、図２に示すように、ＤＢサーバ２０ａは、ＤＢサーバ２０ｂにアクセス要求を送信して応答を受信するまでの時間よりも、ＤＢサーバ２０ｃにアクセス要求を送信して応答を受信するまでの時間の方が長い。つまり、ＤＢサーバ２０ａについて、ＤＢサーバ２０ｂとの通信における遅延が小さく、ＤＢサーバ２０ｃとの通信における遅延が大きいものとする。なお、以下の説明では、ＤＢサーバ２０ａがクライアントサーバ３０からアクセス要求を受け付けている例を用いて適宜説明する。
【００１９】
クライアントサーバ３０は、ＤＢサーバ２０ａに対してアクセス要求を送信する。そして、クライアントサーバ３０は、アクセス要求をしたデータをＤＢサーバ２０ａから受信する。ネットワーク機器４０は、ＤＢサーバ２０間の通信を中継する機器であり、例えば、スイッチやルータ等である。例えば、ネットワーク機器４０は、いわゆるポートミラーリング機能を有し、所定のポート経由するデータをコピーし、コピーしたデータを、キャプチャサーバ１０に送信する。
【００２０】
［キャプチャサーバの構成］
次に、図３を用いて、図１に示したキャプチャサーバ１０の構成を説明する。図３は、第一の実施の形態に係るキャプチャサーバ１０の構成を示すブロック図である。図３に示すように、このキャプチャサーバ１０は、通信処理部１１、制御部１２および記憶部１３を有する。以下にこれらの各部の処理を説明する。
【００２１】
通信処理部１１は、ＤＢサーバ２０やネットワーク機器４０等との間でやり取りする各種情報に関する通信を制御する。例えば、通信処理部１１は、ネットワーク機器４０からＤＢサーバ２０間で送受信されているパケットを受信する。また、通信処理部１１は、ＤＢサーバ２０に対して、設定するタイマ値を送信する。
【００２２】
また、記憶部１３は、制御部１２による各種処理に必要なデータおよびプログラムを格納するが、特に本発明に密接に関連するものとしては、キャプチャログ記憶部１３ａを有する。例えば、記憶部１３は、ＲＡＭ（Random  Access  Memory）、フラッシュメモリ（Flash  Memory）等の半導体メモリ素子、又は、ハードディスク、光ディスク等の記憶装置などである。
【００２３】
キャプチャログ記憶部１３ａは、各ＤＢサーバ２０間で行われる通信の遅延時間を記憶する。具体的には、キャプチャログ記憶部１３ａは、図４に示すように、通信の送信元であるＤＢサーバ２０の識別子を示す「Ｆｒｏｍ」と、通信の送信先であるＤＢサーバ２０の識別子を示す「Ｔｏ」と、遅延時間を示す「ＴＡＴ（Turn  Around  Time）」とを対応付けて記憶する。
【００２４】
図４の例を挙げて説明すると、例えば、キャプチャログ記憶部１３ａは、Ｆｒｏｍ（送信元）「ＤＢ１」と、Ｔｏ（送信先）「ＤＢ２」と、ＴＡＴ（遅延時間）「０．００１」とを対応付けて記憶する。これは、ＤＢ１からＤＢ２に対して送信されたパケットの遅延時間が「０．００１」秒であることを意味する。なお、以下では、ＤＢサーバ２０ａを「ＤＢ１」、ＤＢサーバ２０ｂを「ＤＢ２」、ＤＢサーバ２０ｃを「ＤＢ３」と記載して適宜説明する。
【００２５】
制御部１２は、各種の処理手順などを規定したプログラムおよび所要データを格納するための内部メモリを有し、これらによって種々の処理を実行するが、特に本発明に密接に関連するものとしては、測定部１２ａ、算出部１２ｂ、決定部１２ｃおよび通知部１２ｄを有する。
【００２６】
測定部１２ａは、各ＤＢサーバ２０間で行われる通信の遅延時間を測定し、測定した遅延時間をキャプチャログ記憶部１３ａに格納する。例えば、測定部１２ａは、定期的に、ＤＢサーバ２０間の通信を中継するネットワーク機器４０からＤＢサーバ２０間に流れるデータを取得する。そして、測定部１２ａは、取得したデータからＤＢサーバ２０間で行われる通信の遅延時間を測定し、キャプチャログとしてキャプチャログ記憶部１３ａに格納する。
【００２７】
ここで、図５を用いて、遅延時間の計測する処理を説明する。図５は、遅延時間を計測する処理を説明する図である。なお、図５では、簡略化のため、キャプチャサーバ１０が、ネットワーク機器４０ａ、４０ｂからデータを取得する例を示しているが、これに限定されるものではなく、当然より多くのネットワーク機器４０からデータを取得していてもよい。
【００２８】
図５に例示するように、キャプチャサーバ１０は、ＤＢサーバ２０ａとＤＢサーバ２０ｂとの間の通信を中継するネットワーク機器４０ａと、ＤＢサーバ２０ａとＤＢサーバ２０ｃとの間の通信を中継するネットワーク機器４０ｂとからデータを取得する。そして、測定部１２ａは、取得したデータからＤＢサーバ２０ａとＤＢサーバ２０ｂとの間で行われる通信の遅延時間と、ＤＢサーバ２０ａとＤＢサーバ２０ｃとの間で行われる通信の遅延時間とを測定し、キャプチャログとしてキャプチャログ記憶部１３ａに格納する。
【００２９】
算出部１２ｂは、キャプチャログ記憶部１３ａに記憶された遅延時間をＤＢサーバ２０間ごとに分類し、各ＤＢサーバ２０間の遅延時間の平均および分散を算出する。例えば、算出部１２ｂは、所定期間（例えば、１２時間）に格納された遅延時間をＤＢサーバ２０間ごとに分類し、各ＤＢサーバ２０間の遅延時間の平均および分散を算出する。なお、算出するタイミングは、所定期間ごとであってもよいし、ユーザが指定した所定のタイミングでもよい。
【００３０】
また、算出部１２ｂは、遅延時間をＤＢサーバ２０間ごとに分類する処理として、キャプチャログ記憶部１３ａに記憶された各レコードのうち、ＦｒｏｍとＴｏの組み合わせが同じレコードを同一グループに分類する。なお、ＦｒｏｍとＴｏを逆にした場合に、同じになるレコードについても同一グループに分類する。つまり、例えば、Ｆｒｏｍが「ＤＢ１」でＴｏが「ＤＢ２」のレコードと、Ｆｒｏｍが「ＤＢ２」でＴｏが「ＤＢ１」のレコードとは、同一グループに分類される。
【００３１】
決定部１２ｃは、算出部１２ｂによって算出された各ＤＢサーバ２０間の遅延時間の平均および分散を用いて、各ＤＢサーバ２０間で行われる通信の遅延時間に対してそれぞれ設定されるタイマ値を決定する。例えば、決定部１２ｃは、各ＤＢサーバ２０間について、遅延時間の平均値に、分散の３倍の値を加算した値をタイマ値として決定する。
【００３２】
ここで、図６を用いて、各ＤＢサーバ２０にタイマ値を通知する処理を説明する。図６は、各ＤＢサーバにタイマ値を通知する処理を説明する図である。図６に示すように、決定部１２ｃは、ＤＢ１−ＤＢ２間のタイマ値として、ＤＢ１−ＤＢ２間で行われた通信のＴＡＴ平均と、ＤＢ１−ＤＢ２間で行われた通信の分散σの３倍の値である「３σ」とを加算した値を算出する。また、決定部１２ｃは、ＤＢ１−ＤＢ３間のタイマ値として、ＤＢ１−ＤＢ３間で行われた通信の「ＴＡＴ平均」と、ＤＢ１−ＤＢ３間で行われた通信の分散σの３倍の値である「３σ」とを加算した値を算出する。
【００３３】
通知部１２ｄは、決定部１２ｃによって決定されたタイマ値を各ＤＢサーバ２０に通知する。例えば、通知部１２ｄは、決定部１２ｃによって決定されたＤＢ１−ＤＢ２間のタイマ値を、ＤＢサーバ２０ａおよびＤＢサーバ２０ｂに通知する。また、通知部１２ｄは、決定部１２ｃによって決定されたＤＢ１−ＤＢ３間のタイマ値を、ＤＢサーバ２０ａおよびＤＢサーバ２０ｃに通知する。なお、ＤＢサーバ２０は、タイマ値を受信すると、自装置の各ＩＦ（Interface）にタイマ値を設定する。
【００３４】
このように、キャプチャサーバ１０は、各ＤＢサーバ２０間の通信経路を考慮したタイマ設計を自動的に行うことが可能である。また、キャプチャサーバ１０は、分散ＤＢシステム１００構築後の通信経路変更の影響も考慮したタイマ設計を自動的に行うことが可能である。
【００３５】
［キャプチャサーバの処理の流れ］
次に、図７を用いて、第一の実施の形態に係るキャプチャサーバ１０の処理の流れを説明する。図７は、第一の実施の形態に係るキャプチャサーバによる処理を説明するフローチャートである。
【００３６】
図７に示すように、キャプチャサーバ１０は、所定期間（例えば、１２時間）が経過したか否かを判定する（ステップＳ１０１）。なお、ここで、所定期間が経過したとは、例えば、前回タイマ値を決定してから１２時間が経過したことを意味する。ここで、キャプチャサーバ１０は、所定期間が経過していない場合には（ステップＳ１０１否定）、所定期間が経過するまで、各ＤＢサーバ２０間で行われる通信の遅延時間を測定し、測定した遅延時間をキャプチャログ記憶部１３ａに格納する処理を繰り返すものとする。
【００３７】
また、キャプチャサーバ１０は、所定期間が経過した場合には（ステップＳ１０１肯定）、キャプチャログ記憶部１３ａに記憶された遅延時間をＤＢサーバ２０間ごとに分類し、各ＤＢサーバ２０間の遅延時間の平均および分散を算出する（ステップＳ１０２）。
【００３８】
続いて、キャプチャサーバ１０は、算出した各ＤＢサーバ２０間の遅延時間の平均および分散を用いて、各ＤＢサーバ２０間で行われる通信の遅延時間に対してそれぞれ設定されるタイマ値を決定する（ステップＳ１０３）。そして、キャプチャサーバ１０は、決定したタイマ値を各ＤＢサーバ２０に通知する（ステップＳ１０４）。
【００３９】
［第一の実施の形態の効果］
このように、第一の実施の形態に係る分散ＤＢシステム１００のキャプチャサーバ１０は、各ＤＢサーバ２０間で行われる通信の遅延時間を測定し、測定した遅延時間をキャプチャログ記憶部１３ａに格納する。そして、キャプチャサーバ１０は、キャプチャログ記憶部１３ａに記憶された遅延時間をＤＢサーバ２０間ごとに分類し、各ＤＢサーバ２０間の遅延時間の平均および分散を算出する。続いて、キャプチャサーバ１０は、算出された各ＤＢサーバ２０間の遅延時間の平均および分散を用いて、各ＤＢサーバ２０間で行われる通信の遅延時間に対してそれぞれ設定されるタイマ値を決定する。このため、タイムアウトのタイマ値を適切に設定することが可能である。
【００４０】
つまり、キャプチャサーバ１０は、各ＤＢサーバ２０間の通信経路を考慮したタイマ設計を自動的に行うことが可能である。また、キャプチャサーバ１０は、分散ＤＢシステム１００構築後の通信経路変更の影響も考慮したタイマ設計を自動的に行うことが可能である。
【００４１】
また、第一の実施の形態に係る分散ＤＢシステム１００のキャプチャサーバ１０は、決定されたタイマ値を各ＤＢサーバ２０に通知する。このため、キャプチャサーバ１０が、各ＤＢサーバ２０に対して、直接タイマ値を設定することが可能である。
【００４２】
また、第一の実施の形態に係る分散ＤＢシステム１００のキャプチャサーバ１０は、所定期間に格納された遅延時間をＤＢサーバ２０間ごとに分類し、各ＤＢサーバ２０間の遅延時間の平均および分散を算出する。このため、キャプチャサーバ１０は、所定期間に蓄積されたキャプチャログを用いて、適切な遅延時間の平均および分散を算出することが可能である。
【００４３】
［第二の実施の形態］
上述した第二の実施の形態では、所定期間に格納された遅延時間をＤＢサーバ間ごとに分類し、各ＤＢサーバ間の遅延時間の平均および分散を算出する場合を説明したが、本実施の形態は、これに限定されるものではない。例えば、所定期間に格納された遅延時間のサンプル数が少ない場合には、過去に測定した遅延時間も用いて、各ＤＢサーバ間の遅延時間の平均および分散を算出するようにしてもよい。
【００４４】
そこで、以下では、第二の実施の形態に係るキャプチャサーバ１０Ａが、所定期間に記憶部１３に格納された遅延時間のサンプル数が所定の閾値未満である場合には、過去の遅延時間を過去キャプチャログ記憶部１３ｂから読み出して、各ＤＢサーバ２０間の遅延時間の平均および分散を算出する場合を説明する。なお、第一の実施の形態に係るキャプチャサーバ１０と同様の構成や処理については説明を省略する。
【００４５】
まず、図８を用いて、第二の実施の形態に係るキャプチャサーバ１０Ａについて説明する。図８は、第二の実施の形態に係るキャプチャサーバの構成を示すブロック図である。図８に示すように、第二の実施の形態に係るキャプチャサーバ１０Ａは、図３に示した第一の実施の形態に係るキャプチャサーバ１０と比較して、読出部１２ｅ、過去キャプチャログ記憶部１３ｂを有する点が異なる。
【００４６】
キャプチャログ記憶部１３ａは、所定期間内に測定された遅延時間を含む、今回タイマ値を決定するためのキャプチャログを記憶する。これに対して、過去キャプチャログ記憶部１３ｂは、以前にタイマ値を決定するために用いられた過去のキャプチャログを記憶する。例えば、過去キャプチャログ記憶部１３ｂには、決定部１２ｃによりタイマ値が決定されるたびに、キャプチャログ記憶部１３ａに記憶されたキャプチャログが、過去のキャプチャログとして記憶されるものとする。
【００４７】
読出部１２ｅは、所定期間にキャプチャログ記憶部１３ａに格納された遅延時間のサンプル数が所定の閾値未満である場合には、所定期間よりも以前にキャプチャログ記憶部１３ａに格納された過去の遅延時間を過去キャプチャログ記憶部１３ｂから読み出す。例えば、読出部１２ｅは、各ＤＢサーバ２０間について、前回タイマ値を決定してから１２時間以内にキャプチャログ記憶部１３ａに格納された遅延時間のサンプル数が所定の閾値未満であるか否かを判定する。この結果、読出部１２ｅは、遅延時間のサンプル数が所定の閾値未満である場合には、該当するＤＢサーバ２０間の遅延情報について、過去の遅延時間を、サンプル数が所定の閾値以上となる分だけ過去キャプチャログ記憶部１３ｂから読み出す。
【００４８】
算出部１２ｂは、所定期間にキャプチャログ記憶部１３ａに格納された遅延時間と、過去の遅延時間とをＤＢサーバ２０間ごとに分類し、各ＤＢサーバ２０間の遅延時間の平均および分散を算出する。
【００４９】
ここで、図９を用いて、第二の実施の形態に係るキャプチャサーバ１０Ａによる一連のタイマ設定処理を説明する。図９は、第二の実施の形態に係るキャプチャサーバ１０Ａによる一連のタイマ設定処理を説明する図である。キャプチャサーバ１０Ａは、ＤＢサーバ２０ａとＤＢサーバ２０ｂとの間の通信を中継するネットワーク機器４０ａ（図９では図示を省略）と、ＤＢサーバ２０ａとＤＢサーバ２０ｃとの間の通信を中継するネットワーク機器４０ｂ（図９では図示を省略）とからデータを取得する。ここで、図９の例では、ＤＢサーバ２０ａとＤＢサーバ２０ｂとの間の通信トラフィックが小さいものとする。
【００５０】
そして、キャプチャサーバ１０Ａは、取得したデータからＤＢサーバ２０ａとＤＢサーバ２０ｂとの間で行われる通信の遅延時間と、ＤＢサーバ２０ａとＤＢサーバ２０ｃとの間で行われる通信の遅延時間とを測定し、キャプチャログとしてキャプチャログ記憶部１３ａに格納する。
【００５１】
そして、キャプチャサーバ１０Ａは、前回タイマ値を決定してから１２時間以内にキャプチャログ記憶部１３ａに格納された遅延時間のサンプル数が所定の閾値未満であるか否かを判定し、例えば、ＤＢサーバ２０ａとＤＢサーバ２０ｃとの間で行われた通信の遅延時間のサンプル数が少ない場合には、ＤＢサーバ２０ａとＤＢサーバ２０ｃとの間で行われた通信の遅延情報について、過去の遅延時間を、サンプル数が所定の閾値以上となる分だけ過去キャプチャログ記憶部１３ｂから読み出す。
【００５２】
その後、キャプチャサーバ１０Ａは、所定期間にキャプチャログ記憶部１３ａに格納された遅延時間と、過去の遅延時間とをＤＢサーバ２０間ごとに分類し、各ＤＢサーバ２０間の遅延時間の平均および分散を算出する。
【００５３】
そして、キャプチャサーバ１０Ａは、ＤＢ１−ＤＢ２間で行われた通信の「ＴＡＴ平均」と、ＤＢ１−ＤＢ２間で行われた通信の分散σの３倍の値である「３σ」とを加算した値を算出する。また、キャプチャサーバ１０Ａは、ＤＢ１−ＤＢ３間のタイマ値として、ＤＢ１−ＤＢ３間で行われた通信の「ＴＡＴ平均」と、ＤＢ１−ＤＢ３間で行われた通信の分散σの３倍の値である「３σ」とを加算した値を算出する。そして、キャプチャサーバ１０Ａは、算出したタイマ値を各ＤＢサーバ２０に通知する。
【００５４】
次に、図１０を用いて、第二の実施の形態に係るキャプチャサーバによる処理手順の例を説明する。図１０は、第二の実施の形態に係るキャプチャサーバによる処理を説明するフローチャートである。
【００５５】
図１０に示すように、キャプチャサーバ１０Ａは、所定期間（例えば、１２時間）が経過したか否かを判定する（ステップＳ２０１）。なお、ここで、所定期間が経過したとは、例えば、前回タイマ値を決定してから１２時間が経過したことを意味する。ここで、キャプチャサーバ１０Ａは、所定期間が経過していない場合には（ステップＳ２０１否定）、所定期間が経過するまで、各ＤＢサーバ２０間で行われる通信の遅延時間を測定し、測定した遅延時間をキャプチャログ記憶部１３ａに格納する処理を繰り返すものとする。
【００５６】
また、キャプチャサーバ１０Ａは、所定期間が経過した場合には（ステップＳ２０１肯定）、前回タイマ値を決定してから１２時間以内にキャプチャログ記憶部１３ａに格納された遅延時間のサンプル数が所定の閾値未満であるか否かを判定する（ステップＳ２０２）。
【００５７】
この結果、キャプチャサーバ１０Ａは、サンプル数が所定の閾値以上である場合には（ステップＳ２０２否定）、第一の実施の形態と同様に、各ＤＢサーバ２０間の遅延時間の平均および分散を算出し（ステップＳ２０４）、各ＤＢサーバ２０間の遅延時間の平均および分散を用いて、各ＤＢサーバ２０間で行われる通信の遅延時間に対してそれぞれ設定されるタイマ値を決定し（ステップＳ２０５）、決定されたタイマ値を各ＤＢサーバ２０に通知する（ステップＳ２０６）。
【００５８】
また、キャプチャサーバ１０Ａは、サンプル数が所定の閾値未満である場合には（ステップＳ２０２肯定）、所定期間よりも以前にキャプチャログ記憶部１３ａに格納された過去の遅延時間を過去キャプチャログ記憶部１３ｂから読み出す（ステップＳ２０３）。具体的には、キャプチャサーバ１０Ａは、遅延時間のサンプル数が所定の閾値未満である場合には、該当するＤＢサーバ２０間の遅延情報について、過去の遅延時間を、サンプル数が所定の閾値以上となる分だけ過去キャプチャログ記憶部１３ｂから読み出す。
【００５９】
そして、キャプチャサーバ１０Ａは、所定期間にキャプチャログ記憶部１３ａに格納された遅延時間と、過去の遅延時間とをＤＢサーバ２０間ごとに分類し、各ＤＢサーバ２０間の遅延時間の平均および分散を算出する（ステップＳ２０４）。続いて、キャプチャサーバ１０Ａは、算出した各ＤＢサーバ２０間の遅延時間の平均および分散を用いて、各ＤＢサーバ２０間で行われる通信の遅延時間に対してそれぞれ設定されるタイマ値を決定する（ステップＳ２０５）。そして、キャプチャサーバ１０Ａは、決定したタイマ値を各ＤＢサーバ２０に通知する（ステップＳ２０６）。
【００６０】
［第二の実施の形態の効果］
このように、第二の実施の形態に係るキャプチャサーバ１０Ａは、所定期間にキャプチャログ記憶部１３ａに格納された遅延時間のサンプル数が所定の閾値未満である場合には、所定期間よりも以前にキャプチャログ記憶部１３ａに格納された過去の遅延時間を過去キャプチャログ記憶部１３ｂから読み出す。そして、キャプチャサーバ１０Ａは、所定期間にキャプチャログ記憶部１３ａに格納された遅延時間と、過去の遅延時間とをＤＢサーバ２０間ごとに分類し、各ＤＢサーバ２０間の遅延時間の平均および分散を算出する。このため、キャプチャサーバ１０Ａは、ＤＢサーバ２０間の通信量が少ない場合であっても、過去のキャプチャログを利用することで、適切なタイマ値を各ＤＢサーバ２０に設定することが可能である。
【００６１】
［システム構成等］
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。さらに、各装置にて行なわれる各処理機能は、その全部または任意の一部が、ＣＰＵおよび当該ＣＰＵにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
【００６２】
また、本実施の形態において説明した各処理のうち、自動的におこなわれるものとして説明した処理の全部または一部を手動的におこなうこともでき、あるいは、手動的におこなわれるものとして説明した処理の全部または一部を公知の方法で自動的におこなうこともできる。この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
【００６３】
［プログラム］
図１１は、タイマ設定プログラムを実行するコンピュータを示す図である。コンピュータ１０００は、例えば、メモリ１０１０、ＣＰＵ（Central  Processing  Unit）１０２０を有する。また、コンピュータ１０００は、ハードディスクドライブインタフェース１０３０、ディスクドライブインタフェース１０４０、シリアルポートインタフェース１０５０、ビデオアダプタ１０６０、ネットワークインタフェース１０７０を有する。これらの各部は、バス１０８０によって接続される。
【００６４】
メモリ１０１０は、ＲＯＭ（Read  Only  Memory）１０１１及びＲＡＭ１０１２を含む。ＲＯＭ１０１１は、例えば、ＢＩＯＳ（Basic  Input  Output  System）等のブートプログラムを記憶する。ハードディスクドライブインタフェース１０３０は、ハードディスクドライブ１０９０に接続される。ディスクドライブインタフェース１０４０は、ディスクドライブ１１００に接続される。例えば磁気ディスクや光ディスク等の着脱可能な記憶媒体が、ディスクドライブ１１００に挿入される。シリアルポートインタフェース１０５０は、例えばマウス１０５１、キーボード１０５２に接続される。ビデオアダプタ１０６０は、例えばディスプレイ１０６１に接続される。
【００６５】
ハードディスクドライブ１０９０は、例えば、ＯＳ１０９１、アプリケーションプログラム１０９２、プログラムモジュール１０９３、プログラムデータ１０９４を記憶する。すなわち、キャプチャサーバ１０、１０Ａの各処理を規定するプログラムは、コンピュータにより実行可能なコードが記述されたプログラムモジュール１０９３として実装される。プログラムモジュール１０９３は、例えばハードディスクドライブ１０９０に記憶される。例えば、装置における機能構成と同様の処理を実行するためのプログラムモジュール１０９３が、ハードディスクドライブ１０９０に記憶される。なお、ハードディスクドライブ１０９０は、ＳＳＤ（Solid  State  Drive）により代替されてもよい。
【００６６】
また、上述した実施の形態の処理で用いられる設定データは、プログラムデータ１０９４として、例えばメモリ１０１０やハードディスクドライブ１０９０に記憶される。そして、ＣＰＵ１０２０が、メモリ１０１０やハードディスクドライブ１０９０に記憶されたプログラムモジュール１０９３やプログラムデータ１０９４を必要に応じてＲＡＭ１０１２に読み出して実行する。
【００６７】
なお、プログラムモジュール１０９３やプログラムデータ１０９４は、ハードディスクドライブ１０９０に記憶される場合に限らず、例えば着脱可能な記憶媒体に記憶され、ディスクドライブ１１００等を介してＣＰＵ１０２０によって読み出されてもよい。あるいは、プログラムモジュール１０９３及びプログラムデータ１０９４は、ネットワーク（ＬＡＮ（Local  Area  Network）、ＷＡＮ（Wide  Area  Network）等）を介して接続された他のコンピュータに記憶されてもよい。そして、プログラムモジュール１０９３及びプログラムデータ１０９４は、他のコンピュータから、ネットワークインタフェース１０７０を介してＣＰＵ１０２０によって読み出されてもよい。
【符号の説明】
【００６８】
１０、１０Ａ  キャプチャサーバ
１１  通信処理部
１２  制御部
１２ａ  測定部
１２ｂ  算出部
１２ｃ  決定部
１２ｄ  通知部
１２ｅ  読出部
１３  記憶部
１３ａ  キャプチャログ記憶部
１３ｂ  過去キャプチャログ記憶部
２０ａ、２０ｂ、２０ｃ  ＤＢサーバ
３０  クライアントサーバ
１００  分散ＤＢシステム
【図１】
2018142807.tif 000003
【図２】
2018142807.tif 000004
【図３】
2018142807.tif 000005
【図４】
2018142807.tif 000006
【図５】
2018142807.tif 000007
【図６】
2018142807.tif 000008
【図７】
2018142807.tif 000009
【図８】
2018142807.tif 000010
【図９】
2018142807.tif 000011
【図１０】
2018142807.tif 000012
【図１１】
2018142807.tif 000013