WALプロトコルとバッファ・ログ容量に基づくチェックポイント発生頻度の計算

DBMSにおけるバッファ消費とログ切り替えに伴うチェックポイント発生頻度を計算する問題です。 毎秒の消費データ量の計算: 毎秒20件のトランザクションが発生し、1件当たり10 kバイトのバッファおよびログを消費するため、消費速度はそれぞれ $20 \times 10\text{ kバイト/秒} = 200\text{ kバイト/秒}$ です。 バッファが満杯になる時間の計算: バッファ容量は $480\text{ Mバイト} = 480 \times 10^3\text{ kバイト}$ であるため、空きがなくなるまでの時間は $480{,}000 / 200 = 2{,}400\text{ 秒} = 40\text{ 分}$ です。 ログファイルが切り替わる時間の計算: 1つのログファイルのサイズは $240\text{ Mバイト} = 240 \times 10^3\text{ kバイト}$ であるため、使い切って切り替わるまでの時間は $240{,}000 / 200 = 1{,}200\text{ 秒} = 20\text{ 分}$ です。 チェックポイント発生契機の判定: 条件A(40分後)と条件B(20分後)のいずれか早い方でチェックポイントが発生するため、開始から20分後にログ切り替えによってチェックポイントが発生します。 チェックポイント終了後の状態: チェックポイント終了時にバッファ領域は初期化(空)されるため、次の周期も同様に20分後にログ切り替えによるチェックポイントが発生します。 1時間当たりの発生頻度: 1時間(60分)の間に発生する回数は、$60\text{ 分} / 20\text{ 分} = 3\text{ 回}$ となります。 したがって、正解は ウ の 3回 です。

次のチェックポイントの仕様に従ってトランザクション処理を行うDBMSにおいて,チェックポイントの発生頻度は1時間当たり何回か。ここで,トランザクションは毎秒20件発生し,1トランザクションごとに消費されるデータベースバッファ領域のデータ量及びログファイルに書き出すログ長はどちらも10kバイトとする。データベースバッファ領域の容量は480Mバイトとし,一つのログファイルのサイズは240Mバイトとする。1 Mバイト=103 kバイト1\text{ Mバイト} = 10^3\text{ kバイト} とする。開始時点では,データベースバッファ領域,ログファイルともに初期化状態であるとする。DBMSは,ログファイルを二つもち,一方を使い切ったら他方に切り替え,使い切った一方をアーカイブして初期化する。ログファイルへの書込み処理はWALプロトコルに従う。

〔チェックポイントの仕様〕

  1. チェックポイントが発生する条件  A. データベースバッファ領域に空きがなくなったとき,又は  B. ログファイルが切り替わるとき

  2. チェックポイント終了時のデータベースバッファの状態  データベースバッファ領域は,データベースファイルへの反映後,初期化される。

出典平成31年春期 午前Ⅱ
ア
1.5
イ
2
ウ
3
エ
6