説明

トランザクションの処理時間を算出する装置及び方法

【課題】1つのトランザクションで2つのレコードのロックが必要な場合において、目標の性能を達成するためのトランザクションのロック待ち時間を除く処理時間を求める。
【解決手段】処理時間算出装置10において、競合要件取得部11は、レコードAを更新するトランザクションのレートRaと、レコードBを更新するトランザクションのレートRbと、レコードA及びBを更新するトランザクションのレートRabとを取得し、性能要件取得部14は、トランザクションレスポンスタイムTrespを取得し、第1解析部15は、レコードAに対してM/M/1モデルの第1段階の適用を行い、RaとTrespとから、レコードAのロック保持時間Tsaを算出し、第2解析部17は、レコードBに対してM/M/1の第2段階の適用を行い、RbとRabとTsaとから、レコードBのロック保持時間Tsbを算出する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、トランザクションの処理時間を算出する装置及び方法に関する。特に、本発明は、目標のトランザクション性能を達成するためのトランザクションのロック待ち時間を除く処理時間を算出する装置及び方法に関する。
【背景技術】
【0002】
待ち行列モデルを利用した情報処理技術として、例えば特許文献1〜5の技術がある。
特許文献1の技術では、平均処理時間とデータ件数とに関する条件が設定され、各条件のときに競合回避方式とポインタ方式のいずれのアクセス方式を選択するかが規定されたアクセス制御テーブルを、M/M/1モデルで検証することによって決定する。
【0003】
特許文献2の技術では、データストリームj中のデータを2次バッファへの退避なしに1次バッファに蓄積するための領域のサイズBjを、多元M/M/1型の近似を行うことで近似表現された、1次バッファから2次バッファへのデータの退避処理における待ち合わせ時間w1jと、2次バッファから1次バッファへのデータの復帰処理における待ち合わせ時間w2jとを用いて、設定する。
【0004】
特許文献3の技術は、システム内に存在する任意のオブジェクトに対する複製データの一貫性を集中管理する放送局サイトと、任意のオブジェクトに対する複製データをそれぞれ有し、超多地点に分散している複数のDBサイトと、更新を許可するか否かの情報等を放送局サイトから各DBサイトに放送により配信するための衛星とを含む分散型データベースシステムにおいて、M/M/1型待ち行列でモデル化することにより、各DBサイト、放送局サイトおよび衛星間のアクセス動作シーケンスの全処理時間Eallの値を評価することを開示する。
【0005】
特許文献4の技術は、負荷発生部が、複数のトランザクションを発生し、トランザクション処理部が、その複数のトランザクションを処理し、コンピュータが、単位時間辺りに発生する割合で各トランザクションの処理要求数を少量から段階的に増加させて処理要求を実行させ、各段階において、トランザクションの処理時間とトランザクションの処理要求数とから待ち行列モデル理論を利用してトランザクションの平均処理待ち時間を計算し、平均処理待ち時間と実際の処理待ち時間の差が大きい場合に、ファイルロックの競合の発生の有無を調べる性能劣化要因検出システムを開示する。
【0006】
特許文献5の技術では、一方のデータベースが故障した時、他方のデータベースが未だアクティブでなければ、それが直ちにアクティブ状態に再割り当てされ、その故障中の後続の照会及び更新を処理し続ける。その故障したデータベースが修復され再開される時、すべてのレコードがそこからフラッシュされ、その故障したデータベースは、アクティブ・データベースを通した単一パスにおけるインターリーブした複写及び更新オペレーションを使用して再構成される。後続のトランザクション及び複写オペレーションは、後続のトランザクションの数が増加したことに応答して複写オペレーションを抑制するために、待ち行列閾値法に従ってインターリーブされる。トランザクション処理システムは、故障中及び回復活動中の両方とも動作状態のままであり、ダウン時間なしに完全な回復を得る。
【先行技術文献】
【特許文献】
【0007】
【特許文献1】特開2002−351726号公報
【特許文献2】特開平10−200574号公報
【特許文献3】特開平11−234269号公報
【特許文献4】特開2006−252176号公報
【特許文献5】特開平7−262068号公報
【発明の概要】
【発明が解決しようとする課題】
【0008】
ところで、トランザクション処理のスループットを決める大きな要因に、処理の並列度を阻害する特定資源への競合がある。中でも、データベースを更新する際の排他制御によるロック待ちが課題である。例えば、特定人気商品のデータベースレコードにロックが集中する場合、スループットはそのデータベースレコードへのロック競合状態に支配される。また、1つのトランザクションでロックが1つのレコードではなく複数のレコードに集中する場合、スループットを向上させることは更に困難となる。
【0009】
このような厳しいロック競合を前提としたシステムにおいて、目標のスループットを満足するためのトランザクションの処理時間を求めるのは容易ではない。1つのレコードでロック競合が起こる場合は、ロック待ち時間を考慮しなければ、単純にスループットの逆数から処理時間の限界値が分かる。例えば1秒当たり50トランザクションのスループットを達成するには、ロック待ち時間を除く処理時間が20ミリ秒を超えないようにすればよい。
これに対し、2つのレコードでロック競合が起こる場合は、一方のレコードのロックを保持しつつ他方のレコードのロック待ちも想定しなければならない。従って、ロック待ち時間を無視した単純計算では処理時間の限界値は求められない。
【0010】
ここで、上述したように、情報処理の分野で待ち行列モデルを利用することは既に行われていた。
しかしながら、特許文献1〜5の何れの技術も、1つのトランザクションで2つのレコードのロックが必要な場合において、目標のスループットを満足するためのトランザクションのロック待ち時間を除く処理時間を求める手法を開示するものではない。
【0011】
本発明の目的は、1つのトランザクションで2つのレコードのロックが必要な場合において、目標の性能を達成するためのトランザクションのロック待ち時間を除く処理時間を求めることにある。
【課題を解決するための手段】
【0012】
かかる目的のもと、本発明は、目標のトランザクション性能を達成するためのトランザクションのロック待ち時間を除く処理時間を算出する装置であって、第1のレコードを含む少なくとも2つのレコードを更新するトランザクションのレートである第1のレートと、第2のレコードを含む少なくとも2つのレコードを更新するトランザクションのレートである第2のレートと、第1のレコード及び第2のレコードを含む少なくとも2つのレコードを更新するトランザクションのレートである第3のレートとを取得するレート取得部と、トランザクションの目標の応答時間を取得する応答時間取得部と、応答時間取得部により取得された応答時間のうちの第1のレコードのロック待ち時間である第1の待ち時間及び第1のレコードのロック保持時間である第1の保持時間をそれぞれM/M/1待ち行列モデルのサービス待ち時間及びサービス時間として、M/M/1待ち行列モデルの第1段階の適用を行うことにより、レート取得部により取得された第1のレートと、応答時間取得部により取得された応答時間とに基づいて、第1の保持時間を算出する第1の算出部と、第1の算出部により算出された第1の保持時間のうちの第2のレコードのロック待ち時間である第2の待ち時間及び第2のレコードのロック保持時間である第2の保持時間をそれぞれM/M/1待ち行列モデルのサービス待ち時間及びサービス時間として、M/M/1待ち行列モデルの第2段階の適用を行うことにより、レート取得部により取得された第2のレート及び第3のレートと、第1の算出部により算出された第1の保持時間とに基づいて、第2の保持時間を算出する第2の算出部と、第2の算出部により算出された第2の保持時間を出力する出力部とを含む、装置を提供する。
【0013】
ここで、第1の算出部は、式
【数1】

