平成30年度 秋期 午前 問29
データベース
ロックの粒度に関する説明
ロックの粒度に関する説明のうち,適切なものはどれか。
- アデータを更新するときに,粒度を大きくすると,他のトランザクションの待ちが多くなり,全体のスループットが低下する。
- イ同一のデータを更新するトランザクション数が多いときに,粒度を大きくすると,同時実行できるトランザクション数が増える。
- ウ表の全データを参照するときに,粒度を大きくすると,他のトランザクションのデータ参照を妨げないようにできる。
- エ粒度を大きくすると,含まれるデータ数が多くなるので,一つのトランザクションでかけるロックの個数が多くなる。
答えと解説を見る
✓ これが正解アデータを更新するときに,粒度を大きくすると,他のトランザクションの待ちが多くなり,全体のスループットが低下する。
解説
ロックのかけ方を粗くしたときに何が起きるかを選びます。
ロックの粒度とは、一度のロックで押さえる範囲の粗さを指します。行を一つずつ押さえるやり方が細かい側、表そのものをまとめて押さえるやり方が粗い側です。範囲を粗くすると、かけるロックの数そのものは少なく済み、管理にかかる手間は軽くなります。その代わり、押さえられた範囲へ触れたい他の処理はすべて順番待ちに入ります。実際には無関係な行まで巻き込まれるため、同時に走れる処理の数が減ります。結果として、単位時間あたりに片づく仕事の量、つまりスループットは落ちていきます。細かくすれば待ちは減りますが、今度は管理そのものの負荷が増えます。かけ外しの記録が膨らむからです。実際の設計では、更新の多い表だけ細かくするような使い分けもされます。どちらへ寄せるかは、待ちと管理の手間を見比べて決めることになります。
ほかの選択肢はなぜ違うのか
- イ同一のデータを更新するトランザクション数…:範囲を粗くすると押さえられる領域が広がるので、同時に走れる処理はむしろ減っていきます。増えると述べている点が逆です。同時に走らせたい場面では、押さえる範囲を狭めて衝突の起きる場所を絞り込む向きへ寄せることになります。
- ウ表の全データを参照するときに,粒度を大き…:参照だけの処理どうしは共有の形で同居できますが、粗くすること自体が妨げを減らす働きにはなりません。むしろ広い範囲を押さえるほど、更新したい処理を待たせる場面が増えます。因果の向きが逆になっている肢です。
- エ粒度を大きくすると,含まれるデータ数が多…:一回あたりが受け持つデータは確かに増えますが、その分だけ回数は少なく済みます。かける個数が多くなると述べている点が食い違っています。個数が増えるのは、行ごとに押さえていく細かい側のやり方で、この肢とは反対の向きです。
この問題の用語
- トランザクションデータベースへの一連の処理をひとまとめにした単位のこと。途中で失敗すると開始前の状態へ戻され、中途半端な更新が残りません。
出典:平成30年度 秋期 基本情報技術者試験 午前 問29
同じ用語が出る問題
- 令和6年度 科目A 問7:原子性に関する問題(トランザクション)
- 令和5年度 科目A 問7:ACIDに関する問題(トランザクション)
- 令和元年度 秋期 午前 問29:ロックが発生しないデータ処理順序(トランザクション)
- 令和元年度 秋期 午前 問28:取ることのない状態遷移(トランザクション)
- 平成30年度 秋期 午前 問55:キャパシティ管理に関する問題(トランザクション)
この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)