(57)【要約】【課題】データの損失を生じることなく、かつシステム全体の負荷を最適化することができるデータベース管理システムおよびその書き込み方式管理方法を提供する。【解決手段】本実施形態に係るデータベース管理システムは、マスター側データベースを具備するマスターサーバと、スレーブ側データベースを具備するスレーブサーバと、を備えるデータベース管理システムであって、マスター側データベースにデータを書き込む処理時間と書込命令に対する応答時間とを算出する処理時間算出処理部と、処理時間と応答時間から書き込み方式ごとに応答処理時間を算出し、システム全体の負荷を書き込み方式ごとに推定する負荷推定部と、応答処理時間が第１の閾値時間未満の場合は、完全同期の書き込み方式のままデータを書き込む一方、応答処理時間が第１の閾値時間以上の場合には、半同期の書き込み方式でデータを書き込むように切り替える書込方式切替部と、を備える。【選択図】  図２
2014222451.tif 000002
【特許請求の範囲】
【請求項１】
マスター側データベースを具備するマスターサーバと、スレーブ側データベースを具備するスレーブサーバと、を備えるデータベース管理システムであって、
前記マスター側データベースにデータを書き込む書込命令を受け付けて前記マスター側データベースに前記データを書き込む処理時間と、前記マスターサーバから前記スレーブサーバに前記データの書込命令を行ってその書込命令に対する応答時間とを算出する処理時間算出処理部と、
前記処理時間と前記応答時間とに基づいて、書き込み方式ごとに応答処理時間を算出し、前記マスターサーバと前記スレーブサーバとを含むシステム全体の負荷を書き込み方式ごとに推定する負荷推定部と、
完全同期の書き込み方式のときにおいて、前記応答処理時間が予め設定された第１の閾値時間未満の場合は、前記完全同期の書き込み方式のまま前記スレーブ側データベースにデータを書き込む一方、前記応答処理時間が前記第１の閾値時間以上の場合には、半同期の書き込み方式で前記スレーブ側データベースにデータを書き込むように切り替える書込方式切替部と、
を備えるデータベース管理システム。
【請求項２】
前記書込方式切替部は、
前記第１の閾値時間よりも短い時間が設定された第２の閾値時間を有し、
前記半同期の書き込み方式に切り替えられた後、前記システム全体の負荷に基づいて、前記応答処理時間が前記第２の閾値時間未満の場合には、前記半同期の書き込み方式から前記完全同期の書き込み方式に切り替える
請求項１に記載のデータベース管理システム。
【請求項３】
前記第１の閾値時間は、前記マスター側データベースにデータの書込みを保証するために設けられた固定された閾値であり、
前記第２の閾値時間は、前記応答処理時間から推定される前記システム全体の負荷に基づいて、動的に変動して調整された閾値である
請求項２に記載のデータベース管理システム。
【請求項４】
前記書込方式切替部は、
前記完全同期の書き込み方式に切り替えた後、前記システム全体の負荷に基づいて、所定の時間内に前記完全同期の書き込み方式から前記半同期の書き込み方式に書き込み方式を切り替えた場合は、前記第２の閾値時間から第１の調整時間だけ引き下げた時間に前記第２の閾値時間を更新する
請求項２または３に記載のデータベース管理システム。
【請求項５】
前記書込方式切替部は、
前記半同期の書き込み方式に切り替えた後、前記システム全体の負荷に基づいて、前記半同期の書き込み方式から前記完全同期の書き込み方式に書き込み方式を切り替えた場合は、前記第２の閾値時間に第２の調整時間を加算した時間に前記第２の閾値時間を更新する
請求項２から４のいずれか１項に記載のデータベース管理システム。
【請求項６】
前記書込方式切替部は、
前記完全同期の書き込み方式に切り替えた後、前記システム全体の負荷に基づいて、所定の時間内に前記完全同期の書き込み方式から前記半同期の書き込み方式に書き込み方式を切り替えた場合は、前記第２の閾値時間から第１の調整時間だけ引き下げた時間に前記第２の閾値時間を更新する一方、
前記半同期の書き込み方式に切り替えた後、前記システム全体の負荷に基づいて、前記半同期の書き込み方式から前記完全同期の書き込み方式に書き込み方式を切り替えた場合は、前記第２の閾値時間に第２の調整時間を加算した時間に前記第２の閾値時間を更新し、
前記第１の調整時間には、前記第２の調整時間よりも大きい調整時間を設定する
請求項２または３に記載のデータベース管理システム。
【請求項７】
前記マスター側データベースに書き込むデータに優先度を割り当てて、
前記書込方式切替部は、
割り当てられたその優先度に応じて、優先度の高いデータは、前記完全同期の書き込み方式が選択されるように、優先度の低いデータよりも前記第２の閾値時間を高く設定する
請求項２または３に記載のデータベース管理システム。
【請求項８】
前記書込方式切替部は、
前記マスター側データベースに書き込むデータのうち指定された所定のデータについては、前記完全同期の書き込み方式に固定する
請求項１から７のいずれか１項に記載のデータベース管理システム。
【請求項９】
前記マスターサーバから前記スレーブサーバに非同期のタイミングでデータを書き込む要求を行う非同期の書き込み方式をさらに備え、
前記書込方式切替部は、
前記半完全同期の書き込み方式のときにおいて、前記応答処理時間が前記第１の閾値時間未満の場合は、前記半同期の書き込み方式のまま前記スレーブ側データベースにデータを書き込む一方、前記応答処理時間が前記第１の閾値時間以上の場合には、前記非同期の書き込み方式で前記スレーブ側データベースにデータを書き込むように切り替える
請求項１に記載のデータベース管理システム。
【請求項１０】
前記書込方式切替部は、
前記第１の閾値時間よりも短い時間が設定された第３の閾値時間を有し、
前記非同期の書き込み方式に切り替えられた後、前記システム全体の負荷に基づいて、前記応答処理時間が前記第３の閾値時間未満の場合には、前記非同期の書き込み方式から前記半同期の書き込み方式に切り替える
請求項９に記載のデータベース管理システム。
【請求項１１】
前記第１の閾値時間は、前記システム全体において前記データの書込みを保証するために設けられた固定された閾値であり、
前記第３の閾値時間は、前記応答処理時間から推定される前記システム全体の負荷に基づいて、動的に変動して調整された閾値である
請求項１０に記載のデータベース管理システム。
【請求項１２】
前記書込方式切替部は、
前記半同期の書き込み方式に切り替えた後、前記システム全体の負荷に基づいて、所定の時間内に前記半同期の書き込み方式から前記非同期の書き込み方式に書き込み方式を切り替えた場合は、前記第３の閾値時間から第３の調整時間だけ引き下げた時間に前記第３の閾値時間を更新する
請求項１０または１１に記載のデータベース管理システム。
【請求項１３】
前記書込方式切替部は、
前記非同期の書き込み方式に切り替えた後、前記システム全体の負荷に基づいて、前記非同期の書き込み方式から前記半同期の書き込み方式に書き込み方式を切り替えた場合は、前記第３の閾値時間に第４の調整時間を加算した時間に前記第３の閾値時間を更新する
請求項１０から１２のいずれか１項に記載のデータベース管理システム。
【請求項１４】
前記書込方式切替部は、
前記半同期の書き込み方式に切り替えた後、前記システム全体の負荷に基づいて、所定の時間内に前記半同期の書き込み方式から前記非同期の書き込み方式に書き込み方式を切り替えた場合は、前記第３の閾値時間から第３の調整時間だけ引き下げた時間に前記第３の閾値時間を更新する一方、
前記非同期の書き込み方式に切り替えた後、前記システム全体の負荷に基づいて、前記非同期の書き込み方式から前記半同期の書き込み方式に書き込み方式を切り替えた場合は、前記第３の閾値時間に第４の調整時間を加算した時間に前記第３の閾値時間を更新し、
前記第３の調整時間には、前記第４の調整時間よりも大きい調整時間を設定する
請求項１０または１１に記載のデータベース管理システム。
【請求項１５】
マスター側データベースを具備するマスターサーバと、スレーブ側データベースを具備するスレーブサーバと、を備えるデータベース管理システムにおける書き込み方式管理方法であって、
前記マスター側データベースにデータを書き込む書込命令を受け付けて前記マスター側データベースに前記データを書き込む処理時間と、前記マスターサーバから前記スレーブサーバに前記データの書込命令を行ってその書込命令に対する応答時間とを算出する処理時間算出処理ステップと、
前記処理時間と前記応答時間とに基づいて、書き込み方式ごとに応答処理時間を算出し、前記マスターサーバと前記スレーブサーバとを含むシステム全体の負荷を書き込み方式ごとに推定する負荷推定ステップと、
完全同期の書き込み方式のときにおいて、前記応答処理時間が予め設定された第１の閾値時間未満の場合は、前記完全同期の書き込み方式のまま前記スレーブ側データベースにデータを書き込む一方、前記応答処理時間が前記第１の閾値時間以上の場合は、半同期の書き込み方式で前記スレーブ側データベースにデータを書き込むように切り替える書込方式切替ステップと、
を含むデータベース管理システムにおける書き込み方式管理方法。
【請求項１６】
クライアントと、マスター側データベースを具備するマスターサーバと、スレーブ側データベースを具備するスレーブサーバとをネットワークで接続し、少なくともた完全同期のレプリケーション方式と半同期のレプリケーション方式とを選択的に実行可能なデータベース管理システムにおいて、
前記マスターサーバは、
前記クライアントからの書込命令を受け付けて前記マスター側データベースにデータを書き込むまでの処理時間と、前記スレーブサーバにレプリケーションを指示してからレプリケーションが完了するまでの応答時間とにより前記システム全体の負荷を推定する推定部と、
前記完全同期のレプリケーション方式を実行中において、推定した前記システム全体の負荷が増大した場合には、前記半同期のレプリケーション方式に変更し、その半同期のレプリケーション方式を実行中において、推定した前記システム全体の負荷が減少した場合には、前記完全同期のレプリケーション方式に変更する切替部と、
を備えるデータベース管理システム。
【請求項１７】
前記推定部は、
前記処理時間と前記応答時間との和が、予め設定された第１の閾値を越えた場合には、前記半同期のレプリケーション方式に切り替えるように前記切替部を制御する
請求項１６記載のデータベース管理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本実施形態は、データベース管理システムおよびその書き込み方式管理方法に関する。
【背景技術】
【０００２】
近年、データの格納や操作、検索を実現する情報管理技術として、データベースが利用されている。データベースには、さまざまなデータを管理し、常にユーザが快適に利用できるように、データベースを管理するデータベース管理システムが設けられている。
【０００３】
データベースには、主となるデータベースを示すマスター側のデータベース（以下、これをマスターデータベースともいう。）と、このマスターデータベースと全く同じ内容のデータベース（以下、これをレプリカデータベースという。）がある。レプリカデータベースは、マスターデータベースの複製（レプリカ）であり、マスターデータベースとデータの整合性を維持することが求められている。
【０００４】
ここで、この種のデータベース管理システムに関するものとして、マスターデータベースのレコードについて単位時間当たりの更新回数の頻度が上限値を上回っているか否かを判別し、更新回数の頻度が上限値を上回っている場合には、レプリカデータベースを更新するために差分データをシステムに送信するデータベースが開示されている（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００６−３１８０２０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、マスターデータベースの更新回数のみを監視していても、ネットワークの負荷やレプリカデータベースに生じる負荷が考慮されていないため、レプリカデータベースにデータが書き込まれるタイミングは、マスターデータベースと同期が取れていなかった。この場合、レプリカデータベースは、マスターサーバから送信されるタイミングによっては送信された差分データを損失する可能性があった。
【０００７】
例えば、レプリカデータベースにデータを書き込むタイミングがマスターデータベースと完全に同期が取れている場合には、レプリカデータベースは、マスターサーバから送信される差分データを損失しないと考えられる。
【０００８】
しかしながら、ネットワークを他のサーバや他のレプリカデータベースと共有することによりネットワーク自体が高負荷となる場合や、１つのレプリカデータベースに想定外の負荷が繰り返しかかる場合には、完全な同期が取れていないことによってデータの損失を生じることがあった。
【０００９】
そこで、データの損失を生じることなく、かつシステム全体の負荷を最適化することができるデータベース管理システムおよびデータベース管理システムにおける書き込み方式管理方法が要望されている。
【課題を解決するための手段】
【００１０】
本実施の形態に係るデータベース管理システムは、マスター側データベースを具備するマスターサーバと、スレーブ側データベースを具備するスレーブサーバと、を備えるデータベース管理システムであって、前記マスター側データベースにデータを書き込む書込命令を受け付けて前記マスター側データベースに前記データを書き込む処理時間と、前記マスターサーバから前記スレーブサーバに前記データの書込命令を行ってその書込命令に対する応答時間とを算出する処理時間算出処理部と、前記処理時間と前記応答時間とに基づいて、書き込み方式ごとに応答処理時間を算出し、前記マスターサーバと前記スレーブサーバとを含むシステム全体の負荷を書き込み方式ごとに推定する負荷推定部と、完全同期の書き込み方式のときにおいて、前記応答処理時間が予め設定された第１の閾値時間未満の場合は、前記完全同期の書き込み方式のまま前記スレーブ側データベースにデータを書き込む一方、前記応答処理時間が前記第１の閾値時間以上の場合には、半同期の書き込み方式で前記スレーブ側データベースにデータを書き込むように切り替える書込方式切替部と、を備える。
【図面の簡単な説明】
【００１１】
【図１】本実施形態に係るデータベース管理システムの一例を示す概略構成図。
【図２】本実施形態にかかるデータベース管理システムの機能を示した機能ブロック図。
【図３】マスターサーバが完全同期の書き込み方式でスレーブデータベースにデータを書き込むシーケンスを示したシーケンス図。
【図４】マスターサーバが半同期の書き込み方式でスレーブデータベースにデータを書き込むシーケンスを示したシーケンス図。
【図５】マスターサーバが非同期の書き込み方式でスレーブデータベースにデータを書き込むシーケンスを示したシーケンス図。
【図６】マスターサーバの書込方式切替部が、データベース管理システムの負荷により、書き込み方式を切り替えることを示した説明図。
【図７】半同期の書き込み方式から完全同期の書き込み方式に書き込み方式を切り替える場合を示した説明図。
【図８】データベース管理システムの負荷に応じて、３種類の書き込み方式から最適な書き込み方式に切り替える切替方法を示した説明図。
【図９】本実施形態に係るマスターサーバのハードウエアの構成を示したハードウエアブロック図。
【図１０】本実施形態に係るスレーブサーバのハードウエアの構成を示したハードウエアブロック図。
【図１１】データベース管理システムの方式切替判断部が書き込み方式を切り替える書込方式切替処理を示したフローチャート。
【図１２】データベース管理システムの方式切替判断部が、書き込み方式を非同期の書き込み方式か半同期の書き込み方式に切り替える書込方式切替処理を示したフローチャート。
【図１３】スレーブサーバの方式変更要求受付部が、マスターサーバの書込方式切替部から送信された書込方式切替要求に応じて書込命令受信部に設定されている書き込み方式を切り替える書込方式切替処理を示したフローチャート。
【発明を実施するための形態】
【００１２】
本実施形態に係るデータベース管理システムは、マスター側のデータベース（以下、これをマスターデータベースともいう。）を具備するマスターサーバと、スレーブ側のデータベース（以下、これをスレーブデータベースともいう。）を具備するスレーブサーバと、を備えている。
【００１３】
また、本実施形態に係るデータベース管理システムは、マスターデータベースにデータを書き込む書込命令を受け付けてマスターデータベースにデータを書き込む処理時間と、マスターサーバからスレーブサーバにデータの書込命令を行って、その書込命令に対する応答時間とを算出する処理時間算出処理部と、その算出された処理時間と応答時間とに基づいて、書き込み方式ごとに応答処理時間を算出し、マスターサーバとスレーブサーバとを含むシステム全体の負荷を書き込み方式ごとに推定する負荷推定部と、完全同期の書き込み方式のときにおいて、応答処理時間が予め設定された第１の閾値時間未満の場合は、完全同期の書き込み方式のままスレーブデータベースにデータを書き込む一方、応答処理時間が第１の閾値時間以上の場合には、半同期の書き込み方式でスレーブデータベースにデータを書き込むように切り替える書込方式切替部と、を備えている。
【００１４】
これにより、本実施形態に係るデータベース管理システムは、システム全体の負荷の状況に応じて、完全同期の書き込み方式または半同期の書き込み方式に書き込み方式を切り替えてスレーブデータベースにデータを書き込むことができるようになっている。
【００１５】
図１は、本実施形態に係るデータベース管理システム５００の一例を示す概略構成図である。
【００１６】
図１に示すように、データベース管理システム５００は、クライアント端末１００、マスターサーバ２００、スレーブサーバ３００およびネットワーク４００などを備えて構成されている。
【００１７】
データベース管理システム５００は、例えば、列車の座席予約システム、銀行の勘定系システム（一般的には、経理会計業務システム、特に銀行の基幹系システム）などに利用される。列車の座席予約システムでは、１つの列車における利用者の座席予約の情報以外にも列車の運行情報などを管理することができるようになっている。
【００１８】
クライアント端末１００は、例えば、列車の座席予約を行うためにユーザが入力を行うクライアント端末である。
【００１９】
マスターサーバ２００は、例えば、記憶領域や記憶媒体から構成されるマスターデータベースに記憶されている列車の座席の予約状況を管理する管理サーバである。
【００２０】
スレーブサーバ３００は、例えば、マスターデータベースに記憶されている列車の予約状況の複製（レプリカ）の作成とデータの管理に機能を絞った管理サーバである。なお、予約状況の複製の作成とデータを管理する機能のことをレプリケーション（replication）ともいう。
【００２１】
ネットワーク４００は、クライアント端末１００、マスターサーバ２００およびスレーブサーバ３００を、相互に接続するためのネットワークである。
【００２２】
なお、クライアント端末１００、マスターサーバ２００およびスレーブサーバ３００は、例えば、情報処理を行う情報処理装置やパーソナルコンピュータから構成されている。
【００２３】
図２は、本実施形態にかかるデータベース管理システム５００の機能を示した機能ブロック図である。
【００２４】
クライアント端末１００は、アプリケーションの機能により、クライアント端末１００からマスターサーバ２００のマスターデータベース２１５にデータを書き込む依頼を行う。例えば、クライアント端末１００は、ＳＱＬ（Structured Query Language）を用いて列車の座席の予約をマスターデータベースに行うようになっている。
【００２５】
マスターサーバ２００は、書込実行部２１０、マスターデータベース２１５、レプリケーション実行部２２０および方式切替判断部２５５などを備えて構成されている。
【００２６】
書込実行部２１０は、書込命令受付部２１２と書込処理部２１４とを備えて構成されている。書込命令受付部２１２は、クライアント端末１００から送信された書込命令を受け付ける受付機能を備えている。書込処理部２１４は、書込命令受付部２１２において受け付けた書込命令に基づいて、マスターデータベース２１５にデータを書き込むようになっている。また、書込実行部２１０は、クライアント端末１００から書込命令を受け付けた時間及びマスターデータベース２１５に書き込みが終了した時間と、マスターサーバ２００からスレーブサーバ３００にデータの書込命令を行ってその書込命令に対する応答時間に関する情報を記憶する機能を備えている。
【００２７】
マスターデータベース２１５は、マスターサーバ２００が備えるマスターデータベースである。
【００２８】
レプリケーション実行部２２０は、書込命令送信部２２２と応答受信部２２４とを備えて構成されている。
【００２９】
書込命令送信部２２２は、書込実行部２１０の書込命令受付部２１２から書込命令を取得すると、現在設定されている書き込み方式でスレーブサーバ３００に書込命令を送信する。書き込み方式には、完全同期の書き込み方式および半同期の書き込み方式が該当し、さらに非同期の書き込み方式を備えるようにしてもよい。
【００３０】
例えば、マスターデータベース２１５に書き込み処理が終了した後、書込命令送信部２２２は、完全同期の書き込み方式および半同期の書き込み方式の場合は、スレーブサーバ３００に書込命令を送信する一方、非同期の書き込み方式の場合には、所定のタイミングで書込命令を送信する。
【００３１】
応答受信部２２４は、スレーブサーバ３００から書込命令によるデータの書込処理が終了した場合にその書込命令の結果を受信するようになっている。また、応答受信部２２４は、書込命令の結果をクライアント端末１００に送信するため、書込処理部２１４に書込命令の結果を送信し、書込命令受付部２１２を介してクライアント端末１００に書込命令の結果を送信するようになっている。
【００３２】
方式切替判断部２５５は、処理時間算出処理部２３０、負荷推定部２４０および書込方式切替部２５０とを備えて構成されている。
【００３３】
処理時間算出処理部２３０は、書込実行部２１０に記憶されているクライアント端末１００から書込命令を受け付けた時間及びマスターデータベース２１５に書き込みが終了した時間からマスターデータベース２１５の書き込みに要した処理時間を算出する。また、処理時間算出処理部２３０は、書込実行部２１０に記憶されているマスターサーバ２００からスレーブサーバ３００にデータの書込命令を行ってその書込命令に対する応答時間に関する情報から、書込命令に対する応答時間を算出する機能を有している。
【００３４】
負荷推定部２４０は、処理時間算出処理部２３０で算出した処理時間と応答時間とに基づいて、書き込み方式ごとに応答処理時間を算出し、マスターサーバ２００とスレーブサーバ３００とを含むデータベース管理システム５００全体（システム全体）の負荷を書き込み方式ごとに推定する機能を有している。また、負荷推定部２４０は、このシステムの負荷をシステム負荷指標値とすることができる。
【００３５】
書込方式切替部２５０は、完全同期の書き込み方式のときにおいて、応答処理時間が予め設定された第１の閾値時間未満の場合は、完全同期の書き込み方式のままスレーブサーバ３００のデータベース３１５にデータを書き込む一方、応答処理時間が第１の閾値時間以上の場合には、半同期の書き込み方式でスレーブサーバ３００のデータベース３１５にデータを書き込むように切り替える機能を有している。
【００３６】
本実施形態では、方式切替判断部２５５は、負荷推定部２４０で推定したデータベース管理システム５００全体の負荷（すなわち、システム負荷指標値である。）に基づいて、書込方式切替部２５０で書き込み方式を決定し、レプリケーション実行部２２０と、スレーブサーバ３００の書込命令受信部３１０の書込み方式を設定するようになっている。
【００３７】
なお、本実施形態は、これに限定されるものではなく、例えば、マスターサーバ２００からスレーブサーバ３００に非同期のタイミングでデータを書き込む要求を行う非同期の書き込み方式をさらに備えるようにしてもよい。
【００３８】
この場合、方式切替判断部２５５は、半完全同期の書き込み方式のときにおいて、応答処理時間が第１の閾値時間未満の場合は、半同期の書き込み方式のままスレーブデータベース３１５にデータを書き込む一方、応答処理時間が第１の閾値時間以上の場合には、非同期の書き込み方式でスレーブデータベース３１５にデータを書き込むように切り替える。
【００３９】
スレーブサーバ３００は、書込命令受信部３１０、スレーブデータベース３１５、応答返信部３２０および方式変更要求受付部３３０を備えて構成されている。
【００４０】
書込命令受信部３１０は、マスターサーバ２００のレプリケーション実行部２２０から書込命令を受信する機能を有している。書込命令受信部３１０は、書込命令を受信すると、スレーブデータベース３１５にデータを書き込むようになっている。また、書込命令受信部３１０は、スレーブデータベース３１５にデータを書き込むと、その書込結果を応答返信部３２０に送出する。
【００４１】
応答返信部３２０は、書込命令受信部３１０から書込結果を取得すると、マスターサーバ２００の応答受信部２２４にその書込結果を送信する。この場合、スレーブサーバ３００は、マスターサーバ２００の書込実行部２１０とレプリケーション実行部２２０を介して、クライアント端末１００に書込結果を送信する。
【００４２】
方式変更要求受付部３３０は、マスターサーバ２００の書込方式切替部２５０から書き込み方式を切り替える切替変更指示を受け付けるようになっている。方式変更要求受付部３３０は、書込方式切替部２５０から切替変更指示を受け付けると、その切替変更指示に基づいて書込命令受信部３１０に切替変更指示を出し、書込命令受信部３１０の書き込み方式を変更させる機能を有している。
【００４３】
次に、データベース管理システム５００において、マスターサーバ２００がスレーブサーバ３００のスレーブデータベース３１５にデータを書き込む書き込み方式について説明する。
【００４４】
図３は、マスターサーバ２００が完全同期の書き込み方式（以下、これを完全同期式ともいう。）でスレーブデータベース３１５にデータを書き込むシーケンスを示したシーケンス図である。図３において、Ｓに数字を付した符号は、シーケンス図の各ステップを示している。
【００４５】
まず、クライアント端末１００は、ネットワーク４００を介してマスターサーバ２００に書込命令を送信する（ステップＳ００１）。
【００４６】
マスターサーバ２００は、書込実行部２１０において書込命令を受け付けると、マスターデータベース２１５にデータを書き込む書込処理を実行する（ステップＳ００３）。マスターサーバ２００は、マスターデータベース２１５にデータの書込処理が完了すると、その書き込みが完了した時間情報を書込実行部２１０において記憶し、レプリケーション実行部２２０がスレーブサーバ３００に書込命令を送信する（ステップＳ００５）。
【００４７】
スレーブサーバ３００は、書込命令受信部３１０において書込命令を受信し、スレーブデータベース３１５にデータを書き込む（ステップＳ００７）。
【００４８】
スレーブサーバ３００は、書込命令受信部３１０がスレーブデータベース３１５に書込処理を行った後、応答返信部３２０から書込結果を（例えば、書込成功）マスターサーバ２００に返信する（ステップＳ００９）。
【００４９】
マスターサーバ２００は、スレーブサーバ３００から受信した書込結果（例えば、書込成功）を、レプリケーション実行部２２０と書込実行部２１０を介してクライアント端末１００に送信する（ステップＳ０１１）。マスターサーバ２００は、レプリケーション実行部２２０から書込命令を送信し、応答返信部３２０から応答を受信するまでの時間情報を書込命令に対する応答時間に関する情報として書込実行部２１０において記憶する。
【００５０】
このように、マスターサーバ２００は、マスターデータベース２１５にデータを書き込んだ後、スレーブサーバ３００のスレーブデータベース３１５にデータを書き込み、スレーブサーバ３００のスレーブデータベース３１５においてデータの書込処理が成功すると、クライアント端末１００に応答を送信するようになっている。
【００５１】
なお、データベース管理システム５００の初期設定は、完全同期の書き込み方式が設定されているものとする。次に、半同期の書き込み方式について説明する。
【００５２】
図４は、マスターサーバ２００が半同期の書き込み方式（以下、これを半同期式ともいう。）でスレーブデータベース３１５にデータを書き込むシーケンスを示したシーケンス図である。図４において、Ｓに数字を付した符号は、シーケンス図の各ステップを示している。なお、図３と同じステップの箇所には同一の符号を付し、適宜、説明を省略する。
【００５３】
図４に示す半同期の書き込み方式による書込処理が、図３に示す完全同期の書き込み方式による書込処理と異なる点は、マスターサーバ２００においてステップＳ００３の書込処理が完了した後の処理が異なる。
【００５４】
具体的には、マスターサーバ２００は、レプリケーション実行部２２０からスレーブサーバ３００に書込命令を送信するとともに（ステップＳ００５）、クライアント端末１００に書込結果（例えば、書込成功）を送信する送信処理を行う点である（ステップＳ１０１）。
【００５５】
この場合、マスターサーバ２００は、スレーブサーバ３００からの書込結果（いわゆる応答）を待たないでクライアント端末１００に書込結果を送信するので（ステップＳ１０１）、完全同期の書き込み方式よりも高速にクライアント端末１００に書込結果を送信することができる。また、ステップＳ００５のタイミングとステップＳ１０１のタイミングは、同時であってもよい。
【００５６】
また、本実施形態では、完全同期の書き込み方式と半同期の書き込み方式の他に非同期の書き込み方式（以下、これを非同期式ともいう。）をさらに備えることができる。次に、非同期の書き込み方式について説明する。
【００５７】
図５は、マスターサーバ２００が非同期の書き込み方式でスレーブデータベース３１５にデータを書き込むシーケンスを示したシーケンス図である。図５において、Ｓに数字を付した符号は、シーケンス図の各ステップを示している。なお、図３と同じステップの箇所には同一の符号を付し、適宜、説明を省略する。
【００５８】
図５に示す非同期の書き込み方式による書込処理が、図３に示す完全同期の書き込み方式による書込処理と異なる点は、マスターサーバ２００においてステップＳ００３の書込処理が完了した後、マスターサーバ２００は、スレーブサーバ３００に書込命令をすぐには送信せず、一定時間の経過後または一定量の書込命令が一定量蓄積されるまで待機した後、まとめて書込命令を送信する点である。
【００５９】
具体的には、マスターサーバ２００は、書込命令を受信して書込処理が完了すると（ステップＳ００３）、スレーブサーバ３００に書込命令を出さずクライアント端末１００に書込結果（例えば、書込成功）を送信する（ステップＳ２０１）。
【００６０】
また、次にクライアント端末１００がマスターサーバ２００に書込命令を送信すると（ステップＳ０２１）、マスターサーバ２００は、マスターデータベース２１５に書込処理を行い（ステップＳ０２３）、書込処理が終了する度にクライアント端末１００に書込結果（例えば、書込成功）を送信する（ステップＳ２２１）。
【００６１】
その後、マスターサーバ２００は、一定時間の経過後または一定量の書込命令が蓄積された後に、スレーブサーバ３００に書込命令をまとめて送信する（ステップＳ２０５）。スレーブサーバ３００は、スレーブデータベース３１５にデータを書き込む書込処理を一括して行った後（ステップＳ２０７）、マスターサーバ２００に書込結果（例えば、書込成功）を送信する（ステップＳ２０９）。
【００６２】
非同期の書き込み方式の場合は、マスターサーバ２００は、クライアント端末１００に早期に応答を送信する一方、スレーブサーバ３００に書込命令を送信するタイミングを所定のタイミングに設定したり一定量の書込命令をまとめて送信する。また、これに限定されるものではなく、例えば、データベース管理システム５００のシステムの負荷が軽いとき、すなわち応答処理時間が短いときに書込命令を送信するように設定することもできる。このように、マスターサーバ２００は、書き込み方式が非同期の書き込み方式の場合には、スレーブデータベース３１５にシステム全体の負荷が軽い状態で、データを書き込むことができる。
【００６３】
次に、方式切替判断部２５５がデータベース管理システム５００の負荷に応じて書き込み方式を変更する方法について、説明する。
【００６４】
なお、本実施形態では、完全同期の書き込み方式、半完全の書き込み方式および非同期の書き込み方式の３つの方式について書き込み方式を切り替える場合について説明するが、本実施形態はこれに限定されるものではない。例えば、完全同期の書き込み方式と半完全の書き込み方式の２つの方式を備え、この２つの書き込み方式を切り替えるように設定してもよい。
【００６５】
図６は、マスターサーバ２００の方式切替判断部２５５が、データベース管理システム５００の負荷により、書き込み方式を切り替えることを示した説明図である。
【００６６】
図６では、負荷推定部２４０が推定するデータベース管理システム５００の負荷により、書き込み方式を３つの方式の中うち、いずれかの方式に切り替えることを示している。ここで、図６の横軸は、推定されたシステム全体の負荷を示す一方、縦軸では、応答処理時間を示している。また、初期設定は、完全同期の書き込み方式である。
【００６７】
負荷推定部２４０は、処理時間算出処理部２３０において算出された書き込みに要する処理時間とスレーブサーバ３００からの応答時間に基づいて、応答処理時間からシステム全体の負荷を推定しており、データベース管理システム５００のシステム全体の負荷が大きくなると、処理時間算出処理部２３０で算出される応答処理時間は、線形的に遅くなる。
【００６８】
また、本実施形態に係るデータベース管理システム５００では、一定の書込み性能を維持するために、応答時間に対して設定された性能保証ラインＳＬが設定されており、方式切替判断部２５５では、その性能保証ラインＳＬを超えないように、固定値である閾値α（第１の閾値時間）が予め設定される。
【００６９】
ここで、データベース管理システム５００を最初に稼働させたときは、まず完全同期の書き込み方式（完全同期式）で稼働し、処理時間算出処理部２３０で算出した処理時間と応答時間に基づくシステム全体の負荷が閾値α以上となるとき、方式切替判断部２５５は、書込み方式を完全同期の書き込み方式（完全同期式）から半同期の書き込み方式（半同期式）に切り替える。データベース管理システム５００は、書き込み方式を半同期の書き込み方式に変更することにより、データベース管理システム５００の負荷を小さくして、書込命令を実行することができる。
【００７０】
また、書き込み方式を半同期の書き込み方式に変更した後でデータベース管理システム５００の負荷が大きくなると、処理時間算出処理部２３０で算出される応答処理時間は、遅くなる。例えば、方式切替判断部２５５は、応答時間が遅くなることによってシステムの負荷を示す応答処理時間が閾値α以上になるときは、半同期の書き込み方式（半同期式）から非同期の書き込み方式（非同期式）に書き込み方式を切り替える。このように、データベース管理システム５００は、書き込み方式を半同期の書き込み方式に変更することにより、書込命令処理を実行することができる。
【００７１】
また、本実施形態では、データベース管理システム５００の負荷が軽減した場合にも、書き込み方式を切り替えて変更することができるようになっている。具体的には、データベース管理システム５００は、システム全体の負荷の軽減によって書き込み方式を非同期の書き込み方式から半同期の書き込み方式に切り替えたり、書き込み方式を半同期の書き込み方式から完全同期の書き込み方式に切り替えることができる。以下、どのように書き込み方式を切り替えるか説明する。
【００７２】
図７は、半同期の書き込み方式から完全同期の書き込み方式に書き込み方式を切り替える場合を示した説明図である。
【００７３】
図７に示すように、半同期の書き込み方式が設定されているデータベース管理システム５００全体の負荷が閾値β未満になった場合、方式切替判断部２５５は、書き込み方式を完全同期の書き込み方式に切り替えることを示している。
【００７４】
これは、データベース管理システム５００におけるシステムの負荷が下がったことに伴い、マスターサーバ２００の書込要求に対し、性能保証ラインＳＬを超えない範囲で一定の性能を満たしつつ、完全同期の書き込み方式にてデータを書き込むように書き込み方式を切り替えることを意味している。
【００７５】
なお、データベース管理システム５００が非同期の書き込み方式で設定されている場合にも同様に、システム全体の負荷を示す応答時間が閾値β未満まで下がった場合は、方式切替判断部２５５は、書き込み方式を半同期の書き込み方式に変更することができる。
【００７６】
図８は、データベース管理システム５００の負荷に応じて、３種類の書き込み方式のうち、いずれかの最適な書き込み方式に切り替える切替方法を示した説明図である。
【００７７】
データベース管理システム５００の処理時間算出処理部２３０（図２）は、例えば、１分間に１回や２分間に１回など定期的に応答処理時間の平均値を算出している。図８に示すように、処理時間算出処理部２３０で算出した応答処理時間の平均値がそれぞれの書き込み方式に割り当てられた閾値に到達したとき、方式切替判断部２５５は、書込方式切替部２５０において書き込み方式を切り替える。
【００７８】
具体的には、方式切替判断部２５５は、完全同期の書き込み方式の場合において応答処理時間が閾値α以上になる場合には半同期の書き込み方式に切り替える一方、半同期の書き込み方式の場合において応答処理時間が閾値β１未満になる場合には、完全同期の書き込み方式に切り替える。また、方式切替判断部２５５は、半同期の書き込み方式の場合において応答処理時間が閾値α以上になる場合には非同期の書き込み方式に切り替える一方、非同期の書き込み方式の場合において応答処理時間が閾値β２未満になる場合には、半同期の書き込み方式に切り替える。
【００７９】
なお、図８の閾値β１は、半同期の書き込み方式における下限を示す時間であり、閾値β２は、非同期の書き込み方式における下限を示す時間である。そのため、閾値β１と閾値β２は同値であってもよく、また、異なる値であってもよい。
【００８０】
また、システム全体の負荷を示す応答処理時間は、マスターデータベース２１５にデータを書き込む処理時間と、スレーブサーバ３００からの応答時間とによって算出されているので、例えば、スレーブサーバ３００からの応答時間に基づいて、閾値β１や閾値β２を設定するようにしてもよい。具体的には、半同期の書き込み方式の場合において最初に得られた応答時間の５０％の時間を閾値β１とし、非同期の書き込み方式の場合において最初に得られた応答時間の５０％の時間を閾値β２とすることができる。
【００８１】
また、本実施形態では、閾値β１と閾値β２を有するだけでなく、書き込み方式を切り替えたときに閾値β１と閾値β２の値を動的に調整し、書き込み方式の切り替えによって切替処理が振動しないように閾値β１と閾値β２に調整時間を加算したり引き算するようにしてもよい。
【００８２】
例えば、方式切替判断部２５５は、完全同期の書き込み方式に切り替えた後、システム全体の負荷に基づいて、所定の時間内に完全同期の書き込み方式から半同期の書き込み方式に書き込み方式を切り替えた場合は、閾値β１（第２の閾値時間）から第１の調整時間だけ引き下げた時間に第２の閾値時間を更新する。
【００８３】
これにより、データベース管理システム５００は、方式切替判断部２５５により半同期の書き込み方式に切り替えられたとき、書込み方式を半同期の書き込み方式で安定させることができる。なお、この場合、第１の調整時間は、例えば、５ｍｓとすることができる。また、所定の時間とは、１分や２分を設定することができる。
【００８４】
また、方式切替判断部２５５は、半同期の書き込み方式に切り替えた後、システム全体の負荷に基づいて、半同期の書き込み方式から完全同期の書き込み方式に書き込み方式を切り替えた場合は、閾値β１に第２の調整時間を加算した時間に閾値β１を更新する。
【００８５】
これにより、データベース管理システム５００は、方式切替判断部２５５によって書き込み方式が切り替えた後、閾値β１の値を動的に調整することにより、半同期の書き込み方式から完全同期の書き込み方式に切り替えられやすくする。この場合、第２の調整時間は、例えば、２ｍｓとすることができる。
【００８６】
なお、方式切替判断部２５５は、第１の調整時間には、第２の調整時間よりも大きい調整時間を設定することが望ましい。
【００８７】
また、閾値β１について動的に調整する方法について説明したが、閾値β２についても同様に、動的に調整することができる。
【００８８】
具体的には、方式切替判断部２５５は、半同期の書き込み方式に切り替えた後、システム全体の負荷に基づいて、所定の時間内に半同期の書き込み方式から非同期の書き込み方式に書き込み方式を切り替えた場合は、閾値β２（第３の閾値時間）から第３の調整時間だけ引き下げた時間に閾値β２を更新する。
【００８９】
また、方式切替判断部２５５は、非同期の書き込み方式に切り替えた後、システム全体の負荷に基づいて、非同期の書き込み方式から半同期の書き込み方式に書き込み方式を切り替えた場合は、閾値β２に第４の調整時間を加算した時間に閾値β２を更新するようにしてもよい。
【００９０】
なお、第３の調整時間は、第１の調整時間と同等の時間を設定することができ、また、第４の調整時間は、第２の調整時間と同等の時間を設定することができる。
【００９１】
次に、マスターサーバ２００とスレーブサーバ３００のハードウエアの構成について、それぞれ説明する。
【００９２】
図９は、本実施形態に係るマスターサーバ２００のハードウエアの構成を示したハードウエアブロック図である。
【００９３】
図９に示すように、マスターサーバ２００は、ＣＰＵ（Central Processing Unit）２６０、ＲＯＭ（Read Only Memory）２６２、ＲＡＭ（Random Access Memory）２６４、ネットワークインターフェース部２６６、操作入力部２６８、表示部２７０、記憶部２７２、内部バス２７４などを備えて構成されている。
【００９４】
ＣＰＵ２６０は、ＲＯＭ２６２に格納されている各種プログラムをＲＡＭ２６４にロードして、そのプログラムを展開することにより、各種プログラムの機能を実現することできる。ＲＡＭ２６４は、ワークエリア（作業用メモリ）として利用されるようになっている。ＲＯＭ２６２は、各種プログラムを格納するようになっている。ＲＯＭ２６２に格納されている各種プログラムには、図２で示した各種機能を実現するためのプログラムが含まれる。
【００９５】
ネットワークインターフェース部２６６は、ネットワーク４００（図１）を介して、クライアント端末１００（図２）から書込命令を受信したり、スレーブサーバ３００に書込命令を送信するためのインターフェース部である。
【００９６】
操作入力部２６８は、スレーブサーバ３００（図２）をマスターサーバ２００に登録するための設定登録を行ったり、クライアント端末１００の書込命令を受け付けるための登録情報を編集するための入力装置である。なお、この操作入力部２６８は、キーボードやマウスなどにより構成されている。
【００９７】
表示部２７０は、書込命令の受信状況やスレーブサーバ３００に書込命令を実施している際の進行状況などを表示するための表示装置である。この表示部は、液晶ディスプレイやモニタなどにより構成されている。
【００９８】
記憶部２７２は、マスターデータベース２１５（図２）を構成する記憶領域であり、ＲＡＭやハードディスクなどにより構成されている。
【００９９】
内部バス２７４は、ＣＰＵ２６０がマスターサーバ２００全体を統括制御するように、各構成要素と接続されている。
【０１００】
図１０は、本実施形態に係るスレーブサーバ３００のハードウエアの構成を示したハードウエアブロック図である。
【０１０１】
図１０に示すように、スレーブサーバ３００は、ＣＰＵ３４０、ＲＯＭ３４２、ＲＡＭ３４４、ネットワークインターフェース部３４６、操作入力部３４８、表示部３５０、記憶部３５２、内部バス３５４などを備えて構成されている。
【０１０２】
ＣＰＵ３４０は、ＲＯＭ３４２に格納されている各種プログラムをＲＡＭ３４４にロードして、そのプログラムを展開することにより、各種プログラムの機能を実現することできる。ＲＡＭ３４４は、ワークエリア（作業用メモリ）として利用されるようになっている。ＲＯＭ３４２は、各種プログラムを格納するようになっている。ＲＯＭ３４２に格納されている各種プログラムには、図２で示した各種機能を実現するためのプログラムが含まれる。
【０１０３】
ネットワークインターフェース部３４６は、ネットワーク４００（図１）を介して、マスターサーバ２００から書込命令を受信したり、マスターサーバ２００（図２）に書込応答を送信するためのインターフェース部である。
【０１０４】
操作入力部３４８は、マスターサーバ２００の設定登録を行ったり、クライアント端末１００（図２）の書込命令を受け付けるための登録情報を編集するための入力装置である。なお、この操作入力部３４８は、キーボードやマウスなどにより構成されている。
【０１０５】
表示部３５０は、書込命令の受信状況やスレーブサーバ３００に書込命令を実施している進行状況などを表示することができる表示装置である。この表示部は、液晶ディスプレイやモニタなどにより構成されている。
【０１０６】
記憶部３５２は、スレーブデータベース３１５を構成する記憶領域であり、ＲＡＭやハードディスクなどにより構成されている。
【０１０７】
内部バス３５４は、ＣＰＵ３４０がスレーブサーバ３００全体を統括制御するように、各構成要素に接続されている。
【０１０８】
（書込方式切替処理）
次に、データベース管理システム５００において、方式切替判断部２５５が書き込み方式を切り替える書込方式切替処理について説明する。
【０１０９】
図１１は、データベース管理システム５００の方式切替判断部２５５が書き込み方式を切り替える書込方式切替処理を示したフローチャートである。図１１において、Ｓに数字を付した符号は、フローチャートの各ステップを示している。
【０１１０】
図１１に示すように、マスターサーバ２００の方式切替判断部２５５は、応答処理時間を算出するために、所定の一定時間が経過したか否か待ち受ける（ステップＳ３０１）。なお、所定の一定時間とは、例えば、１分や２分などの時間を所定の一定時間として設定する。また、書き込み方式の初期値は、完全同期の書き込み方式が設定されている。
【０１１１】
方式切替判断部２５５は、所定の一定時間が経過した場合（ステップＳ３０１のＹｅｓ）、処理時間算出処理部２３０において、書込実行部２１０に記憶されているデータベース２１５に書き込み要した処理時間と書込命令に対する応答時間とを算出（取得）する。そして、方式切替判断部２５５は、負荷推定部２４０において、処理時間と応答時間とに基づいて、応答処理時間の平均値（これを平均応答処理時間ともいう。）を算出する（ステップＳ３０３）。
【０１１２】
方式切替判断部２５５は、負荷推定部２４０において平均応答処理時間を算出すると（ステップＳ３０３）、その平均応答処理時間からシステム全体（データベース管理システム５００全体）の負荷を推定する。方式切替判断部２５５は、書き込み方式の初期値が完全同期の書き込み方式（完全同期式）に設定されているため（ステップＳ３０５のＮｏ）、完全同期の書き込み方式であって、かつ平均応答処理時間が閾値α以上か否かを判定する（ステップＳ３０７）。
【０１１３】
方式切替判断部２５５は、書き込み方式が完全同期の書き込み方式であって、かつデータベース管理システム５００全体の負荷を示す平均応答処理時間が閾値α未満の場合には（ステップＳ３０７のＮｏ）、半同期の書き込み方式に切り替えるほどはシステム全体の負荷は大きくないと判定し、ステップＳ３０１に戻り、完全同期の書き込み方式でデータのレプリケーションを実行する。
【０１１４】
一方、方式切替判断部２５５は、現在の書き込み方式が完全同期の書き込み方式（完全同期式）で、かつ平均応答処理時間が閾値α以上の場合には（ステップＳ３０７のＹｅｓ）、データベース管理システム５００全体の負荷では半同期の書き込み方式が適切と判定し、マスターサーバ２００がスレーブデータベース３１５に半同期の書き込み方式（半同期式）で書き込むように切り替えを決定する（ステップＳ３０９）。
【０１１５】
また、本実施形態実施に係るデータベース管理システム５００では、半同期の書き込み方式に切り替えを決定した場合には、閾値β１の時間（第２の閾値時間）から所定の時間（第１の調整時間）だけ引き下げて、その引き下げた値に閾値β１を更新する（ステップＳ３１１）。例えば、方式切替判断部２５５は、閾値β１の時間から５ｍｓを引き下げた値を閾値β１とする。
【０１１６】
これにより、本実施形態に係るデータベース管理システム５００は、閾値β１をシステム全体の負荷（システム負荷指標値）に基づいて動的に調整することができるので、閾値β１の近傍で書き込み方式を切り替えることによる不安定な振動（バタツキ動作）を回避することができる。
【０１１７】
データベース管理システム５００では、方式切替判断部２５５の判定結果に基づいて、書込方式切替部２５０からスレーブサーバ３００の方式変更要求受付部３３０に書き込み方式を切り替える書込方式切替要求（切替変更指示）を送信する（ステップＳ３１３）。
【０１１８】
そして、書込方式切替部２５０では、スレーブサーバ３００の方式変更要求受付部３３０から書き込み方式を切り替えた旨の応答を待ち受けており（ステップＳ３１５）、書き込み方式を切り替えた旨の応答を受信した場合には（ステップＳ３１５のＹｅｓ）、レプリケーション実行部２２０の書込命令送信部２２２の書き込み方式を半同期の書込み方式に切り替えて（ステップＳ３１７）、ステップＳ３０１に戻る。
【０１１９】
ステップＳ３０１に戻った以降の処理は、書込み方式が半同期の書き込み方式に切り替えられているので、方式切替判断部２５５は、所定の一定時間経過ごとに平均応答処理時間を算出し（ステップＳ３０３）、システム全体の負荷を判定する（ステップＳ３０５）。
【０１２０】
すなわち、方式切替判断部２５５は、書き込み方式が半同期の書き込み方式で、かつ平均応答処理時間が閾値β１よりも小さい場合には（ステップＳ３０５のＹｅｓ）、データベース管理システム５００全体の負荷は軽いと判定し、スレーブサーバ３００の書き込み方式を半同期の書き込み方式から完全同期の書き込み方式（完全同期式）に切り替えを決定する（ステップＳ３１９）。
【０１２１】
この場合、データベース管理システム５００は、システム全体の負荷に基づいて、閾値αの時間（第１の閾値時間）内にスレーブサーバ３００がスレーブデータベース３１５に所定のデータを書き込むことができると判定し、スレーブサーバ３００のスレーブデータベース３１５に完全同期の書き込み方式で書き込むように切り替えを決定する。
【０１２２】
また、本実施形態実施に係るデータベース管理システム５００では、半同期の書き込み方式から完全同期の書き込み方式に切り替えを決定した場合は、閾値β１の時間に所定の時間（第２の調整時間）を加算した閾値β１の値に更新する（ステップＳ３２１）。例えば、方式切替判断部２５５は、閾値β１の時間に２ｍｓを加算した値を閾値β１とする。また、第１の調整時間と第２の調整時間との関係では、第１の調整時間には、第２の調整時間よりも大きい調整時間を設定することが望ましい。
【０１２３】
これにより、本実施形態に係るデータベース管理システム５００は、閾値β１（第２の閾値時間）をシステム全体の負荷に基づいて動的に調整することができるので、閾値β１の近傍で書き込み方式を切り替えることによる不安定な振動（バタツキ動作）を回避することができる。
【０１２４】
一方、現在の書き込み方式が半同期の書き込み方式（半同期式）で、かつ平均応答処理時間が閾値β１未満でない場合は（ステップＳ３０５のＮｏ）、方式切替判断部２５５は、データベース管理システム５００全体の負荷は完全同期の書き込み方式に切り替えるほどは軽くないと判定し、システム全体の負荷がそれぞれの閾値を満たすまで継続して上記フローを繰り返す。
【０１２５】
以上説明したように、本実施形態実施に係るデータベース管理システム５００は、方式切替判断部２５５において平均応答処理時間を算出し、その算出された平均応答処理時間に基づいて、データベース管理システム５００全体の負荷を推定する。そして、方式切替判断部２５５は、完全同期の書き込み方式のときにおいて、平均応答処理時間が予め設定された閾値α未満の場合は、完全同期の書き込み方式のままスレーブデータベース３１５にデータを書き込む一方、平均応答処理時間が閾値α以上の場合には、半同期の書き込み方式でスレーブデータベース３１５にデータを書き込むように切り替える。
【０１２６】
これにより、本実施形態に係るデータベース管理システム５００は、完全同期の書き込み方式で書き込むことができる状態が多くなり、スレーブサーバ３００のスレーブデータベース３１５に、書き込むべきデータの損失する可能性を低減させることができる。
【０１２７】
また、本実施形態では、非同期の書き込み方式を組み合わせて設けることができるので、非同期の書き込み方式が設けられた場合の非同期の書き込み方式と、半同期の書き込み方式とを切り替える処理について説明する。
【０１２８】
なお、この場合の書き込み方式を切り替える処理については、図１１と似たような処理になるため、説明を適宜省略し、異なる処理のみについて異なる符号を付して説明する。具体的には、図１１のフローチャートにおいて、ステップＳ３０５からステップＳ３１１までの処理と、ステップＳ３１９およびステップ３２１が異なるため、これらの処理を中心に説明する。
【０１２９】
図１２は、データベース管理システム５００の方式切替判断部２５５が、書き込み方式を非同期の書き込み方式か半同期の書き込み方式に切り替える書込方式切替処理を示したフローチャートである。図１２において、Ｓに数字を付した符号は、フローチャートの各ステップを示している。
【０１３０】
図１２に示すように、例えば、マスターサーバ２００の方式切替判断部２５５は、半同期の書き込み方式が設定されている場合において、処理時間算出処理部２３０において、書き込みに要した処理時間とスレーブサーバ３００からの応答時間とを算出すると、負荷推定部２４０において平均応答処理時間を算出し、システム全体の負荷を推定する（ステップＳ３０３）。方式切替判断部２５５は、半同期の書き込み方式が設定されているため（ステップＳ４０１のＮｏ）、半同期の書き込み方式であって、かつ平均応答処理時間が閾値α以上か否かを判定する（ステップＳ４０３）。
【０１３１】
方式切替判断部２５５は、書き込み方式が半同期の書き込み方式であって、かつデータベース管理システム５００全体の負荷を示す平均応答処理時間が閾値α未満の場合には（ステップＳ４０３のＮｏ）、非同期の書き込み方式に切り替えるほどシステム全体の負荷は大きくないと判定し、ステップＳ３０１に戻り、半同期の書き込み方式でデータのレプリケーションを実行する。
【０１３２】
一方、方式切替判断部２５５は、現在の書き込み方式が半同期の書き込み方式（半同期式）で、かつ平均応答処理時間が閾値α以上の場合には（ステップＳ４０３のＹｅｓ）、データベース管理システム５００全体の負荷では非同期の書き込み方式が適切と判定し、マスターサーバ２００がスレーブデータベース３１５に非同期の書き込み方式（非同期式）で書き込むように切り替えを決定する（ステップＳ４０５）。
【０１３３】
また、本実施形態実施に係るデータベース管理システム５００では、非同期の書き込み方式に切り替えを決定した場合には、閾値β２の時間（第３の閾値時間）から所定の時間（第３の調整時間）だけ引き下げて、その引き下げた値に閾値β２を更新する（ステップＳ４０７）。例えば、方式切替判断部２５５は、閾値β２の時間から５ｍｓを引き下げた値を閾値β２とする。
【０１３４】
このように、本実施形態に係るデータベース管理システム５００は、閾値β２をシステム全体の負荷（システム負荷指標値）に基づいて動的に調整することができるので、閾値β２の近傍で書き込み方式を切り替えることによる不安定な振動（バタツキ動作）を回避することができる。
【０１３５】
また、ステップＳ４０５で非同期式に切り替えを決定し、その後、ステップＳ３１７で書き込み方式を切り替えた後にステップＳ３０１に戻ってきた場合には、書き込み方式が非同期の書き込み方式に切り替えられている。方式切替判断部２５５は、所定の一定時間経過ごとに平均応答処理時間を算出して（ステップＳ３０３）、システムの負荷を判定する（ステップＳ４０１）。
【０１３６】
方式切替判断部２５５は、書き込み方式が非同期の書き込み方式で、かつ平均応答処理時間が閾値β２よりも小さい場合は（ステップＳ４０１のＹｅｓ）、データベース管理システム５００全体の負荷は軽いと判定し、スレーブサーバ３００の書き込み方式を非同期の書き込み方式から半同期の書き込み方式（半同期式）に切り替えを決定する（ステップＳ４０９）。
【０１３７】
この場合、データベース管理システム５００は、システム全体の負荷に基づいて、閾値αの時間（第１の閾値時間）内にスレーブサーバ３００がスレーブデータベース３１５に所定のデータを書き込むことができると判定し、スレーブサーバ３００のスレーブデータベース３１５に半同期の書き込み方式で書き込むように切り替えを決定する。
【０１３８】
また、本実施形態実施に係るデータベース管理システム５００では、非同期の書き込み方式から半同期の書き込み方式に切り替えを決定した場合には、閾値β２の時間に所定の時間（第４の調整時間）を加算した閾値β２の値に更新する（ステップＳ４１１）。例えば、方式切替判断部２５５は、閾値β２の時間に２ｍｓを加算した値を閾値β２とする。また、第３の調整時間と第４の調整時間との関係では、第３の調整時間には、第４の調整時間よりも大きい調整時間を設定することが望ましい。
【０１３９】
これにより、本実施形態に係るデータベース管理システム５００は、閾値β２（第３の閾値時間）をシステム全体の負荷に基づいて動的に調整することができるので、閾値β２の近傍で書き込み方式を切り替えることによる不安定な振動（バタツキ動作）を回避することができる。
【０１４０】
一方、現在の書き込み方式が非同期の書き込み方式（非同期式）で、かつ平均応答処理時間が閾値β２未満でない場合は（ステップＳ４０１のＮｏ）、方式切替判断部２５５は、データベース管理システム５００全体の負荷は半同期の書き込み方式に切り替えるほど軽くないと判定し、システム全体の負荷がそれぞれの閾値を満たすまで継続して上記フローを繰り返す。
【０１４１】
そして、書き込み方式の切り替えが決定された場合、データベース管理システム５００は、マスターサーバ２００のレプリケーション実行部２２０からスレーブサーバ３００の書込命令受信部３１０に書き込み方式を切り替える書込方式切替要求を送信する（ステップＳ３１７）。
【０１４２】
このように、本実施形態に係るデータベース管理システム５００は、方式切替判断部２５５が推定するシステム全体の負荷に基づいて、書き込み方式を非同期の書き込み方式か半同期の書き込み方式かに切り替えることができる。
【０１４３】
なお、図１１のステップＳ３１１およびＳ３２１と図１２のステップＳ４０７およびＳ４１１において、それぞれ調整時間を加算や減算することにより閾値β１および閾値β２の引き上げや引き下げを行っていたが、書込み方式を切り替えた場合のみ実行すればよく、書込み方式を変更しない場合には、閾値の引き上げや引き下げを行う必要はない。
【０１４４】
上述した図１１および図１２のフローチャートでは、データベース管理システム５００におけるマスターサーバ２００の動作を説明したが、次に、スレーブサーバ３００の動作について説明する。
【０１４５】
（スレーブの書込方式切替処理）
データベース管理システム５００におけるスレーブサーバ３００が、送信された書込方式切替要求（切替変更指示）に応じて書込命令受信部３１０に設定されている書き込み方式を切り替える書込方式切替処理について説明する。
【０１４６】
図１３は、スレーブサーバ３００の方式変更要求受付部３３０が、マスターサーバ２００の書込方式切替部２５０から送信された書込方式切替要求に応じて書込命令受信部３１０に設定されている書き込み方式を切り替える書込方式切替処理を示したフローチャートである。なお、図１３において、Ｓに数字を付した符号は、フローチャートの各ステップを示している。
【０１４７】
図１３に示すように、スレーブサーバ３００の方式変更要求受付部３３０は、マスターサーバ２００の書込方式切替部２５０から送信される書込方式切替要求を待ち受けるようになっている（ステップＳ５０１）。そして、方式変更要求受付部３３０は、書込方式切替部２５０から書込方式切替要求を受信した場合は（ステップＳ５０１のＹｅｓ）、書込命令受信部３１０の書き込み方式を、受信した書き込み方式に切り替える（ステップＳ５０３）。
【０１４８】
書込命令受信部３１０の書き込み方式が、書込方式切替要求に対応する書き込み方式に切り替えられた後、スレーブサーバ３００は、方式変更要求受付部３３０から、その書き込み方式に切り替えた旨の応答を、方式切替判断部２５５の書込方式切替部２５０に送信し、処理を終了する（ステップＳ５０５）。
【０１４９】
なお、本実施形態では、書込命令受信部３１０の書き込み方式を変更した後、方式変更要求受付部３３０を介して書込方式切替部２５０に応答を返信するようになっているが、これに限定されるものではない。例えば、書込命令受信部３１０は、応答返信部３２０とレプリケーション実行部２２０を介して、方式切替判断部２５５の書込方式切替部２５０に応答を返信するようにしてもよい。
【０１５０】
また、本実施形態では、データベース管理システム５００において書き込み方式を切り替える処理について説明したが、本実施形態はこれに限定されるものではない。例えば、マスターサーバ２００単体のみを用いて、システム全体の負荷に基づいて書き込み方式を切り替えるサーバを実現するようにしてもよい。
【０１５１】
また、本実施形態では、上記の内容に限定されるものではない。具体的には、マスターデータベース２１５に書き込むデータに優先度を割り当てて、書込方式切替部２５０は、割り当てられたその優先度に応じて、優先度の高いデータは、完全同期の書き込み方式が選択されるように、優先度の低いデータよりも閾値β（第２の閾値時間）を高く設定するようにしてもよい。
【０１５２】
また、マスターデータベース２１５に書き込むデータのうち指定された所定のデータについては、書き込み方式を完全同期の書き込み方式に固定するようにしてもよい。
【０１５３】
なお、本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【０１５４】
また、本発明の実施形態では、フローチャートの各ステップは、記載された順序に沿って時系列的に行われる処理の例を示したが、必ずしも時系列的に処理されなくとも、並列的あるいは個別実行される処理をも含むものである。
【符号の説明】
【０１５５】
１００  クライアント端末
２００  マスターサーバ
２１０  書込実行部
２１２  書込命令受付部
２１４  書込処理部
２１５  マスターデータベース
２２０  レプリケーション実行部
２２２  書込命令送信部
２２４  応答受信部
２３０  応答時間算出部
２３３  応答時間算出処理部
２４０  負荷推定部
２５０  書込方式切替部
２５５  方式切替判断部
３００  スレーブサーバ
３１０  書込命令受信部
３１５  スレーブデータベース
３２０  応答返信部
３３０  方式変更要求受付部
４００  ネットワーク
５００  データベース管理システム
【図１】
2014222451.tif 000003
【図２】
2014222451.tif 000004
【図３】
2014222451.tif 000005
【図４】
2014222451.tif 000006
【図５】
2014222451.tif 000007
【図６】
2014222451.tif 000008
【図７】
2014222451.tif 000009
【図８】
2014222451.tif 000010
【図９】
2014222451.tif 000011
【図１０】
2014222451.tif 000012
【図１１】
2014222451.tif 000013
【図１２】
2014222451.tif 000014
【図１３】
2014222451.tif 000015