を用いて、第1の保持時間を算出し、第2の算出部は、式
【数2】

を用いて、第2の保持時間を算出する、ものであってよい(Raは第1のレートであり、Rbは第2のレートであり、Rabは第3のレートであり、Trespは応答時間であり、Tsaは第1の保持時間であり、Tsbは第2の保持時間である)。
【0014】
また、本発明は、目標のトランザクション性能を達成するためのトランザクションのロック待ち時間を除く処理時間を算出する装置であって、第1のレコードを更新するトランザクションのレートである第1のレートと、第2のレコードを更新するトランザクションのレートである第2のレートと、第1のレコード及び第2のレコードを更新するトランザクションのレートである第3のレートとを取得するレート取得部と、トランザクションの目標の応答時間を取得する応答時間取得部と、第1のレコードのロック待ち時間である第1の待ち時間及び第1のレコードのロック保持時間である第1の保持時間をそれぞれM/M/1待ち行列モデルのサービス待ち時間及びサービス時間として、M/M/1待ち行列モデルの第1段階の適用を行い、第2のレコードのロック待ち時間である第2の待ち時間及び第2のレコードのロック保持時間である第2の保持時間をそれぞれM/M/1待ち行列モデルのサービス待ち時間及びサービス時間として、M/M/1待ち行列モデルの第2段階の適用を行うことにより、レート取得部により取得された第1のレート、第2のレート及び第3のレートと、応答時間取得部により取得された応答時間とに基づいて、第2の保持時間を算出する算出部と、算出部により算出された第2の保持時間を出力する出力部とを含む、装置も提供する。
【0015】
ここで、算出部は、式
【数3】

