平成31年度 春期 午前Ⅱ 問2
トランザクション処理
チェックポイントに関する問題
次のチェックポイントの仕様に従ってトランザクション処理を行うDBMSにおいて,チェックポイントの発生頻度は1時間当たり何回か。ここで,トランザクションは毎秒20件発生し,1トランザクションごとに消費されるデータベースバッファ領域のデータ量及びログファイルに書き出すログ長はどちらも10kバイトとする。データベースバッファ領域の容量は480Mバイトとし,一つのログファイルのサイズは240Mバイトとする。1Mバイト=10^3kバイトとする。開始時点では,データベースバッファ領域,ログファイルともに初期化状態であるとする。DBMSは,ログファイルを二つもち,一方を使い切ったら他方に切り替え,使い切った一方をアーカイブして初期化する。ログファイルへの書込み処理はWALプロトコルに従う。
〔チェックポイントの仕様〕
1. チェックポイントが発生する条件
A. データベースバッファ領域に空きがなくなったとき,又は
B. ログファイルが切り替わるとき
2. チェックポイント終了時のデータベースバッファの状態
データベースバッファ領域は,データベースファイルへの反映後,初期化される。
- ア1.5
- イ2
- ウ3
- エ6
答えと解説を見る
✓ これが正解ウ3
解説
ログファイルが20分ごとに切り替わるので、チェックポイントは1時間に3回です。
1秒当たりに書き込む量を先に求め、二つの発生条件のどちらが先に来るかを比べます。トランザクションは毎秒20件、1件当たり10kバイトなので、データベースバッファもログも毎秒200kバイトずつ増えます。ログファイル1つは240Mバイト=240,000kバイトなので、240,000÷200=1,200秒、つまり20分で使い切って切り替わり、そのたびにチェックポイントが発生します。一方、バッファ480Mバイトを使い切るには480,000÷200=2,400秒かかりますが、20分ごとのチェックポイントでバッファは初期化されるので、空きがなくなる条件には一度も届きません。したがって発生は1,200秒ごとで、3,600÷1,200=3回です。条件が二つあるときは、早く来る方がもう一方をリセットしていないかを確かめるのが見分け方です。
ほかの選択肢はなぜ違うのか
- ア1.5:1.5回は、バッファ480Mバイトが埋まる2,400秒ごとにだけ発生すると考えた値です(3,600÷2,400)。実際にはその前の1,200秒の時点でログファイルが切り替わってチェックポイントが起き、バッファが初期化されるので、この周期にはなりません。
- イ2:2回になるには1,800秒ごとの発生が必要ですが、毎秒200kバイトで1,800秒は360Mバイトにあたり、バッファの480Mバイトともログファイルの240Mバイトとも合いません。設問の条件からは、この回数を導けません。
- エ6:6回になるには600秒ごと、つまり120Mバイトごとの発生が必要です。これはログファイル1つの半分の量で、設問のどちらの発生条件にも当たりません。ログファイルを二つもつことを使っても、この回数は導けません。
この問題の用語
- トランザクションデータベースへの一連の処理をひとまとめにした単位のこと。途中で失敗すると開始前の状態へ戻され、中途半端な更新が残りません。
- DBMSデータベースを管理するソフト。複数の処理が同じデータを同時に更新しても矛盾しないよう、排他制御などを行います。
- データベースたくさんのデータを決まった形で貯め、探したり書き換えたりできるようにした仕組み。多くの人が同時に使うことを前提にしています。
- ログいつ誰が何をしたかを、機器やソフトウェアが自動で残していく記録です。あとから出来事をたどれるので、事故の調査や不正の発見に使われます。
- プロトコル通信するときの、決まりごとや手順のまとまりのことをいいます。送る側と受ける側が同じものに従うことで、やり取りが成り立ちます。
出典:平成31年度 春期 データベーススペシャリスト試験 午前Ⅱ 問2
同じ用語が出る問題
- 令和7年度 秋期 午前Ⅱ 問18:ブロックチェーンに関する問題(トランザクション)
- 令和7年度 秋期 午前Ⅱ 問17:デッドロックに関する問題(DBMS)
- 令和6年度 秋期 午前Ⅱ 問14:多版同時実行制御に関する問題(プロトコル)
- 令和5年度 秋期 午前Ⅱ 問19:DRDoSに関する問題(ログ)
- 令和5年度 秋期 午前Ⅱ 問2(プロトコル)
この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)