(57)【特許請求の範囲】
【請求項１】
目標のトランザクション性能を達成するためのトランザクションのロック待ち時間を除く処理時間を算出する装置であって、
第１のレコードを含む少なくとも２つのレコードを更新するトランザクションのレートである第１のレートと、第２のレコードを含む少なくとも２つのレコードを更新するトランザクションのレートである第２のレートと、当該第１のレコード及び当該第２のレコードを含む少なくとも２つのレコードを更新するトランザクションであって、当該第１のレコード及び当該第２のレコードについては、当該第１のレコード、当該第２のレコードの順番で更新するトランザクションのレートである第３のレートとを取得するレート取得部と、
トランザクションの目標の応答時間を取得する応答時間取得部と、
前記応答時間取得部により取得された前記応答時間のうちの前記第１のレコードのロック待ち時間である第１の待ち時間及び前記第１のレコードのロック保持時間である第１の保持時間をそれぞれＭ／Ｍ／１待ち行列モデルのサービス待ち時間及びサービス時間として、Ｍ／Ｍ／１待ち行列モデルの第１段階の適用を行うことにより、前記レート取得部により取得された前記第１のレートと、前記応答時間取得部により取得された前記応答時間とに基づいて、当該第１の保持時間を算出する第１の算出部と、
前記第１の算出部により算出された前記第１の保持時間のうちの前記第２のレコードのロック待ち時間である第２の待ち時間及び前記第２のレコードのロック保持時間である第２の保持時間をそれぞれＭ／Ｍ／１待ち行列モデルのサービス待ち時間及びサービス時間として、Ｍ／Ｍ／１待ち行列モデルの第２段階の適用を行うことにより、前記レート取得部により取得された前記第２のレート及び前記第３のレートと、前記第１の算出部により算出された前記第１の保持時間とに基づいて、当該第２の保持時間を算出する第２の算出部と、
前記第２の算出部により算出された前記第２の保持時間を出力する出力部と
を含む、装置。
【請求項２】
前記第１の算出部は、式
【数１】
0005731332.tif 000020
を用いて、前記第１の保持時間を算出し、
前記第２の算出部は、式
【数２】
0005731332.tif 000021
を用いて、前記第２の保持時間を算出する、請求項１の装置（Raは前記第１のレートであり、Rbは前記第２のレートであり、Rabは前記第３のレートであり、Trespは前記応答時間であり、Tsaは前記第１の保持時間であり、Tsbは前記第２の保持時間である）。
【請求項３】
目標のトランザクション性能を達成するためのトランザクションのロック待ち時間を除く処理時間を算出する装置であって、
第１のレコードを更新するトランザクションのレートである第１のレートと、第２のレコードを更新するトランザクションのレートである第２のレートと、当該第１のレコード及び当該第２のレコードを、当該第１のレコード、当該第２のレコードの順番で更新するトランザクションのレートである第３のレートとを取得するレート取得部と、
トランザクションの目標の応答時間を取得する応答時間取得部と、
前記第１のレコードのロック待ち時間である第１の待ち時間及び前記第１のレコードのロック保持時間である第１の保持時間をそれぞれＭ／Ｍ／１待ち行列モデルのサービス待ち時間及びサービス時間として、Ｍ／Ｍ／１待ち行列モデルの第１段階の適用を行い、前記第２のレコードのロック待ち時間である第２の待ち時間及び前記第２のレコードのロック保持時間である第２の保持時間をそれぞれＭ／Ｍ／１待ち行列モデルのサービス待ち時間及びサービス時間として、Ｍ／Ｍ／１待ち行列モデルの第２段階の適用を行うことにより、前記レート取得部により取得された前記第１のレート、前記第２のレート及び前記第３のレートと、前記応答時間取得部により取得された前記応答時間とに基づいて、当該第２の保持時間を算出する算出部と、
前記算出部により算出された前記第２の保持時間を出力する出力部と
を含む、装置。
【請求項４】
前記算出部は、式
【数３】
0005731332.tif 000022
を用いて、前記第２の保持時間を算出する、請求項３の装置（Raは前記第１のレートであり、Rbは前記第２のレートであり、Rabは前記第３のレートであり、Trespは前記応答時間であり、Tsbは前記第２の保持時間である）。
【請求項５】
前記算出部は、
Ｍ／Ｍ／１待ち行列モデルの前記第１段階の適用を行うことにより、前記レート取得部により取得された前記第１のレートと、前記応答時間取得部により取得された前記応答時間とに基づいて、前記第１の保持時間を算出する第１の算出部と、
Ｍ／Ｍ／１待ち行列モデルの前記第２段階の適用を行うことにより、前記レート取得部により取得された前記第２のレート及び前記第３のレートと、前記第１の算出部により算出された前記第１の保持時間とに基づいて、前記第２の保持時間を算出する第２の算出部と
を含む、請求項３又は請求項４の装置。
【請求項６】
前記算出部は、
Ｍ／Ｍ／１待ち行列モデルの前記第１段階の適用を行うことにより、前記レート取得部により取得された前記第１のレート及び前記第３のレートと、前記応答時間取得部により取得された前記応答時間とに基づいて、前記第１の保持時間を算出する第１の算出部と、
Ｍ／Ｍ／１待ち行列モデルの前記第２段階の適用を行うことにより、前記レート取得部により取得された前記第２のレートと、前記第１の算出部により算出された前記第１の保持時間とに基づいて、前記第２の保持時間を算出する第２の算出部と
を含む、請求項３又は請求項４の装置。
【請求項７】
コンピュータが、目標のトランザクション性能を達成するためのトランザクションのロック待ち時間を除く処理時間を算出する方法であって、
前記コンピュータが、第１のレコードを更新するトランザクションのレートである第１のレートと、第２のレコードを更新するトランザクションのレートである第２のレートと、当該第１のレコード及び当該第２のレコードを、当該第１のレコード、当該第２のレコードの順番で更新するトランザクションのレートである第３のレートとを取得するステップと、
前記コンピュータが、トランザクションの目標の応答時間を取得するステップと、
前記コンピュータが、前記第１のレコードのロック待ち時間である第１の待ち時間及び前記第１のレコードのロック保持時間である第１の保持時間をそれぞれＭ／Ｍ／１待ち行列モデルのサービス待ち時間及びサービス時間として、Ｍ／Ｍ／１待ち行列モデルの第１段階の適用を行い、前記第２のレコードのロック待ち時間である第２の待ち時間及び前記第２のレコードのロック保持時間である第２の保持時間をそれぞれＭ／Ｍ／１待ち行列モデルのサービス待ち時間及びサービス時間として、Ｍ／Ｍ／１待ち行列モデルの第２段階の適用を行うことにより、前記第１のレートと、前記第２のレートと、前記第３のレートと、前記応答時間とに基づいて、当該第２の保持時間を算出するステップと、
前記コンピュータが、算出された前記第２の保持時間を出力するステップと
を含む、方法。
【請求項８】
目標のトランザクション性能を達成するためのトランザクションのロック待ち時間を除く処理時間を算出する装置としてコンピュータを機能させるプログラムであって、
前記コンピュータを、
第１のレコードを更新するトランザクションのレートである第１のレートと、第２のレコードを更新するトランザクションのレートである第２のレートと、当該第１のレコード及び当該第２のレコードを、当該第１のレコード、当該第２のレコードの順番で更新するトランザクションのレートである第３のレートとを取得するレート取得部と、
トランザクションの目標の応答時間を取得する応答時間取得部と、
前記応答時間取得部により取得された前記応答時間のうちの前記第１のレコードのロック待ち時間である第１の待ち時間及び前記第１のレコードのロック保持時間である第１の保持時間をそれぞれＭ／Ｍ／１待ち行列モデルのサービス待ち時間及びサービス時間として、Ｍ／Ｍ／１待ち行列モデルの第１段階の適用を行うことにより、前記レート取得部により取得された前記第１のレートと、前記応答時間取得部により取得された前記応答時間とに基づいて、当該第１の保持時間を算出する第１の算出部と、
前記第１の算出部により算出された前記第１の保持時間のうちの前記第２のレコードのロック待ち時間である第２の待ち時間及び前記第２のレコードのロック保持時間である第２の保持時間をそれぞれＭ／Ｍ／１待ち行列モデルのサービス待ち時間及びサービス時間として、Ｍ／Ｍ／１待ち行列モデルの第２段階の適用を行うことにより、前記レート取得部により取得された前記第２のレート及び前記第３のレートと、前記第１の算出部により算出された前記第１の保持時間とに基づいて、当該第２の保持時間を算出する第２の算出部と、
前記第２の算出部により算出された前記第２の保持時間を出力する出力部と
して機能させる、プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、トランザクションの処理時間を算出する装置及び方法に関する。特に、本発明は、目標のトランザクション性能を達成するためのトランザクションのロック待ち時間を除く処理時間を算出する装置及び方法に関する。
【背景技術】
【０００２】
待ち行列モデルを利用した情報処理技術として、例えば特許文献１〜５の技術がある。
特許文献１の技術では、平均処理時間とデータ件数とに関する条件が設定され、各条件のときに競合回避方式とポインタ方式のいずれのアクセス方式を選択するかが規定されたアクセス制御テーブルを、Ｍ／Ｍ／１モデルで検証することによって決定する。
【０００３】
特許文献２の技術では、データストリームｊ中のデータを２次バッファへの退避なしに１次バッファに蓄積するための領域のサイズＢjを、多元Ｍ／Ｍ／１型の近似を行うことで近似表現された、１次バッファから２次バッファへのデータの退避処理における待ち合わせ時間ｗ1jと、２次バッファから１次バッファへのデータの復帰処理における待ち合わせ時間ｗ2jとを用いて、設定する。
【０００４】
特許文献３の技術は、システム内に存在する任意のオブジェクトに対する複製データの一貫性を集中管理する放送局サイトと、任意のオブジェクトに対する複製データをそれぞれ有し、超多地点に分散している複数のＤＢサイトと、更新を許可するか否かの情報等を放送局サイトから各ＤＢサイトに放送により配信するための衛星とを含む分散型データベースシステムにおいて、Ｍ／Ｍ／１型待ち行列でモデル化することにより、各ＤＢサイト、放送局サイトおよび衛星間のアクセス動作シーケンスの全処理時間Ｅａｌｌの値を評価することを開示する。
【０００５】
特許文献４の技術は、負荷発生部が、複数のトランザクションを発生し、トランザクション処理部が、その複数のトランザクションを処理し、コンピュータが、単位時間辺りに発生する割合で各トランザクションの処理要求数を少量から段階的に増加させて処理要求を実行させ、各段階において、トランザクションの処理時間とトランザクションの処理要求数とから待ち行列モデル理論を利用してトランザクションの平均処理待ち時間を計算し、平均処理待ち時間と実際の処理待ち時間の差が大きい場合に、ファイルロックの競合の発生の有無を調べる性能劣化要因検出システムを開示する。
【０００６】
特許文献５の技術では、一方のデータベースが故障した時、他方のデータベースが未だアクティブでなければ、それが直ちにアクティブ状態に再割り当てされ、その故障中の後続の照会及び更新を処理し続ける。その故障したデータベースが修復され再開される時、すべてのレコードがそこからフラッシュされ、その故障したデータベースは、アクティブ・データベースを通した単一パスにおけるインターリーブした複写及び更新オペレーションを使用して再構成される。後続のトランザクション及び複写オペレーションは、後続のトランザクションの数が増加したことに応答して複写オペレーションを抑制するために、待ち行列閾値法に従ってインターリーブされる。トランザクション処理システムは、故障中及び回復活動中の両方とも動作状態のままであり、ダウン時間なしに完全な回復を得る。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００２−３５１７２６号公報
【特許文献２】特開平１０−２００５７４号公報
【特許文献３】特開平１１−２３４２６９号公報
【特許文献４】特開２００６−２５２１７６号公報
【特許文献５】特開平７−２６２０６８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
ところで、トランザクション処理のスループットを決める大きな要因に、処理の並列度を阻害する特定資源への競合がある。中でも、データベースを更新する際の排他制御によるロック待ちが課題である。例えば、特定人気商品のデータベースレコードにロックが集中する場合、スループットはそのデータベースレコードへのロック競合状態に支配される。また、１つのトランザクションでロックが１つのレコードではなく複数のレコードに集中する場合、スループットを向上させることは更に困難となる。
【０００９】
このような厳しいロック競合を前提としたシステムにおいて、目標のスループットを満足するためのトランザクションの処理時間を求めるのは容易ではない。１つのレコードでロック競合が起こる場合は、ロック待ち時間を考慮しなければ、単純にスループットの逆数から処理時間の限界値が分かる。例えば１秒当たり５０トランザクションのスループットを達成するには、ロック待ち時間を除く処理時間が２０ミリ秒を超えないようにすればよい。
これに対し、２つのレコードでロック競合が起こる場合は、一方のレコードのロックを保持しつつ他方のレコードのロック待ちも想定しなければならない。従って、ロック待ち時間を無視した単純計算では処理時間の限界値は求められない。
【００１０】
ここで、上述したように、情報処理の分野で待ち行列モデルを利用することは既に行われていた。
しかしながら、特許文献１〜５の何れの技術も、１つのトランザクションで２つのレコードのロックが必要な場合において、目標のスループットを満足するためのトランザクションのロック待ち時間を除く処理時間を求める手法を開示するものではない。
【００１１】
本発明の目的は、１つのトランザクションで２つのレコードのロックが必要な場合において、目標の性能を達成するためのトランザクションのロック待ち時間を除く処理時間を求めることにある。
【課題を解決するための手段】
【００１２】
かかる目的のもと、本発明は、目標のトランザクション性能を達成するためのトランザクションのロック待ち時間を除く処理時間を算出する装置であって、第１のレコードを含む少なくとも２つのレコードを更新するトランザクションのレートである第１のレートと、第２のレコードを含む少なくとも２つのレコードを更新するトランザクションのレートである第２のレートと、第１のレコード及び第２のレコードを含む少なくとも２つのレコードを更新するトランザクションのレートである第３のレートとを取得するレート取得部と、トランザクションの目標の応答時間を取得する応答時間取得部と、応答時間取得部により取得された応答時間のうちの第１のレコードのロック待ち時間である第１の待ち時間及び第１のレコードのロック保持時間である第１の保持時間をそれぞれＭ／Ｍ／１待ち行列モデルのサービス待ち時間及びサービス時間として、Ｍ／Ｍ／１待ち行列モデルの第１段階の適用を行うことにより、レート取得部により取得された第１のレートと、応答時間取得部により取得された応答時間とに基づいて、第１の保持時間を算出する第１の算出部と、第１の算出部により算出された第１の保持時間のうちの第２のレコードのロック待ち時間である第２の待ち時間及び第２のレコードのロック保持時間である第２の保持時間をそれぞれＭ／Ｍ／１待ち行列モデルのサービス待ち時間及びサービス時間として、Ｍ／Ｍ／１待ち行列モデルの第２段階の適用を行うことにより、レート取得部により取得された第２のレート及び第３のレートと、第１の算出部により算出された第１の保持時間とに基づいて、第２の保持時間を算出する第２の算出部と、第２の算出部により算出された第２の保持時間を出力する出力部とを含む、装置を提供する。
【００１３】
ここで、第１の算出部は、式
【数１】
0005731332.tif 000002
を用いて、第１の保持時間を算出し、第２の算出部は、式
【数２】
0005731332.tif 000003
を用いて、第２の保持時間を算出する、ものであってよい（Raは第１のレートであり、Rbは第２のレートであり、Rabは第３のレートであり、Trespは応答時間であり、Tsaは第１の保持時間であり、Tsbは第２の保持時間である）。
【００１４】
また、本発明は、目標のトランザクション性能を達成するためのトランザクションのロック待ち時間を除く処理時間を算出する装置であって、第１のレコードを更新するトランザクションのレートである第１のレートと、第２のレコードを更新するトランザクションのレートである第２のレートと、第１のレコード及び第２のレコードを更新するトランザクションのレートである第３のレートとを取得するレート取得部と、トランザクションの目標の応答時間を取得する応答時間取得部と、第１のレコードのロック待ち時間である第１の待ち時間及び第１のレコードのロック保持時間である第１の保持時間をそれぞれＭ／Ｍ／１待ち行列モデルのサービス待ち時間及びサービス時間として、Ｍ／Ｍ／１待ち行列モデルの第１段階の適用を行い、第２のレコードのロック待ち時間である第２の待ち時間及び第２のレコードのロック保持時間である第２の保持時間をそれぞれＭ／Ｍ／１待ち行列モデルのサービス待ち時間及びサービス時間として、Ｍ／Ｍ／１待ち行列モデルの第２段階の適用を行うことにより、レート取得部により取得された第１のレート、第２のレート及び第３のレートと、応答時間取得部により取得された応答時間とに基づいて、第２の保持時間を算出する算出部と、算出部により算出された第２の保持時間を出力する出力部とを含む、装置も提供する。
【００１５】
ここで、算出部は、式
【数３】
0005731332.tif 000004
を用いて、第２の保持時間を算出する、ものであってよい（Raは第１のレートであり、Rbは第２のレートであり、Rabは第３のレートであり、Trespは応答時間であり、Tsbは第２の保持時間である）。
【００１６】
また、算出部は、Ｍ／Ｍ／１待ち行列モデルの第１段階の適用を行うことにより、レート取得部により取得された第１のレートと、応答時間取得部により取得された応答時間とに基づいて、第１の保持時間を算出する第１の算出部と、Ｍ／Ｍ／１待ち行列モデルの第２段階の適用を行うことにより、レート取得部により取得された第２のレート及び第３のレートと、第１の算出部により算出された第１の保持時間とに基づいて、第２の保持時間を算出する第２の算出部とを含む、ものであってもよい。
【００１７】
或いは、算出部は、Ｍ／Ｍ／１待ち行列モデルの第１段階の適用を行うことにより、レート取得部により取得された第１のレート及び第３のレートと、応答時間取得部により取得された応答時間とに基づいて、第１の保持時間を算出する第１の算出部と、Ｍ／Ｍ／１待ち行列モデルの第２段階の適用を行うことにより、レート取得部により取得された第２のレートと、第１の算出部により算出された第１の保持時間とに基づいて、第２の保持時間を算出する第２の算出部とを含む、ものであってもよい。
【００１８】
更に、本発明は、コンピュータが、目標のトランザクション性能を達成するためのトランザクションのロック待ち時間を除く処理時間を算出する方法であって、コンピュータが、第１のレコードを更新するトランザクションのレートである第１のレートと、第２のレコードを更新するトランザクションのレートである第２のレートと、第１のレコード及び第２のレコードを更新するトランザクションのレートである第３のレートとを取得するステップと、コンピュータが、トランザクションの目標の応答時間を取得するステップと、コンピュータが、第１のレコードのロック待ち時間である第１の待ち時間及び第１のレコードのロック保持時間である第１の保持時間をそれぞれＭ／Ｍ／１待ち行列モデルのサービス待ち時間及びサービス時間として、Ｍ／Ｍ／１待ち行列モデルの第１段階の適用を行い、第２のレコードのロック待ち時間である第２の待ち時間及び第２のレコードのロック保持時間である第２の保持時間をそれぞれＭ／Ｍ／１待ち行列モデルのサービス待ち時間及びサービス時間として、Ｍ／Ｍ／１待ち行列モデルの第２段階の適用を行うことにより、第１のレートと、第２のレートと、第３のレートと、応答時間とに基づいて、第２の保持時間を算出するステップと、コンピュータが、算出された第２の保持時間を出力するステップとを含む、方法も提供する。
【００１９】
更にまた、本発明は、目標のトランザクション性能を達成するためのトランザクションのロック待ち時間を除く処理時間を算出する装置としてコンピュータを機能させるプログラムであって、コンピュータを、第１のレコードを更新するトランザクションのレートである第１のレートと、第２のレコードを更新するトランザクションのレートである第２のレートと、第１のレコード及び第２のレコードを更新するトランザクションのレートである第３のレートとを取得するレート取得部と、トランザクションの目標の応答時間を取得する応答時間取得部と、応答時間取得部により取得された応答時間のうちの第１のレコードのロック待ち時間である第１の待ち時間及び第１のレコードのロック保持時間である第１の保持時間をそれぞれＭ／Ｍ／１待ち行列モデルのサービス待ち時間及びサービス時間として、Ｍ／Ｍ／１待ち行列モデルの第１段階の適用を行うことにより、レート取得部により取得された第１のレートと、応答時間取得部により取得された応答時間とに基づいて、第１の保持時間を算出する第１の算出部と、第１の算出部により算出された第１の保持時間のうちの第２のレコードのロック待ち時間である第２の待ち時間及び第２のレコードのロック保持時間である第２の保持時間をそれぞれＭ／Ｍ／１待ち行列モデルのサービス待ち時間及びサービス時間として、Ｍ／Ｍ／１待ち行列モデルの第２段階の適用を行うことにより、レート取得部により取得された第２のレート及び第３のレートと、第１の算出部により算出された第１の保持時間とに基づいて、第２の保持時間を算出する第２の算出部と、第２の算出部により算出された第２の保持時間を出力する出力部として機能させる、プログラムも提供する。
【発明の効果】
【００２０】
本発明によれば、１つのトランザクションで２つのレコードのロックが必要な場合において、目標の性能を達成するためのトランザクションのロック待ち時間を除く処理時間を求めることができる。
【図面の簡単な説明】
【００２１】
【図１】本発明の実施の形態における目標のスループットを満たすためのトランザクション処理時間の算出方法について説明するための図である。
【図２】本発明の実施の形態における処理時間算出装置の機能構成例を示したブロック図である。
【図３】本発明の実施の形態における処理時間算出装置の動作例を示したフローチャートである。
【図４】本発明の実施の形態における処理時間算出装置の処理結果の具体例を示した図である。
【図５】本発明の実施の形態を適用可能なコンピュータのハードウェア構成を示した図である。
【発明を実施するための形態】
【００２２】
以下、添付図面を参照して、本発明の実施の形態について詳細に説明する。
本実施の形態では、待ち行列理論におけるサーバ、サービス時間、サービス待ち時間を、それぞれ、ロック競合におけるロック対象レコード、ロック保持時間、ロック待ち時間として、特定レコードを１つのサーバとするＭ／Ｍ／１待ち行列モデル（以下、単に「Ｍ／Ｍ／１モデル」という）をロック競合に適用する。
具体的には、１つのトランザクションで２つのレコードのロックを保持することが必要となる場合において、１番目のロック及び２番目のロックに２段階にＭ／Ｍ／１モデルを適用する。これにより、与えられたトランザクションスループットを出すためのロック待ち時間を除いた純粋なトランザクション処理時間の上限を求める。
【００２３】
そのために、本実施の形態では、まず、トランザクションで更新される２つのレコードがレコードＡ及びレコードＢであるものとし、トランザクションを以下の３つのタイプに分類する。
第１のタイプは、レコードＡと、レコードＢ以外のレコードとを更新するトランザクションのタイプである。本実施の形態では、このタイプのトランザクションを「トランザクション［Ａ−Ｂ］」と表記する。
第２のタイプは、レコードＡと、レコードＢとを更新するトランザクションのタイプである。本実施の形態では、このタイプのトランザクションを「トランザクション［Ａ＆Ｂ］」と表記する。
第３のタイプは、レコードＡ以外のレコードと、レコードＢとを更新するトランザクションのタイプである。本実施の形態では、このタイプのトランザクションを「トランザクション［Ｂ−Ａ］」と表記する。
尚、１つのトランザクション内では、デッドロックの発生を避けるために、２つのレコードをレコードキーが小さい方から更新することにする。例えば、レコードＡ及びレコードＢについては、レコードＡの方がレコードキーが小さいものとし、レコードＡ、レコードＢの順番で更新するものとする。
【００２４】
また、本実施の形態では、レコードＡ、ＢのロックをそれぞれロックＡ、Ｂとし、以下の要件を与える。
第１の要件は、トランザクションのレスポンスタイムである。これには、ロックＡの待ち時間及びロックＢの待ち時間が含まれる。本実施の形態では、このトランザクションレスポンスタイムをTrespと表記する。
第２の要件は、ロックＡを取得するトランザクションのトランザクションレートである。本実施の形態では、このトランザクションレートをRaと表記する。
第３の要件は、ロックＢを取得するトランザクションのトランザクションレートである。本実施の形態では、このトランザクションレートをRbと表記する。
第４の要件は、ロックＡ及びロックＢを取得するトランザクションのトランザクションレートである。本実施の形態では、このトランザクションレートをRabと表記する。
また、第３の要件及び第４の要件から、ロックＢを取得するトランザクションのうち、ロックＡを取得しないトランザクションの比率を求めておく。本実施の形態では、この比率をrと表記する。比率rは、次の式により算出される。
【数４】
0005731332.tif 000005
【００２５】
図１は、与えられたトランザクションスループットを満たすための純粋なトランザクション処理時間の上限を算出する方法について模式的に示した図である。尚、本実施の形態では、各トランザクションが２つのレコードを更新するものとして説明するが、３つ以上のレコードを更新するものであってもよい。但し、レコードＡ及びレコードＢ以外のレコードでは競合が起こらないものとする。
【００２６】
図中、太矢印２０１は、トランザクション［Ａ−Ｂ］がロックＡを取得しようとしていることを示す。トランザクション［Ａ−Ｂ］のトランザクションレートは、太矢印２０１内に示すようにRa-Rabである。このトランザクション［Ａ−Ｂ］は、破線矢印２２１で示すように、ロックＡの待ち時間Twaだけ処理を待たされた後、細矢印２４１で示すように、ロックＡを取得して、ロックＡの保持時間Tsaの間、処理を行う。
【００２７】
また、太矢印２０２は、トランザクション［Ａ＆Ｂ］がロックＡを取得しようとしていることを示す。トランザクション［Ａ＆Ｂ］のトランザクションレートは、太矢印２０２内に示すようにRabである。このトランザクション［Ａ＆Ｂ］は、破線矢印２２１で示すように、ロックＡの待ち時間Twaだけ処理を待たされた後、ロックＡを取得して、ロックＡの保持時間Tsaの間、処理を行う。その際、トランザクション［Ａ＆Ｂ］は、ロックＡを取得してから時間tの経過後、細矢印２６１で示すようにロックＢを要求し、破線矢印２２２で示すようにロックＢを待たされた後、細矢印２４２で示すようにロックＢを取得して処理を行う。
【００２８】
本実施の形態では、このようなトランザクション［Ａ−Ｂ］及びトランザクション［Ａ＆Ｂ］による処理に対して、Ｍ／Ｍ／１モデルの第１段階の適用を行う。具体的には、ロックＡの待ち時間Twa、ロックＡの保持時間Tsa、トランザクションレートRaを、それぞれ、待ち行列理論のサービス待ち時間、サービス時間、到着率に当てはめて、ロックＡの保持時間Tsaを算出する。尚、ロックＡの保持時間Tsaの算出方法については、後で詳しく述べる。
【００２９】
一方、図中、太矢印２０３は、トランザクション［Ｂ−Ａ］がロックＢを取得しようとしていることを示す。トランザクション［Ｂ−Ａ］のトランザクションレートは、太矢印２０３内に示すようにRb-Rabである。このトランザクション［Ｂ−Ａ］は、破線矢印２２２で示すように、ロックＢの待ち時間Twbだけ処理を待たされた後、細矢印２４２で示すように、ロックＢを取得して、ロックＢの保持時間Tsbの間、処理を行う。
【００３０】
本実施の形態では、このようなトランザクション［Ｂ−Ａ］による処理に対して、Ｍ／Ｍ／１モデルの第２段階の適用を行う。具体的には、ロックＢの待ち時間Twb、ロックＢの保持時間Tsb、トランザクションレートRb-Rabを、それぞれ、待ち行列理論のサービス待ち時間、サービス時間、到着率に当てはめて、ロックＢの保持時間Tsbを算出する。このロックＢの保持時間Tsbが、レコードＡ及びレコードＢのロックを取得した後の処理時間であり、ロック待ちを除いた純粋なトランザクション処理時間である。尚、ロックＢの保持時間Tsbの算出方法については、後で詳しく述べる。
【００３１】
図２は、このような処理時間の算出を行う処理時間算出装置１０の機能構成例を示したブロック図である。尚、処理時間算出装置１０は、コンピュータのＣＰＵ９０ａ（図５参照）が処理時間算出用プログラムを例えば磁気ディスク装置９０ｇ（図５参照）からメインメモリ９０ｃ（図５参照）に読み込んで実行することによってコンピュータ内に実現されるものである。
図示するように、処理時間算出装置１０は、競合要件取得部１１と、競合分析部１２と、競合分析結果記憶部１３と、性能要件取得部１４と、第１解析部１５と、第１解析結果記憶部１６と、第２解析部１７と、第２解析結果出力部１８とを備える。
【００３２】
競合要件取得部１１は、ロックの競合に関する要件（競合要件）を取得する。具体的には、ロックＡを取得するトランザクションのトランザクションレートRa、ロックＢを取得するトランザクションのトランザクションレートRb、ロックＡ及びロックＢを取得するトランザクションのトランザクションレートRabを取得する。尚、これらの競合要件は、磁気ディスク装置９０ｇ（図５参照）にコンピュータが記憶しておいた情報から取得してもよいし、ユーザがキーボード／マウス９０ｉ（図５参照）を用いて入力した情報から取得してもよい。本実施の形態では、第１のレコードを含む少なくとも２つのレコードを更新するトランザクションのレートである第１のレート、第１のレコードを更新するトランザクションのレートである第１のレートの一例として、トランザクションレートRaを用いており、第２のレコードを含む少なくとも２つのレコードを更新するトランザクションのレートである第２のレート、第２のレコードを更新するトランザクションのレートである第２のレートの一例として、トランザクションレートRbを用いており、第１のレコード及び第２のレコードを含む少なくとも２つのレコードを更新するトランザクションのレートである第３のレート、第１のレコード及び第２のレコードを更新するトランザクションのレートである第３のレートの一例として、トランザクションレートRabを用いている。また、第１のレートと第２のレートと第３のレートとを取得するレート取得部の一例として、競合要件取得部１１を設けている。
【００３３】
競合分析部１２は、競合要件取得部１１が取得したトランザクションレートを受け取り、このトランザクションレートに基づいて、ロックＢを取得するトランザクションのうちのロックＡを取得しないトランザクションの、ロックＢを取得するトランザクションに対する比率rを算出する。
競合分析結果記憶部１３は、競合分析部１２が受け取ったトランザクションレートと、競合分析部１２が算出した比率rとを競合分析結果として記憶する。
【００３４】
性能要件取得部１４は、トランザクションの処理性能に関する要件（性能要件）を取得する。具体的には、トランザクションレスポンスタイムTrespを取得する。尚、この性能要件は、磁気ディスク装置９０ｇ（図５参照）にコンピュータが記憶しておいた情報から取得してもよいし、ユーザがキーボード／マウス９０ｉ（図５参照）を用いて入力した情報から取得してもよい。本実施の形態では、トランザクションの目標の応答時間の一例として、トランザクションレスポンスタイムTrespを用いている。また、目標の応答時間を取得する応答時間取得部の一例として、性能要件取得部１４を設けている。
【００３５】
第１解析部１５は、ロックＡの待ち時間Twa及びロックＡの保持時間TsaをＭ／Ｍ／１モデルのサービス待ち時間及びサービス時間としてＭ／Ｍ／１モデルを適用することにより、第１段階のＭ／Ｍ／１解析処理を行う。具体的には、ロックＢの待ち時間を含むロックＡの保持時間Tsaを、競合分析結果記憶部１３に記憶されたトランザクションレートRaと、性能要件取得部１４が取得したトランザクションレスポンスタイムTrespとを用いて、算出する。本実施の形態では、第１のレコードのロック待ち時間である第１の待ち時間の一例として、ロックＡの待ち時間Twaを用いており、第１のレコードのロック保持時間である第１の保持時間の一例として、ロックＡの保持時間Tsaを用いている。また、第１の保持時間を算出する第１の算出部の一例として、第１解析部１５を設けている。
【００３６】
第１解析結果記憶部１６は、第１段階のＭ／Ｍ／１解析処理の結果を記憶する。具体的には、第１解析部１５が算出したロックＡの保持時間Tsaを記憶する。
【００３７】
第２解析部１７は、ロックＢの待ち時間Twb及びロックＢの保持時間TsbをＭ／Ｍ／１モデルのサービス待ち時間及びサービス時間としてＭ／Ｍ／１モデルを適用することにより、第２段階のＭ／Ｍ／１解析処理を行う。具体的には、競合要件取得部１１及び性能要件取得部１４が取得した要件の下で許容されるロックＢの保持時間Tsbを、競合分析結果記憶部１３に記憶されたトランザクションレートRb及び比率ｒと、第１解析結果記憶部１６に記憶されたロックＡの保持時間Tsaとを用いて、算出する。尚、ロックＢの保持時間Tsbを算出する際、ロックＡの取得からロックＢの要求までの時間tは十分小さいものと考え、t = 0とする。本実施の形態では、第２のレコードのロック待ち時間である第２の待ち時間の一例として、ロックＢの待ち時間Twbを用いており、第２のレコードのロック保持時間である第２の保持時間の一例として、ロックＢの保持時間Tsbを用いている。また、第２の保持時間を算出する第２の算出部の一例として、第２解析部１７を設けている。
【００３８】
第２解析結果出力部１８は、第２段階のＭ／Ｍ／１解析処理の結果を表示機構９０ｄ（図５参照）に出力する。具体的には、第２解析部１７が算出したロックＢの保持時間Tsbを表示機構９０ｄ（図５参照）に出力する。本実施の形態では、第２の保持時間を出力する出力部の一例として、第２解析結果出力部１８を設けている。
【００３９】
図３は、処理時間算出装置１０の動作例を示したフローチャートである。
図示するように、処理時間算出装置１０では、まず、競合要件取得部１１が、競合要件として、ロックＡを取得するトランザクションのトランザクションレートRa、ロックＢを取得するトランザクションのトランザクションレートRb、ロックＡ及びロックＢを取得するトランザクションのトランザクションレートRabを取得する（ステップ１０１）。
【００４０】
すると、競合分析部１２が、ステップ１０１で取得されたトランザクションレートRb、Rabに基づいて、ロックＢを取得するトランザクションのうちのロックＡを取得しないトランザクションの、ロックＢを取得するトランザクションに対する比率rを算出する（ステップ１０２）。具体的には、次の計算を行うことにより、比率rを算出する。
【数５】
0005731332.tif 000006
そして、競合分析部１２は、ステップ１０１で取得されたトランザクションレートRa、Rbと、ステップ１０２で算出された比率rとを、競合分析結果記憶部１３に記憶する（ステップ１０３）。
【００４１】
また、処理時間算出装置１０では、性能要件取得部１４が、性能要件として、トランザクションレスポンスタイムTrespを取得する（ステップ１０４）。
すると、第１解析部１５が、第１段階のＭ／Ｍ／１解析処理として、ステップ１０３で記憶されたトランザクションレートRaと、ステップ１０４で取得されたトランザクションレスポンスタイムTrespとに基づいて、ロックＡの保持時間Tsaを算出する処理を行う（ステップ１０５）。
【００４２】
ここで、ロックＡの保持時間Tsaを算出する処理について、詳細に説明する。
まず、Ｍ／Ｍ／１モデルから、以下の関係が成り立つ（ρaはロックＡの利用率）。
【数６】
0005731332.tif 000007
これにより、トランザクションレスポンスタイムTrespは、以下のように展開される。
【数７】
0005731332.tif 000008
更に式を以下のように展開し、TsaをTrespとRaとから算出する式を求め、この式を用いてロックＡの保持時間Tsaを算出する。
【数８】
0005731332.tif 000009
【００４３】
そして、第１解析部１５は、ステップ１０５で算出されたロックＡの保持時間Tsaを、第１解析結果記憶部１６に記憶する（ステップ１０６）。
【００４４】
更に、処理時間算出装置１０では、第２解析部１７が、第２段階のＭ／Ｍ／１解析処理として、ステップ１０３で記憶されたトランザクションレートRb及び比率rと、ステップ１０６で記憶されたロックＡの保持時間Tsaとに基づいて、ロックＢの保持時間Tsbを算出する処理を行う（ステップ１０７）。
【００４５】
ここで、ロックＢの保持時間Tsbを算出する処理について、詳細に説明する。
まず、Ｍ／Ｍ／１モデルから、以下の関係が成り立つ（ρbはロックＢの利用率）。
【数９】
0005731332.tif 000010
これにより、ロックＡの保持時間Tsaは、以下のように展開される。
【数１０】
0005731332.tif 000011
更に式を以下のように展開し、TsbをTsaとrとRbとから算出する式を求め、この式を用いてロックＢの保持時間Tsbを算出する。
【数１１】
0005731332.tif 000012
【００４６】
そして、第２解析結果出力部１８は、ステップ１０７で算出されたロックＢの保持時間Tsbを表示機構９０ｄ（図５参照）に出力し、表示機構９０ｄ（図５参照）が、ロックＢの保持時間Tsbを表示する（ステップ１０８）。
【００４７】
ここで、以上の動作を、具体的な数値を用いて説明する。
図４は、このときの各変数に格納される具体的な数値について示したものである。
まず、ステップ１０１で、競合要件取得部１１が、「Ra = 120トランザクション/秒、Rb = 80トランザクション/秒、Rab= 30トランザクション/秒」を、競合要件として取得したとする。
また、ステップ１０４で、性能要件取得部１４が、「Tresp = 1.0秒」を、性能要件として取得したとする。
すると、ステップ１０５では、次の計算を行うことにより、「第１段階Ｍ／Ｍ／１解析処理」欄に示すように、「Tresp = 1.0秒」、「Ra = 120トランザクション/秒」から、「Tsa = 8.3ミリ秒」が得られる。
【数１２】
0005731332.tif 000013
【００４８】
更に、ステップ１０７では、次の計算を行うことにより、「第２段階Ｍ／Ｍ／１解析処理」欄に示すように、「Tsa = 8.3ミリ秒」、「Rb = 80トランザクション/秒」、「Rab= 30トランザクション/秒」から、「Tsb = 5.8ミリ秒」が得られる（図では太線で囲んで示している）。
【数１３】
0005731332.tif 000014
【００４９】
以上により、ロック待ちを含まない純粋なトランザクション処理時間が5.8ミリ秒以内であれば、目標のトランザクションスループットを達成できることが分かる。
【００５０】
尚、図２及び図３では、ロックＡの保持時間TsaからロックＢの保持時間Tsbを算出する際に、Rabを、Rb-RabのRbに対する比率rに置き換えて、この比率rを用いたが、これには限らない。即ち、図４に示したように、Rabをそのまま用いてもよい。
その場合、第１解析部１５は、比率rに代えて、トランザクションレートRabを第１解析結果記憶部１６に記憶し、第２解析部１７は、次の式により、ロックＢの保持時間Tsbを算出する。
【数１４】
0005731332.tif 000015
【００５１】
また、上記では、トランザクション［Ａ−Ｂ］及びトランザクション［Ａ＆Ｂ］による処理に対して、Ｍ／Ｍ／１モデルの第１段階の適用を行い、トランザクション［Ｂ−Ａ］による処理に対して、Ｍ／Ｍ／１モデルの第２段階の適用を行った。しかしながら、トランザクション［Ａ−Ｂ］による処理に対して、Ｍ／Ｍ／１モデルの第１段階の適用を行い、トランザクション［Ｂ−Ａ］及びトランザクション［Ａ＆Ｂ］による処理に対して、Ｍ／Ｍ／１モデルの第２段階の適用を行う、という変形例も考えられる。
その場合、競合分析部１２は、ステップ１０２で、ロックＡを取得するトランザクションのうちのロックＢを取得しないトランザクションの、ロックＡを取得するトランザクションに対する比率r’を、次の計算を行うことにより算出する。
【数１５】
0005731332.tif 000016
【００５２】
そして、競合分析部１２は、ステップ１０３で、トランザクションレートRa、Rbと共に、比率r’を競合分析結果記憶部１３に記憶する。
また、第１解析部１５は、ステップ１０５で、次の式を用いて、ロックＡの保持時間Tsaを算出する。
【数１６】
0005731332.tif 000017
【００５３】
一方、第２解析部１７は、ステップ１０７で、次の式を用いて、ロックＢの保持時間Tsbを算出する。
【数１７】
0005731332.tif 000018
【００５４】
更に、これまでの説明では、Ｍ／Ｍ／１モデルの第１段階の適用及びＭ／Ｍ／１モデルの第２段階の適用に対応して、第１段階のＭ／Ｍ／１解析処理及び第２段階のＭ／Ｍ／１解析処理を行うこととしたが、これには限らない。即ち、第１段階のＭ／Ｍ／１解析処理で用いる式と第２段階のＭ／Ｍ／１解析処理で用いる式とから次の式を求め、この式を用いて１回のＭ／Ｍ／１解析処理を行うようにしてもよい。
【数１８】
0005731332.tif 000019
【００５５】
更にまた、本実施の形態で用いる式はあくまで一例であって、必ずその式を用いなければならないというものではない。同じ入力変数に基づいて同じ出力変数を得る式であって、同様の性質を持つ式であれば、様々に置き換え可能である。
【００５６】
このように、本実施の形態では、１つのトランザクションで２つのレコードのロックを保持することが必要となる場合において、１番目のロック及び２番目のロックに２段階にＭ／Ｍ／１モデルを適用した。これにより、与えられたトランザクションスループットを出すためのロック待ちを除いた純粋なトランザクション処理時間の上限を求めることが可能となった。
【００５７】
最後に、本実施の形態を適用するのに好適なコンピュータのハードウェア構成について説明する。図５は、このようなコンピュータのハードウェア構成の一例を示した図である。図示するように、コンピュータは、演算手段であるＣＰＵ（Central Processing Unit）９０ａと、Ｍ／Ｂ（マザーボード）チップセット９０ｂを介してＣＰＵ９０ａに接続されたメインメモリ９０ｃと、同じくＭ／Ｂチップセット９０ｂを介してＣＰＵ９０ａに接続された表示機構９０ｄとを備える。また、Ｍ／Ｂチップセット９０ｂには、ブリッジ回路９０ｅを介して、ネットワークインターフェイス９０ｆと、磁気ディスク装置（ＨＤＤ）９０ｇと、音声機構９０ｈと、キーボード／マウス９０ｉと、フレキシブルディスクドライブ９０ｊとが接続されている。
【００５８】
尚、図５において、各構成要素は、バスを介して接続される。例えば、ＣＰＵ９０ａとＭ／Ｂチップセット９０ｂの間や、Ｍ／Ｂチップセット９０ｂとメインメモリ９０ｃの間は、ＣＰＵバスを介して接続される。また、Ｍ／Ｂチップセット９０ｂと表示機構９０ｄとの間は、ＡＧＰ（Accelerated Graphics Port）を介して接続されてもよいが、表示機構９０ｄがＰＣＩ Ｅｘｐｒｅｓｓ対応のビデオカードを含む場合、Ｍ／Ｂチップセット９０ｂとこのビデオカードの間は、ＰＣＩ Ｅｘｐｒｅｓｓ（ＰＣＩｅ）バスを介して接続される。また、ブリッジ回路９０ｅと接続する場合、ネットワークインターフェイス９０ｆについては、例えば、ＰＣＩ Ｅｘｐｒｅｓｓを用いることができる。また、磁気ディスク装置９０ｇについては、例えば、シリアルＡＴＡ（AT Attachment）、パラレル転送のＡＴＡ、ＰＣＩ（Peripheral Components Interconnect）を用いることができる。更に、キーボード／マウス９０ｉ、及び、フレキシブルディスクドライブ９０ｊについては、ＵＳＢ（Universal Serial Bus）を用いることができる。
【００５９】
ここで、本発明は、全てハードウェアで実現してもよいし、全てソフトウェアで実現してもよい。また、ハードウェア及びソフトウェアの両方により実現することも可能である。また、本発明は、コンピュータ、データ処理システム、コンピュータプログラムとして実現することができる。このコンピュータプログラムは、コンピュータにより読取り可能な媒体に記憶され、提供され得る。ここで、媒体としては、電子的、磁気的、光学的、電磁的、赤外線又は半導体システム（装置又は機器）、或いは、伝搬媒体が考えられる。また、コンピュータにより読取り可能な媒体としては、半導体、ソリッドステート記憶装置、磁気テープ、取り外し可能なコンピュータディスケット、ランダムアクセスメモリ（ＲＡＭ）、リードオンリーメモリ（ＲＯＭ）、リジッド磁気ディスク、及び光ディスクが例示される。現時点における光ディスクの例には、コンパクトディスク−リードオンリーメモリ（ＣＤ−ＲＯＭ）、コンパクトディスク−リード／ライト（ＣＤ−Ｒ／Ｗ）及びＤＶＤが含まれる。
【００６０】
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態には限定されない。本発明の精神及び範囲から逸脱することなく様々に変更したり代替態様を採用したりすることが可能なことは、当業者に明らかである。
【符号の説明】
【００６１】
１０…処理時間算出装置、１１…競合要件取得部、１２…競合分析部、１３…競合分析結果記憶部、１４…性能要件取得部、１５…第１解析部、１６…第１解析結果記憶部、１７…第２解析部、１８…第２解析結果出力部
【図１】
0005731332.tif 000023
【図２】
0005731332.tif 000024
【図３】
0005731332.tif 000025
【図４】
0005731332.tif 000026
【図５】
0005731332.tif 000027