を用いて、第2の保持時間を算出する、ものであってよい(Raは第1のレートであり、Rbは第2のレートであり、Rabは第3のレートであり、Trespは応答時間であり、Tsbは第2の保持時間である)。
【0016】
また、算出部は、M/M/1待ち行列モデルの第1段階の適用を行うことにより、レート取得部により取得された第1のレートと、応答時間取得部により取得された応答時間とに基づいて、第1の保持時間を算出する第1の算出部と、M/M/1待ち行列モデルの第2段階の適用を行うことにより、レート取得部により取得された第2のレート及び第3のレートと、第1の算出部により算出された第1の保持時間とに基づいて、第2の保持時間を算出する第2の算出部とを含む、ものであってもよい。
【0017】
或いは、算出部は、M/M/1待ち行列モデルの第1段階の適用を行うことにより、レート取得部により取得された第1のレート及び第3のレートと、応答時間取得部により取得された応答時間とに基づいて、第1の保持時間を算出する第1の算出部と、M/M/1待ち行列モデルの第2段階の適用を行うことにより、レート取得部により取得された第2のレートと、第1の算出部により算出された第1の保持時間とに基づいて、第2の保持時間を算出する第2の算出部とを含む、ものであってもよい。
【0018】
更に、本発明は、コンピュータが、目標のトランザクション性能を達成するためのトランザクションのロック待ち時間を除く処理時間を算出する方法であって、コンピュータが、第1のレコードを更新するトランザクションのレートである第1のレートと、第2のレコードを更新するトランザクションのレートである第2のレートと、第1のレコード及び第2のレコードを更新するトランザクションのレートである第3のレートとを取得するステップと、コンピュータが、トランザクションの目標の応答時間を取得するステップと、コンピュータが、第1のレコードのロック待ち時間である第1の待ち時間及び第1のレコードのロック保持時間である第1の保持時間をそれぞれM/M/1待ち行列モデルのサービス待ち時間及びサービス時間として、M/M/1待ち行列モデルの第1段階の適用を行い、第2のレコードのロック待ち時間である第2の待ち時間及び第2のレコードのロック保持時間である第2の保持時間をそれぞれM/M/1待ち行列モデルのサービス待ち時間及びサービス時間として、M/M/1待ち行列モデルの第2段階の適用を行うことにより、第1のレートと、第2のレートと、第3のレートと、応答時間とに基づいて、第2の保持時間を算出するステップと、コンピュータが、算出された第2の保持時間を出力するステップとを含む、方法も提供する。
【0019】
更にまた、本発明は、目標のトランザクション性能を達成するためのトランザクションのロック待ち時間を除く処理時間を算出する装置としてコンピュータを機能させるプログラムであって、コンピュータを、第1のレコードを更新するトランザクションのレートである第1のレートと、第2のレコードを更新するトランザクションのレートである第2のレートと、第1のレコード及び第2のレコードを更新するトランザクションのレートである第3のレートとを取得するレート取得部と、トランザクションの目標の応答時間を取得する応答時間取得部と、応答時間取得部により取得された応答時間のうちの第1のレコードのロック待ち時間である第1の待ち時間及び第1のレコードのロック保持時間である第1の保持時間をそれぞれM/M/1待ち行列モデルのサービス待ち時間及びサービス時間として、M/M/1待ち行列モデルの第1段階の適用を行うことにより、レート取得部により取得された第1のレートと、応答時間取得部により取得された応答時間とに基づいて、第1の保持時間を算出する第1の算出部と、第1の算出部により算出された第1の保持時間のうちの第2のレコードのロック待ち時間である第2の待ち時間及び第2のレコードのロック保持時間である第2の保持時間をそれぞれM/M/1待ち行列モデルのサービス待ち時間及びサービス時間として、M/M/1待ち行列モデルの第2段階の適用を行うことにより、レート取得部により取得された第2のレート及び第3のレートと、第1の算出部により算出された第1の保持時間とに基づいて、第2の保持時間を算出する第2の算出部と、第2の算出部により算出された第2の保持時間を出力する出力部として機能させる、プログラムも提供する。
【発明の効果】
【0020】
本発明によれば、1つのトランザクションで2つのレコードのロックが必要な場合において、目標の性能を達成するためのトランザクションのロック待ち時間を除く処理時間を求めることができる。
【図面の簡単な説明】
【0021】
【図1】本発明の実施の形態における目標のスループットを満たすためのトランザクション処理時間の算出方法について説明するための図である。
【図2】本発明の実施の形態における処理時間算出装置の機能構成例を示したブロック図である。
【図3】本発明の実施の形態における処理時間算出装置の動作例を示したフローチャートである。
【図4】本発明の実施の形態における処理時間算出装置の処理結果の具体例を示した図である。
【図5】本発明の実施の形態を適用可能なコンピュータのハードウェア構成を示した図である。
【発明を実施するための形態】
【0022】
以下、添付図面を参照して、本発明の実施の形態について詳細に説明する。
本実施の形態では、待ち行列理論におけるサーバ、サービス時間、サービス待ち時間を、それぞれ、ロック競合におけるロック対象レコード、ロック保持時間、ロック待ち時間として、特定レコードを1つのサーバとするM/M/1待ち行列モデル(以下、単に「M/M/1モデル」という)をロック競合に適用する。
具体的には、1つのトランザクションで2つのレコードのロックを保持することが必要となる場合において、1番目のロック及び2番目のロックに2段階にM/M/1モデルを適用する。これにより、与えられたトランザクションスループットを出すためのロック待ち時間を除いた純粋なトランザクション処理時間の上限を求める。
【0023】
そのために、本実施の形態では、まず、トランザクションで更新される2つのレコードがレコードA及びレコードBであるものとし、トランザクションを以下の3つのタイプに分類する。
第1のタイプは、レコードAと、レコードB以外のレコードとを更新するトランザクションのタイプである。本実施の形態では、このタイプのトランザクションを「トランザクション[A−B]」と表記する。
第2のタイプは、レコードAと、レコードBとを更新するトランザクションのタイプである。本実施の形態では、このタイプのトランザクションを「トランザクション[A&B]」と表記する。
第3のタイプは、レコードA以外のレコードと、レコードBとを更新するトランザクションのタイプである。本実施の形態では、このタイプのトランザクションを「トランザクション[B−A]」と表記する。
尚、1つのトランザクション内では、デッドロックの発生を避けるために、2つのレコードをレコードキーが小さい方から更新することにする。例えば、レコードA及びレコードBについては、レコードAの方がレコードキーが小さいものとし、レコードA、レコードBの順番で更新するものとする。
【0024】
また、本実施の形態では、レコードA、BのロックをそれぞれロックA、Bとし、以下の要件を与える。
第1の要件は、トランザクションのレスポンスタイムである。これには、ロックAの待ち時間及びロックBの待ち時間が含まれる。本実施の形態では、このトランザクションレスポンスタイムをTrespと表記する。
第2の要件は、ロックAを取得するトランザクションのトランザクションレートである。本実施の形態では、このトランザクションレートをRaと表記する。
第3の要件は、ロックBを取得するトランザクションのトランザクションレートである。本実施の形態では、このトランザクションレートをRbと表記する。
第4の要件は、ロックA及びロックBを取得するトランザクションのトランザクションレートである。本実施の形態では、このトランザクションレートをRabと表記する。
また、第3の要件及び第4の要件から、ロックBを取得するトランザクションのうち、ロックAを取得しないトランザクションの比率を求めておく。本実施の形態では、この比率をrと表記する。比率rは、次の式により算出される。
【数4】

