(57)【要約】【課題】グループコミットによりシステム全体のスループットを高めつつ、トランザクションの特性に応じて通常コミットの実行も可能とすることで、より適切なチューニングを可能とする。【解決手段】クライアント１００からのコミット要求を受信して、データベースマネジメントサーバ２００においてコミット処理を行うデータベースシステム１０において、クライアント１００は、あるトランザクションについてグループコミット要求を発行するか通常コミット要求を発行するかを判定し、判定結果に基づいて、データベースマネジメントサーバ２００にグループコミット要求または通常コミット要求を発行するトランザクション特性判定部１１０を備え、データベースマネジメントサーバ２００は、クライアント１００からのコミット要求に基づいて、グループコミット処理または通常コミット処理を実行する。【選択図】図１
2013200601.tif 000002
【特許請求の範囲】
【請求項１】
クライアントからのコミット要求を受信して、データベースマネジメントサーバにおいてコミット処理を行うデータベースシステムにおいて、
前記クライアントは、
あるトランザクションについてグループコミット要求を発行するか通常コミット要求を発行するかを判定し、判定結果に基づいて、前記データベースマネジメントサーバにグループコミット要求または通常コミット要求を発行するトランザクション特性判定部を備え、
前記データベースマネジメントサーバは、
前記クライアントからのコミット要求に基づいて、グループコミット処理または通常コミット処理を実行する、データベースシステム。
【請求項２】
前記トランザクション特性判定部は、
トランザクションにおいて更新対象となったレコードのサイズの合計がしきい値を超えた場合にはグループコミット要求を発行する、請求項１に記載のデータベースシステム。
【請求項３】
前記トランザクション特性判定部は、
トランザクションにおいて更新対象となったテーブルの種類に基づいて、グループコミット要求を発行するか通常コミット要求を発行するかを判定する、請求項１または２に記載のデータベースシステム。
【請求項４】
前記トランザクション特性判定部は、
トランザクションにおいて更新対象となったテーブル中の列の種類に基づいて、グループコミット要求を発行するか通常コミット要求を発行するかを判定する、請求項１から３のいずれか１項に記載のデータベースシステム。
【請求項５】
前記データベースマネジメントサーバは、
コミット処理を実行するコミット処理部と、
前記クライアントからのコミット要求を受信し、受信した要求が通常コミット要求の場合には、前記コミット処理部に対して通常コミット要求を通知し、受信した要求がグループコミット要求の場合には、当該グループコミット要求を一時的に滞留させ、滞留しているグループコミット要求が一定数以上になったら、前記コミット処理部に対してグループコミット要求を通知する、請求項１から４のいずれか１項に記載のデータベースシステム。
【請求項６】
クライアントからのコミット要求を受信して、データベースマネジメントサーバにおいてコミット処理を行うコミット方法において、
前記クライアントは、
あるトランザクションについてグループコミット要求を発行するか通常コミット要求を発行するかを判定し、判定結果に基づいて、前記データベースマネジメントサーバにグループコミット要求または通常コミット要求を発行し、
前記データベースマネジメントサーバは、
前記クライアントからのコミット要求に基づいて、グループコミット処理または通常コミット処理を実行する、方法。
【請求項７】
コンピュータを、
あるトランザクションについてグループコミット要求を発行するか通常コミット要求を発行するかを判定し、判定結果に基づいて、データベースマネジメントサーバにグループコミット要求または通常コミット要求を発行するトランザクション特性判定部として機能させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データベースシステム、データベースシステムにおけるコミット方法、及びプログラムに関する。
【背景技術】
【０００２】
ＤＢＭＳ(Database Management System)では、データの永続性を確保するためディスクに更新情報を格納したり、ネットワーク経由で他のホスト上へのレプリケーションを行ったりしている。このとき、コミット要求ごとにディスクアクセスやデータ転送を行うとオーバヘッドが大きくなるため、多くのＤＢＭＳでは、複数トランザクションのコミット要求をまとめて処理するグループコミットという機能を有している。これによりシステム全体のスループットを改善している。
データベースにおけるコミット方法の例は、特許文献１等に記載されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００９−２８２７４６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかし、コミット処理をグループ化すると、トランザクションによっては、グループ化しない場合と比べＴＡＴ（ターンアラウンドタイム）が劣化する可能性が出てくる。また、従来のＤＢＭＳにおけるグループコミットは、インスタンス単位でレプリケーションの設定や更新ログ採取などの永続性に対する設定を有効にしている。このため、必然的に全てのトランザクションのＴＡＴが遅延する可能性を有することになり、それを許容したシステム設計を行う必要がある。
【０００５】
通常、業務アプリケーションの扱うデータは、永続性を必要とするものと、永続性は重要ではないがＴＡＴが必要なものとが混在しており、秒間発生件数が高く、また、過去のデータよりも最新のデータが重要なデータの場合、永続性よりもＴＡＴの方が重要になる。
【０００６】
そこで、本発明の目的は、グループコミットによりシステム全体のスループットを高めつつ、トランザクションの特性に応じて通常コミットの実行も可能とすることで、より適切なチューニングを可能とすることである。
【課題を解決するための手段】
【０００７】
本発明に係るデータベースシステムは、クライアントからのコミット要求を受信して、データベースマネジメントサーバにおいてコミット処理を行うデータベースシステムにおいて、前記クライアントは、あるトランザクションについてグループコミット要求を発行するか通常コミット要求を発行するかを判定し、判定結果に基づいて、前記データベースマネジメントサーバにグループコミット要求または通常コミット要求を発行するトランザクション特性判定部を備え、前記データベースマネジメントサーバは、前記クライアントからのコミット要求に基づいて、グループコミット処理または通常コミット処理を実行するものである。
【０００８】
本発明に係るコミット方法は、クライアントからのコミット要求を受信して、データベースマネジメントサーバにおいてコミット処理を行うコミット方法において、前記クライアントは、あるトランザクションについてグループコミット要求を発行するか通常コミット要求を発行するかを判定し、判定結果に基づいて、前記データベースマネジメントサーバにグループコミット要求または通常コミット要求を発行し、前記データベースマネジメントサーバは、前記クライアントからのコミット要求に基づいて、グループコミット処理または通常コミット処理を実行するものである。
【０００９】
本発明に係るプログラムは、コンピュータを、あるトランザクションについてグループコミット要求を発行するか通常コミット要求を発行するかを判定し、判定結果に基づいて、データベースマネジメントサーバにグループコミット要求または通常コミット要求を発行するトランザクション特性判定部として機能させるものである。
【発明の効果】
【００１０】
本発明によれば、グループコミットによりシステム全体のスループットを高めつつ、トランザクションの特性に応じて通常コミットの実行も可能とすることで、より適切なチューニングを可能とすることができる。
【図面の簡単な説明】
【００１１】
【図１】本発明の実施形態によるデータベースシステムの構成を示すブロック図。
【図２】本発明の実施形態による、トランザクション特性の定義の例を示す図。
【図３】本発明の実施形態による、トランザクション特性の定義の例を示す図。
【図４】本発明の実施形態による、トランザクション特性の定義の例を示す図。
【図５】本発明の実施形態による、トランザクション特性の定義の例を示す図。
【図６】本発明の実施形態による、データベースシステムの動作を説明する図。
【図７】本発明の実施形態による、データベースシステムの動作のフローチャート。
【図８】本発明の実施形態による、データベースシステムの動作のフローチャート。
【図９】本発明の実施形態による、データベースシステムの動作のフローチャート。
【発明を実施するための形態】
【００１２】
次に、本発明を実施するための最良の形態について、図面を参照して詳細に説明する。
図１は、本発明の実施形態によるデータベースシステム１０の構成を示すブロック図である。図に示すように、データベースシステム１０は、通信回線を介して接続されたクライアント１００とＤＢＭＳ２００を備えている。
【００１３】
クライアント１００は、プログラムに従って動作するコンピュータ等の情報処理装置によって実現される。図１に示すように、クライアント１００は、トランザクション特性判定部１１０、更新要求フック部１２０、ポイント保持部１３０、トランザクション特性定義保持部１４０、トランザクション特性設定部１５０を備えている。
【００１４】
トランザクション特性判定部１１０、更新要求フック部１２０、トランザクション特性設定部１５０、ＣＰＵがＲＯＭ等に格納された所定のプログラムを実行することにより実現される機能のモジュールに相当する。ポイント保持部１３０、トランザクション特性定義保持部１４０は、記憶装置により実装される。
【００１５】
トランザクション特性判定部１１０は、あるトランザクションについてグループコミット要求を発行するか通常コミット要求を発行するかを選択する。更新要求フック部１２０は、クライアント１００が発行した更新要求(insert, update, delete)をフックし、その情報とトランザクション特性定義保持部１４０に保持された定義に基づいてポイントを算出し、ポイント保持部１３０においてポイントを加算していく。
【００１６】
ＤＢＭＳ２００は、トランザクション制御部２１０、グループコミット要求格納部２２０、コミット処理部２３０を有する。トランザクション制御部２１０は、グループ化条件充足判定部２２１を含み、コミット処理部２３０に対してグループコミット処理要求を発行するタイミングを管理する。
【００１７】
グループコミット要求格納部２２０は、グループコミット要求を一時的に滞留させるための領域であり、キューや双方向リストなど実現方法は様々な形態をとりうる。
【００１８】
コミット処理部２３０は、共通処理部２３１と、固有処理部２３２を有している。共通処理部２３１は、ディスクへの書き込みや、ネットワーク経由でのレプリケーションなど、一括処理することにより効率化することが出来る全トランザクションで共通的に実施する処理を行う。固有処理部２３２は、トランザクションごとに固有のレコードの更新、削除等の処理を行う。
【００１９】
次に、データベースシステム１０の動作について説明する。
まず、利用者は、トランザクション特性設定部１５０を介して、トランザクション特性定義保持部１４０にトランザクション特性の定義を設定する。図２〜５はトランザクション特性の定義の例を示す図である。
【００２０】
図２には、３種類の特性を定義した例を示しており、それぞれにしきい値を設定している。それぞれの特性はしきい値を超えると真と判定される。特性の組み合わせは、図３に示すように定義され、最終的に総合的な判定結果が真の場合にグループコミット、偽の場合に通常コミットが実施される。また、特性ＩＤ２については、図４に示すような表ごとの重み付けの定義が必要となる。また、特性ＩＤ３については、インデックスが定義されている列を図５のように定義する必要がある。
【００２１】
各特性について詳細に説明する。特性ＩＤ１は、更新対象となったレコードのサイズの合計のしきい値を表しており、１トランザクション内でこのしきい値を超えた場合には真の判定となる。
【００２２】
特性ＩＤ２は、データ特性を表しており、図４に定義している表ごとのポイントの合計が、しきい値を超えた場合に真となる。例えば、１トランザクション内で表ＡＡＡと表ＣＣＣを更新した場合、ポイント合計は１５になり、しきい値１０を超えているので、真となる。例えば、表ＢＢＢを更新するトランザクションはＴＡＴ優先にしたい場合には、しきい値よりも大きなポイント値を定義することで常に判定式が真となるので、組み合わせ定義において「！２」と定義すれば、必ず通常コミットをさせることが可能になる。
【００２３】
特性ＩＤ３は、インデックスが定義されている列をいくつ更新したかを表しており、図５に示す列定義に基づいて、更新対象列がインデックス有の場合はポイントが１加算される。
なお、ポイントは、図６に示すように特性ＩＤ毎の値として、ポイント保持部１３０に保持される。
【００２４】
図７のフローチャートを用いて、クライアント１００の更新要求発行時の動作について説明する。なお、ここでは図２のように特性定義がなされているとする。
まず、ステップＡ１で更新対象レコードのサイズを取得する。
【００２５】
次に、ステップＡ２において、ポイント保持部１３０に保持されている特性１のポイントに１加算する。
次に、ステップＡ３において、更新対象表名を取得する。次に、ステップＡ４において、同一トランザクションで当該更新対象表がすでに更新済であるか否かを判定し、更新済の場合にはステップＡ７へ進む。更新済でない場合にはステップＡ５へ移行する。
【００２６】
ステップＡ５において、データポイント表（図４）から当該対象表のポイントを取得する。さらに、ステップＡ６において、ポイント保持部１３０に保持されている特性２のポイントに１加算する。
【００２７】
次に、ステップＡ７において、更新対象列名を取得する。次に、ステップＡ８において、インデックス列定義表（図５）の該当表のレコードに当該対象列が存在するか否かを判定する。存在する場合にはステップＡ９へ進み、存在しない場合には処理を終了する。
【００２８】
ステップＡ９では、ポイント保持部１３０に保持されている特性３のポイントに１加算する。
【００２９】
次に、図８を用いて、クライアント１００のコミット要求時の動作について説明する。クライアント１００は、コミット要求処理を開始すると、トランザクション特性判定部１１０においてトランザクション特性判定を行う（ステップＢ１）。トランザクション特性判定部１１０は、ポイント保持部１３０に保持されているポイントと、図３に示す特性の組み合わせ定義に基づいて条件の真／偽を判定する。真の場合はＴＡＴ非優先のトランザクション（グループコミット対象）（ステップＢ３）、偽の場合はＴＡＴ優先のトランザクション（通常コミット対象）（ステップＢ２）と判断して、ＤＢＭＳ２００にコミット要求を発行する。
【００３０】
次に、図９を用いて、ＤＢＭＳ２００の、クライアント１００からのコミット要求時の動作について説明する。まず、トランザクション制御部２１０は、クライアント１００からコミット要求を受信すると、グループコミット要求かどうかを判定する（ステップＣ１）。
【００３１】
通常コミット要求の場合は、該当コミット要求のみをコミット処理部２３０に送信し、コミット固有処理（ステップＣ２）、コミット共通処理（ステップＣ３）を行う。トランザクション制御部２１０は、コミット処理部２３０の処理完了後にクライアント１００へ応答を送信する。
【００３２】
グループコミット要求の場合は、トランザクション制御部２１０は、グループコミット要求格納部２２０に該当グループコミット要求を格納する（ステップＣ５）。その後、トランザクション制御部２１０は、グループ化条件充足判定部２２１においてグループ化条件充足判定を行う（ステップＣ６）。
【００３３】
グループ化条件は、例えば、グループコミット要求格納部２２０に格納されたコミット要求数が一定数以上か否かで判定する。グループ化条件を満たしている場合は、その旨をグループ化対象となるコミット要求数と伴に、コミット処理部２３０に通知する。
【００３４】
コミット処理部２３０は、通知を受信すると、グループコミット要求格納部２２０からコミット要求を取得し（ステップＣ７）、固有処理部２３２においてコミット固有処理を行う（ステップＣ８）。コミット処理部２３０は、ステップＣ７、Ｃ８を通知されたコミット要求数分繰り返す。
【００３５】
コミット処理部２３０は、コミット固有処理が完了すると、コミット共通処理部２３１においてコミット共通処理を一度だけ実行し（ステップＣ９）、結果をトランザクション制御部２１０に返す。トランザクション制御部２１０は、コミット要求発行元のクライアント１００に応答を送信する。
【００３６】
ステップＣ６においてグループ化条件を満たしていない場合は、トランザクション制御部２１０は、クライアント１００へ応答を返却せず、次のコミット要求を受け付ける。このときクライアント１００は、コミット応答が戻ってくるまでブロックされる。
【００３７】
以上のように、本実施形態によれば、グループコミットによりスループットを向上させる一方で、トランザクションの特性に応じてＴＡＴを優先させることを可能にすることで、より実際の業務要件に即したチューニングが可能となる。
【００３８】
また、クライアント側でグループコミットを行うか否かの判定を行うため、サーバ（ＤＢＭＳ）の負荷を低減することができる。一般にサーバは１多重で動作しているのに対し、クライアントは複数多重で動いているため、クライアント側で判定を行うことにより、スループットをさらに向上させることができる。
【００３９】
また、ＤＢＭＳ２００は、クライアント１００からグループコミットの要求を受信した場合には、グループ化条件を満たすまで、コミット処理部２３０にコミット処理を通知しないようにしたので、グループコミットの実行によるＴＡＴの遅延を改善することができる。
【００４０】
なお、グループ化条件充足判定部２２１においては、本実施形態のようにコミット要求数に基づいてグループ化条件を判定する以外にも、アクセスするレコードサイズの総計、レコード数、またはタイムアウト時間等により判定するようにしてもよい。
【００４１】
本発明は、航空管制システムのようなシステム全体のスループットが高いレベルで保証される必要があるシステム、フライトプラン情報システムのようなシステム障害時でも永続性を保証する必要のあるシステム、さらに位置情報システムのように欠落は許容できてもＴＡＴを保証する必要があるシステムなど、異なる特性のトランザクションが混在するシステムに適用することができる。
【００４２】
上記の実施の形態の一部または全部は、以下の付記のようにも記載されうるが、以下には限られない。
（付記１）クライアントからのコミット要求を受信して、データベースマネジメントサーバにおいてコミット処理を行うデータベースシステムにおいて、
前記クライアントは、
あるトランザクションについてグループコミット要求を発行するか通常コミット要求を発行するかを判定し、判定結果に基づいて、前記データベースマネジメントサーバにグループコミット要求または通常コミット要求を発行するトランザクション特性判定部を備え、
前記データベースマネジメントサーバは、
前記クライアントからのコミット要求に基づいて、グループコミット処理または通常コミット処理を実行する、データベースシステム。
【００４３】
（付記２）前記トランザクション特性判定部は、
トランザクションにおいて更新対象となったレコードのサイズの合計がしきい値を超えた場合にはグループコミット要求を発行する、付記１に記載のデータベースシステム。
【００４４】
（付記３）前記トランザクション特性判定部は、
トランザクションにおいて更新対象となったテーブルの種類に基づいて、グループコミット要求を発行するか通常コミット要求を発行するかを判定する、付記１または２に記載のデータベースシステム。
【００４５】
（付記４）前記トランザクション特性判定部は、
トランザクションにおいて更新対象となったテーブル中の列の種類に基づいて、グループコミット要求を発行するか通常コミット要求を発行するかを判定する、付記１から３のいずれか１項に記載のデータベースシステム。
【００４６】
（付記５）前記データベースマネジメントサーバは、
コミット処理を実行するコミット処理部と、
前記クライアントからのコミット要求を受信し、受信した要求が通常コミット要求の場合には、前記コミット処理部に対して通常コミット要求を通知し、受信した要求がグループコミット要求の場合には、当該グループコミット要求を一時的に滞留させ、滞留しているグループコミット要求が一定数以上になったら、前記コミット処理部に対してグループコミット要求を通知する、付記１から４のいずれか１項に記載のデータベースシステム。
【００４７】
（付記６）クライアントからのコミット要求を受信して、データベースマネジメントサーバにおいてコミット処理を行うコミット方法において、
前記クライアントは、
あるトランザクションについてグループコミット要求を発行するか通常コミット要求を発行するかを判定し、判定結果に基づいて、前記データベースマネジメントサーバにグループコミット要求または通常コミット要求を発行し、
前記データベースマネジメントサーバは、
前記クライアントからのコミット要求に基づいて、グループコミット処理または通常コミット処理を実行する、方法。
【００４８】
（付記７）コンピュータを、
あるトランザクションについてグループコミット要求を発行するか通常コミット要求を発行するかを判定し、判定結果に基づいて、データベースマネジメントサーバにグループコミット要求または通常コミット要求を発行するトランザクション特性判定部として機能させるプログラム。
【符号の説明】
【００４９】
１０  データベースシステム、１００  クライアント、１１０  トランザクション特性判定部、１２０  更新要求フック部、１３０  ポイント保持部、１４０  トランザクション特性定義保持部、１５０  トランザクション特性設定部、２００  ＤＢＭＳ、２１０  トランザクション制御部、２２０  グループコミット要求格納部、２２１  グループ化条件充足判定部、２３０  コミット処理部、２３１  共通処理部、２３２  固有処理部
【図１】
2013200601.tif 000003
【図２】
2013200601.tif 000004
【図３】
2013200601.tif 000005
【図４】
2013200601.tif 000006
【図５】
2013200601.tif 000007
【図６】
2013200601.tif 000008
【図７】
2013200601.tif 000009
【図８】
2013200601.tif 000010
【図９】
2013200601.tif 000011