15.5.データベース並行処理制御(2):Quantitative System Performance

15.5.データベース並行処理制御(1)」の続きです。(目次はこちら

 アボートするトランザクションの割合とこれらのトランザクションのサービス要求時間を見積ることはシステムをモデル化するための鍵である。しかし最初に、衝突はけっして起こらず、よって全てのトランザクションは成功裏に完了すると仮定しよう。この場合、従来の分離可能待ち行列ネットワークのモデルは適している。端末のユーザはトランザクションを投入する。トランザクションのサービス要求時間はそれらの複雑さを、つまり、読まれる項目の数や、書かれる項目の数や、処理要求時間や、並行処理制御に必要なロック操作のオーバヘッド、などを考慮することによって計算出来る。このモデルを評価することは平均トランザクション応答時間と他の興味のある性能尺度をもたらす。
 このモデルはトランザクション間の衝突の効果を表現するようにどのように拡張出来るであろうか? 前述のように我々はアボートするトランザクションの割合P[abort]と、これらのトランザクションのサービス要求時間を見積らなければならない。この情報が与えられたならば、我々はモデル内のトランザクションのサービス要求時間が以下のようになるように調整出来たであろう。


トランザクションの個々の投入について応答時間をもたらすためにこのパラメータを用いてモデルを評価出来たであろう。成功裏にトランザクションを完了する実効応答時間を計算するために、個々の投入の応答時間に要求される投入の数の平均値をかける。(明らかにここで均一性の仮定が利用されている。) 要求される投入の数の平均値は

  • 1×(1−P[abort])+
  • 2×(1−P[abort])×P[abort]
  • 3×(1−P[abort])×P[abort]^2
  • =\frac{1}{1-P[abort]}


 アボートするトランザクションの割合は、アクティブ・トランザクションの数の平均値(もしほとんどのトランザクションが同時にアクティブでないならば、衝突の確率は低い)や個々のトランザクションによるデータ項目のリードとライトの数の平均や、データベース内の項目の総数との比(もし個々のトランザクションがデータベース内の項目の非常に小さい割合をロックするのであれば、衝突の確率は低い)を含む、多くの要因に左右される。一例として、ひとつの特に単純な方法は、個々のトランザクションがデータベース内のI個の項目のうちr個をランダムに選んで、それらにリード・ロックを要求し、これらのI個の項目のうちのw個をまた独立にかつランダムに選んで、それらにライト・ロックを要求すると仮定することである。次に確率論的解析がP[abort]をもたらす。この解析は以下のような推論に基づいている。すなわち、もしN個のトランザクションがアクティブであるならば、それらはN{\times}w個のライト・ロックをかける。到着するトランザクションはその要求されるr個のリード・ロックの全てを以下の確率で獲得することが出来るだろう。

  • \frac{\left[\begin{array}I-N{\times}w\\r\end{array}\right]}{\left[\begin{array}I\\r\end{array}\right]}

P[abort]のより正確な見積りは、確率論的に、あるいはシミュレーションを用いてのいずれかで見積られた、より詳細なサブモデルから得ることが出来る。)
 アボートしたトランザクションのサービス要求時間は成功したトランザクションのロック操作オーバヘッドの1/2であると大まかに見積ることが出来る。(1つのロックが拒否される前に要求されるロックの半分が得られると予想される。これらはトランザクションがアボートする時に解除されなければならない。) さらに仮定により、アボートしたトランザクションは少し待った後に再投入される。これはモデルにディレイ・センターを追加することにより、あるいは、サービス要求時間について用いたやり方と類似のやり方で「考慮時間」を低めに調整することにより表現出来る。
 アクティブ・トランザクションの平均個数はP[abort]を見積るために必要な主要パラメータであるが、これはモデルの出力である。これはアルゴリズム15.1に概要を示した繰返しの評価形式を示唆している。我々は多くの詳細を指定しないままに残し、システムと並行処理制御メカニズムの性質に関する簡略化のための多くの仮定を行った。しかし、アルゴリズム15.1の基本繰返し方法は比較的一般的である。

1.

  • 本文で示唆したように計算された基本トランザクション・サービス要求時間で従来の分離可能待ち行列ネットワーク・モデルを構築する。最初に、アクティブ・トランザクションの平均個数はゼロであると仮定する。(これは最初の繰返しでP[abort]をゼロと見積ることをもたらし、モデルは調整なしに評価されることになる。)

2.

  • 以下のように繰り返す。
  • 2.1.
    • さまざまな入力パラメータとアクティブ・トランザクションの平均個数に基づいて、アボートするトランザクションの割合を決めるためにサブモデルを用いる。このサブモデルは本文で記述したように確率論的あるいはシミュレーションの解析を含むかもしれない。
  • 2.2.
  • 2.3.
  • アクティブ・トランザクションの平均個数の連続した見積りが充分近くなるまでステップ2を繰り返す。

3.

  • 最終の繰返しから、本文に記述したように性能尺度を求める。


15.6.OSのアルゴリズム」に続きます。