【0025】
図1は、与えられたトランザクションスループットを満たすための純粋なトランザクション処理時間の上限を算出する方法について模式的に示した図である。尚、本実施の形態では、各トランザクションが2つのレコードを更新するものとして説明するが、3つ以上のレコードを更新するものであってもよい。但し、レコードA及びレコードB以外のレコードでは競合が起こらないものとする。
【0026】
図中、太矢印201は、トランザクション[A−B]がロックAを取得しようとしていることを示す。トランザクション[A−B]のトランザクションレートは、太矢印201内に示すようにRa-Rabである。このトランザクション[A−B]は、破線矢印221で示すように、ロックAの待ち時間Twaだけ処理を待たされた後、細矢印241で示すように、ロックAを取得して、ロックAの保持時間Tsaの間、処理を行う。
【0027】
また、太矢印202は、トランザクション[A&B]がロックAを取得しようとしていることを示す。トランザクション[A&B]のトランザクションレートは、太矢印202内に示すようにRabである。このトランザクション[A&B]は、破線矢印221で示すように、ロックAの待ち時間Twaだけ処理を待たされた後、ロックAを取得して、ロックAの保持時間Tsaの間、処理を行う。その際、トランザクション[A&B]は、ロックAを取得してから時間tの経過後、細矢印261で示すようにロックBを要求し、破線矢印222で示すようにロックBを待たされた後、細矢印242で示すようにロックBを取得して処理を行う。
【0028】
本実施の形態では、このようなトランザクション[A−B]及びトランザクション[A&B]による処理に対して、M/M/1モデルの第1段階の適用を行う。具体的には、ロックAの待ち時間Twa、ロックAの保持時間Tsa、トランザクションレートRaを、それぞれ、待ち行列理論のサービス待ち時間、サービス時間、到着率に当てはめて、ロックAの保持時間Tsaを算出する。尚、ロックAの保持時間Tsaの算出方法については、後で詳しく述べる。
【0029】
一方、図中、太矢印203は、トランザクション[B−A]がロックBを取得しようとしていることを示す。トランザクション[B−A]のトランザクションレートは、太矢印203内に示すようにRb-Rabである。このトランザクション[B−A]は、破線矢印222で示すように、ロックBの待ち時間Twbだけ処理を待たされた後、細矢印242で示すように、ロックBを取得して、ロックBの保持時間Tsbの間、処理を行う。
【0030】
本実施の形態では、このようなトランザクション[B−A]による処理に対して、M/M/1モデルの第2段階の適用を行う。具体的には、ロックBの待ち時間Twb、ロックBの保持時間Tsb、トランザクションレートRb-Rabを、それぞれ、待ち行列理論のサービス待ち時間、サービス時間、到着率に当てはめて、ロックBの保持時間Tsbを算出する。このロックBの保持時間Tsbが、レコードA及びレコードBのロックを取得した後の処理時間であり、ロック待ちを除いた純粋なトランザクション処理時間である。尚、ロックBの保持時間Tsbの算出方法については、後で詳しく述べる。
【0031】
図2は、このような処理時間の算出を行う処理時間算出装置10の機能構成例を示したブロック図である。尚、処理時間算出装置10は、コンピュータのCPU90a(図5参照)が処理時間算出用プログラムを例えば磁気ディスク装置90g(図5参照)からメインメモリ90c(図5参照)に読み込んで実行することによってコンピュータ内に実現されるものである。
図示するように、処理時間算出装置10は、競合要件取得部11と、競合分析部12と、競合分析結果記憶部13と、性能要件取得部14と、第1解析部15と、第1解析結果記憶部16と、第2解析部17と、第2解析結果出力部18とを備える。
【0032】
競合要件取得部11は、ロックの競合に関する要件(競合要件)を取得する。具体的には、ロックAを取得するトランザクションのトランザクションレートRa、ロックBを取得するトランザクションのトランザクションレートRb、ロックA及びロックBを取得するトランザクションのトランザクションレートRabを取得する。尚、これらの競合要件は、磁気ディスク装置90g(図5参照)にコンピュータが記憶しておいた情報から取得してもよいし、ユーザがキーボード/マウス90i(図5参照)を用いて入力した情報から取得してもよい。本実施の形態では、第1のレコードを含む少なくとも2つのレコードを更新するトランザクションのレートである第1のレート、第1のレコードを更新するトランザクションのレートである第1のレートの一例として、トランザクションレートRaを用いており、第2のレコードを含む少なくとも2つのレコードを更新するトランザクションのレートである第2のレート、第2のレコードを更新するトランザクションのレートである第2のレートの一例として、トランザクションレートRbを用いており、第1のレコード及び第2のレコードを含む少なくとも2つのレコードを更新するトランザクションのレートである第3のレート、第1のレコード及び第2のレコードを更新するトランザクションのレートである第3のレートの一例として、トランザクションレートRabを用いている。また、第1のレートと第2のレートと第3のレートとを取得するレート取得部の一例として、競合要件取得部11を設けている。
【0033】
競合分析部12は、競合要件取得部11が取得したトランザクションレートを受け取り、このトランザクションレートに基づいて、ロックBを取得するトランザクションのうちのロックAを取得しないトランザクションの、ロックBを取得するトランザクションに対する比率rを算出する。
競合分析結果記憶部13は、競合分析部12が受け取ったトランザクションレートと、競合分析部12が算出した比率rとを競合分析結果として記憶する。
【0034】
性能要件取得部14は、トランザクションの処理性能に関する要件(性能要件)を取得する。具体的には、トランザクションレスポンスタイムTrespを取得する。尚、この性能要件は、磁気ディスク装置90g(図5参照)にコンピュータが記憶しておいた情報から取得してもよいし、ユーザがキーボード/マウス90i(図5参照)を用いて入力した情報から取得してもよい。本実施の形態では、トランザクションの目標の応答時間の一例として、トランザクションレスポンスタイムTrespを用いている。また、目標の応答時間を取得する応答時間取得部の一例として、性能要件取得部14を設けている。
【0035】
第1解析部15は、ロックAの待ち時間Twa及びロックAの保持時間TsaをM/M/1モデルのサービス待ち時間及びサービス時間としてM/M/1モデルを適用することにより、第1段階のM/M/1解析処理を行う。具体的には、ロックBの待ち時間を含むロックAの保持時間Tsaを、競合分析結果記憶部13に記憶されたトランザクションレートRaと、性能要件取得部14が取得したトランザクションレスポンスタイムTrespとを用いて、算出する。本実施の形態では、第1のレコードのロック待ち時間である第1の待ち時間の一例として、ロックAの待ち時間Twaを用いており、第1のレコードのロック保持時間である第1の保持時間の一例として、ロックAの保持時間Tsaを用いている。また、第1の保持時間を算出する第1の算出部の一例として、第1解析部15を設けている。
【0036】
第1解析結果記憶部16は、第1段階のM/M/1解析処理の結果を記憶する。具体的には、第1解析部15が算出したロックAの保持時間Tsaを記憶する。
【0037】
第2解析部17は、ロックBの待ち時間Twb及びロックBの保持時間TsbをM/M/1モデルのサービス待ち時間及びサービス時間としてM/M/1モデルを適用することにより、第2段階のM/M/1解析処理を行う。具体的には、競合要件取得部11及び性能要件取得部14が取得した要件の下で許容されるロックBの保持時間Tsbを、競合分析結果記憶部13に記憶されたトランザクションレートRb及び比率rと、第1解析結果記憶部16に記憶されたロックAの保持時間Tsaとを用いて、算出する。尚、ロックBの保持時間Tsbを算出する際、ロックAの取得からロックBの要求までの時間tは十分小さいものと考え、t = 0とする。本実施の形態では、第2のレコードのロック待ち時間である第2の待ち時間の一例として、ロックBの待ち時間Twbを用いており、第2のレコードのロック保持時間である第2の保持時間の一例として、ロックBの保持時間Tsbを用いている。また、第2の保持時間を算出する第2の算出部の一例として、第2解析部17を設けている。
【0038】
第2解析結果出力部18は、第2段階のM/M/1解析処理の結果を表示機構90d(図5参照)に出力する。具体的には、第2解析部17が算出したロックBの保持時間Tsbを表示機構90d(図5参照)に出力する。本実施の形態では、第2の保持時間を出力する出力部の一例として、第2解析結果出力部18を設けている。
【0039】
図3は、処理時間算出装置10の動作例を示したフローチャートである。
図示するように、処理時間算出装置10では、まず、競合要件取得部11が、競合要件として、ロックAを取得するトランザクションのトランザクションレートRa、ロックBを取得するトランザクションのトランザクションレートRb、ロックA及びロックBを取得するトランザクションのトランザクションレートRabを取得する(ステップ101)。
【0040】
すると、競合分析部12が、ステップ101で取得されたトランザクションレートRb、Rabに基づいて、ロックBを取得するトランザクションのうちのロックAを取得しないトランザクションの、ロックBを取得するトランザクションに対する比率rを算出する(ステップ102)。具体的には、次の計算を行うことにより、比率rを算出する。
【数5】

そして、競合分析部12は、ステップ101で取得されたトランザクションレートRa、Rbと、ステップ102で算出された比率rとを、競合分析結果記憶部13に記憶する(ステップ103)。
【0041】
また、処理時間算出装置10では、性能要件取得部14が、性能要件として、トランザクションレスポンスタイムTrespを取得する(ステップ104)。
すると、第1解析部15が、第1段階のM/M/1解析処理として、ステップ103で記憶されたトランザクションレートRaと、ステップ104で取得されたトランザクションレスポンスタイムTrespとに基づいて、ロックAの保持時間Tsaを算出する処理を行う(ステップ105)。
【0042】
ここで、ロックAの保持時間Tsaを算出する処理について、詳細に説明する。
まず、M/M/1モデルから、以下の関係が成り立つ(ρaはロックAの利用率)。
【数6】

これにより、トランザクションレスポンスタイムTrespは、以下のように展開される。
【数7】

更に式を以下のように展開し、TsaをTrespとRaとから算出する式を求め、この式を用いてロックAの保持時間Tsaを算出する。
【数8】

【0043】
そして、第1解析部15は、ステップ105で算出されたロックAの保持時間Tsaを、第1解析結果記憶部16に記憶する(ステップ106)。
【0044】
更に、処理時間算出装置10では、第2解析部17が、第2段階のM/M/1解析処理として、ステップ103で記憶されたトランザクションレートRb及び比率rと、ステップ106で記憶されたロックAの保持時間Tsaとに基づいて、ロックBの保持時間Tsbを算出する処理を行う(ステップ107)。
【0045】
ここで、ロックBの保持時間Tsbを算出する処理について、詳細に説明する。
まず、M/M/1モデルから、以下の関係が成り立つ(ρbはロックBの利用率)。
【数9】

これにより、ロックAの保持時間Tsaは、以下のように展開される。
【数10】

更に式を以下のように展開し、TsbをTsaとrとRbとから算出する式を求め、この式を用いてロックBの保持時間Tsbを算出する。
【数11】

【0046】
そして、第2解析結果出力部18は、ステップ107で算出されたロックBの保持時間Tsbを表示機構90d(図5参照)に出力し、表示機構90d(図5参照)が、ロックBの保持時間Tsbを表示する(ステップ108)。
【0047】
ここで、以上の動作を、具体的な数値を用いて説明する。
図4は、このときの各変数に格納される具体的な数値について示したものである。
まず、ステップ101で、競合要件取得部11が、「Ra = 120トランザクション/秒、Rb = 80トランザクション/秒、Rab= 30トランザクション/秒」を、競合要件として取得したとする。
また、ステップ104で、性能要件取得部14が、「Tresp = 1.0秒」を、性能要件として取得したとする。
すると、ステップ105では、次の計算を行うことにより、「第1段階M/M/1解析処理」欄に示すように、「Tresp = 1.0秒」、「Ra = 120トランザクション/秒」から、「Tsa = 8.3ミリ秒」が得られる。
【数12】

【0048】
更に、ステップ107では、次の計算を行うことにより、「第2段階M/M/1解析処理」欄に示すように、「Tsa = 8.3ミリ秒」、「Rb = 80トランザクション/秒」、「Rab= 30トランザクション/秒」から、「Tsb = 5.8ミリ秒」が得られる(図では太線で囲んで示している)。
【数13】

【0049】
以上により、ロック待ちを含まない純粋なトランザクション処理時間が5.8ミリ秒以内であれば、目標のトランザクションスループットを達成できることが分かる。
【0050】
尚、図2及び図3では、ロックAの保持時間TsaからロックBの保持時間Tsbを算出する際に、Rabを、Rb-RabのRbに対する比率rに置き換えて、この比率rを用いたが、これには限らない。即ち、図4に示したように、Rabをそのまま用いてもよい。
その場合、第1解析部15は、比率rに代えて、トランザクションレートRabを第1解析結果記憶部16に記憶し、第2解析部17は、次の式により、ロックBの保持時間Tsbを算出する。
【数14】

【0051】
また、上記では、トランザクション[A−B]及びトランザクション[A&B]による処理に対して、M/M/1モデルの第1段階の適用を行い、トランザクション[B−A]による処理に対して、M/M/1モデルの第2段階の適用を行った。しかしながら、トランザクション[A−B]による処理に対して、M/M/1モデルの第1段階の適用を行い、トランザクション[B−A]及びトランザクション[A&B]による処理に対して、M/M/1モデルの第2段階の適用を行う、という変形例も考えられる。
その場合、競合分析部12は、ステップ102で、ロックAを取得するトランザクションのうちのロックBを取得しないトランザクションの、ロックAを取得するトランザクションに対する比率r’を、次の計算を行うことにより算出する。
【数15】

【0052】
そして、競合分析部12は、ステップ103で、トランザクションレートRa、Rbと共に、比率r’を競合分析結果記憶部13に記憶する。
また、第1解析部15は、ステップ105で、次の式を用いて、ロックAの保持時間Tsaを算出する。
【数16】

【0053】
一方、第2解析部17は、ステップ107で、次の式を用いて、ロックBの保持時間Tsbを算出する。
【数17】

【0054】
更に、これまでの説明では、M/M/1モデルの第1段階の適用及びM/M/1モデルの第2段階の適用に対応して、第1段階のM/M/1解析処理及び第2段階のM/M/1解析処理を行うこととしたが、これには限らない。即ち、第1段階のM/M/1解析処理で用いる式と第2段階のM/M/1解析処理で用いる式とから次の式を求め、この式を用いて1回のM/M/1解析処理を行うようにしてもよい。
【数18】

【0055】
更にまた、本実施の形態で用いる式はあくまで一例であって、必ずその式を用いなければならないというものではない。同じ入力変数に基づいて同じ出力変数を得る式であって、同様の性質を持つ式であれば、様々に置き換え可能である。
【0056】
このように、本実施の形態では、1つのトランザクションで2つのレコードのロックを保持することが必要となる場合において、1番目のロック及び2番目のロックに2段階にM/M/1モデルを適用した。これにより、与えられたトランザクションスループットを出すためのロック待ちを除いた純粋なトランザクション処理時間の上限を求めることが可能となった。
【0057】
最後に、本実施の形態を適用するのに好適なコンピュータのハードウェア構成について説明する。図5は、このようなコンピュータのハードウェア構成の一例を示した図である。図示するように、コンピュータは、演算手段であるCPU(Central Processing Unit)90aと、M/B(マザーボード)チップセット90bを介してCPU90aに接続されたメインメモリ90cと、同じくM/Bチップセット90bを介してCPU90aに接続された表示機構90dとを備える。また、M/Bチップセット90bには、ブリッジ回路90eを介して、ネットワークインターフェイス90fと、磁気ディスク装置(HDD)90gと、音声機構90hと、キーボード/マウス90iと、フレキシブルディスクドライブ90jとが接続されている。
【0058】
尚、図5において、各構成要素は、バスを介して接続される。例えば、CPU90aとM/Bチップセット90bの間や、M/Bチップセット90bとメインメモリ90cの間は、CPUバスを介して接続される。また、M/Bチップセット90bと表示機構90dとの間は、AGP(Accelerated Graphics Port)を介して接続されてもよいが、表示機構90dがPCI Express対応のビデオカードを含む場合、M/Bチップセット90bとこのビデオカードの間は、PCI Express(PCIe)バスを介して接続される。また、ブリッジ回路90eと接続する場合、ネットワークインターフェイス90fについては、例えば、PCI Expressを用いることができる。また、磁気ディスク装置90gについては、例えば、シリアルATA(AT Attachment)、パラレル転送のATA、PCI(Peripheral Components Interconnect)を用いることができる。更に、キーボード/マウス90i、及び、フレキシブルディスクドライブ90jについては、USB(Universal Serial Bus)を用いることができる。
【0059】
ここで、本発明は、全てハードウェアで実現してもよいし、全てソフトウェアで実現してもよい。また、ハードウェア及びソフトウェアの両方により実現することも可能である。また、本発明は、コンピュータ、データ処理システム、コンピュータプログラムとして実現することができる。このコンピュータプログラムは、コンピュータにより読取り可能な媒体に記憶され、提供され得る。ここで、媒体としては、電子的、磁気的、光学的、電磁的、赤外線又は半導体システム(装置又は機器)、或いは、伝搬媒体が考えられる。また、コンピュータにより読取り可能な媒体としては、半導体、ソリッドステート記憶装置、磁気テープ、取り外し可能なコンピュータディスケット、ランダムアクセスメモリ(RAM)、リードオンリーメモリ(ROM)、リジッド磁気ディスク、及び光ディスクが例示される。現時点における光ディスクの例には、コンパクトディスク−リードオンリーメモリ(CD−ROM)、コンパクトディスク−リード/ライト(CD−R/W)及びDVDが含まれる。
【0060】
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態には限定されない。本発明の精神及び範囲から逸脱することなく様々に変更したり代替態様を採用したりすることが可能なことは、当業者に明らかである。
【符号の説明】
【0061】
10…処理時間算出装置、11…競合要件取得部、12…競合分析部、13…競合分析結果記憶部、14…性能要件取得部、15…第1解析部、16…第1解析結果記憶部、17…第2解析部、18…第2解析結果出力部

【特許請求の範囲】
【請求項1】
目標のトランザクション性能を達成するためのトランザクションのロック待ち時間を除く処理時間を算出する装置であって、
第1のレコードを含む少なくとも2つのレコードを更新するトランザクションのレートである第1のレートと、第2のレコードを含む少なくとも2つのレコードを更新するトランザクションのレートである第2のレートと、第1のレコード及び第2のレコードを含む少なくとも2つのレコードを更新するトランザクションのレートである第3のレートとを取得するレート取得部と、
トランザクションの目標の応答時間を取得する応答時間取得部と、
前記応答時間取得部により取得された前記応答時間のうちの前記第1のレコードのロック待ち時間である第1の待ち時間及び前記第1のレコードのロック保持時間である第1の保持時間をそれぞれM/M/1待ち行列モデルのサービス待ち時間及びサービス時間として、M/M/1待ち行列モデルの第1段階の適用を行うことにより、前記レート取得部により取得された前記第1のレートと、前記応答時間取得部により取得された前記応答時間とに基づいて、当該第1の保持時間を算出する第1の算出部と、
前記第1の算出部により算出された前記第1の保持時間のうちの前記第2のレコードのロック待ち時間である第2の待ち時間及び前記第2のレコードのロック保持時間である第2の保持時間をそれぞれM/M/1待ち行列モデルのサービス待ち時間及びサービス時間として、M/M/1待ち行列モデルの第2段階の適用を行うことにより、前記レート取得部により取得された前記第2のレート及び前記第3のレートと、前記第1の算出部により算出された前記第1の保持時間とに基づいて、当該第2の保持時間を算出する第2の算出部と、
前記第2の算出部により算出された前記第2の保持時間を出力する出力部と
を含む、装置。
【請求項2】
前記第1の算出部は、式
【数1】

を用いて、前記第1の保持時間を算出し、
前記第2の算出部は、式
【数2】

を用いて、前記第2の保持時間を算出する、請求項1の装置(Raは前記第1のレートであり、Rbは前記第2のレートであり、Rabは前記第3のレートであり、Trespは前記応答時間であり、Tsaは前記第1の保持時間であり、Tsbは前記第2の保持時間である)。
【請求項3】
目標のトランザクション性能を達成するためのトランザクションのロック待ち時間を除く処理時間を算出する装置であって、
第1のレコードを更新するトランザクションのレートである第1のレートと、第2のレコードを更新するトランザクションのレートである第2のレートと、第1のレコード及び第2のレコードを更新するトランザクションのレートである第3のレートとを取得するレート取得部と、
トランザクションの目標の応答時間を取得する応答時間取得部と、
前記第1のレコードのロック待ち時間である第1の待ち時間及び前記第1のレコードのロック保持時間である第1の保持時間をそれぞれM/M/1待ち行列モデルのサービス待ち時間及びサービス時間として、M/M/1待ち行列モデルの第1段階の適用を行い、前記第2のレコードのロック待ち時間である第2の待ち時間及び前記第2のレコードのロック保持時間である第2の保持時間をそれぞれM/M/1待ち行列モデルのサービス待ち時間及びサービス時間として、M/M/1待ち行列モデルの第2段階の適用を行うことにより、前記レート取得部により取得された前記第1のレート、前記第2のレート及び前記第3のレートと、前記応答時間取得部により取得された前記応答時間とに基づいて、当該第2の保持時間を算出する算出部と、
前記算出部により算出された前記第2の保持時間を出力する出力部と
を含む、装置。
【請求項4】
前記算出部は、式
【数3】

を用いて、前記第2の保持時間を算出する、請求項3の装置(Raは前記第1のレートであり、Rbは前記第2のレートであり、Rabは前記第3のレートであり、Trespは前記応答時間であり、Tsbは前記第2の保持時間である)。
【請求項5】
前記算出部は、
M/M/1待ち行列モデルの前記第1段階の適用を行うことにより、前記レート取得部により取得された前記第1のレートと、前記応答時間取得部により取得された前記応答時間とに基づいて、前記第1の保持時間を算出する第1の算出部と、
M/M/1待ち行列モデルの前記第2段階の適用を行うことにより、前記レート取得部により取得された前記第2のレート及び前記第3のレートと、前記第1の算出部により算出された前記第1の保持時間とに基づいて、前記第2の保持時間を算出する第2の算出部と
を含む、請求項3又は請求項4の装置。
【請求項6】
前記算出部は、
M/M/1待ち行列モデルの前記第1段階の適用を行うことにより、前記レート取得部により取得された前記第1のレート及び前記第3のレートと、前記応答時間取得部により取得された前記応答時間とに基づいて、前記第1の保持時間を算出する第1の算出部と、
M/M/1待ち行列モデルの前記第2段階の適用を行うことにより、前記レート取得部により取得された前記第2のレートと、前記第1の算出部により算出された前記第1の保持時間とに基づいて、前記第2の保持時間を算出する第2の算出部と
を含む、請求項3又は請求項4の装置。
【請求項7】
コンピュータが、目標のトランザクション性能を達成するためのトランザクションのロック待ち時間を除く処理時間を算出する方法であって、
前記コンピュータが、第1のレコードを更新するトランザクションのレートである第1のレートと、第2のレコードを更新するトランザクションのレートである第2のレートと、第1のレコード及び第2のレコードを更新するトランザクションのレートである第3のレートとを取得するステップと、
前記コンピュータが、トランザクションの目標の応答時間を取得するステップと、
前記コンピュータが、前記第1のレコードのロック待ち時間である第1の待ち時間及び前記第1のレコードのロック保持時間である第1の保持時間をそれぞれM/M/1待ち行列モデルのサービス待ち時間及びサービス時間として、M/M/1待ち行列モデルの第1段階の適用を行い、前記第2のレコードのロック待ち時間である第2の待ち時間及び前記第2のレコードのロック保持時間である第2の保持時間をそれぞれM/M/1待ち行列モデルのサービス待ち時間及びサービス時間として、M/M/1待ち行列モデルの第2段階の適用を行うことにより、前記第1のレートと、前記第2のレートと、前記第3のレートと、前記応答時間とに基づいて、当該第2の保持時間を算出するステップと、
前記コンピュータが、算出された前記第2の保持時間を出力するステップと
を含む、方法。
【請求項8】
目標のトランザクション性能を達成するためのトランザクションのロック待ち時間を除く処理時間を算出する装置としてコンピュータを機能させるプログラムであって、
前記コンピュータを、
第1のレコードを更新するトランザクションのレートである第1のレートと、第2のレコードを更新するトランザクションのレートである第2のレートと、第1のレコード及び第2のレコードを更新するトランザクションのレートである第3のレートとを取得するレート取得部と、
トランザクションの目標の応答時間を取得する応答時間取得部と、
前記応答時間取得部により取得された前記応答時間のうちの前記第1のレコードのロック待ち時間である第1の待ち時間及び前記第1のレコードのロック保持時間である第1の保持時間をそれぞれM/M/1待ち行列モデルのサービス待ち時間及びサービス時間として、M/M/1待ち行列モデルの第1段階の適用を行うことにより、前記レート取得部により取得された前記第1のレートと、前記応答時間取得部により取得された前記応答時間とに基づいて、当該第1の保持時間を算出する第1の算出部と、
前記第1の算出部により算出された前記第1の保持時間のうちの前記第2のレコードのロック待ち時間である第2の待ち時間及び前記第2のレコードのロック保持時間である第2の保持時間をそれぞれM/M/1待ち行列モデルのサービス待ち時間及びサービス時間として、M/M/1待ち行列モデルの第2段階の適用を行うことにより、前記レート取得部により取得された前記第2のレート及び前記第3のレートと、前記第1の算出部により算出された前記第1の保持時間とに基づいて、当該第2の保持時間を算出する第2の算出部と、
前記第2の算出部により算出された前記第2の保持時間を出力する出力部と
して機能させる、プログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate


【公開番号】特開2013−57996(P2013−57996A)
【公開日】平成25年3月28日(2013.3.28)
【国際特許分類】
【出願番号】特願2011−194732(P2011−194732)
【出願日】平成23年9月7日(2011.9.7)
【出願人】(390009531)インターナショナル・ビジネス・マシーンズ・コーポレーション (4,084)
【氏名又は名称原語表記】INTERNATIONAL BUSINESS MACHINES CORPORATION
【復代理人】
【識別番号】100104880
【弁理士】
【氏名又は名称】古部 次郎
【復代理人】
【識別番号】100118201
【弁理士】
【氏名又は名称】千田 武
【復代理人】
【識別番号】100118108
【弁理士】
【氏名又は名称】久保 洋之