基本情報技術者試験「分散トランザクション」の問題
分散データベースで複数サイトにまたがるトランザクションの一貫性を保つ2相コミットの第1相(準備相)で行われることはどれか。
ア調停者が各サイトに最終確定を指示し各サイトがデータを書き込む
イ調停者が各サイトにコミット可能か問い合わせ、各サイトが可否を回答する
ウ各サイトが独立に判断し他サイトと無関係に勝手にコミットする
エ障害発生サイトのデータをログから自動で再構築し復旧する
正解
イ.調停者が各サイトにコミット可能か問い合わせ、各サイトが可否を回答する
2相コミットの第1相(準備相)では、調停者(コーディネータ)が全参加サイトに『コミットできるか』を問い合わせ、各サイトはコミット可能なら準備完了を回答する。全員が可なら第2相で確定するため、この説明が正しい。
?選択肢ごとの解説
ア ×調停者が最終確定を指示し各サイトが書き込むのは第2相(コミット相)の動作であり、第1相ではなく順序が後である。
イ ○2相コミットの第1相(準備相)では、調停者(コーディネータ)が全参加サイトに『コミットできるか』を問い合わせ、各サイトはコミット可能なら準備完了を回答する。全員が可なら第2相で確定するため、この説明が正しい。
ウ ×各サイトが独立に勝手にコミットするのは協調を行わない動作であり、全サイトの合意で一貫性を保つ2相コミットの目的に反する。
エ ×ログからの自動再構築は障害回復(ロールフォワード)の説明であり、2相コミットのコミット手順とは別の機能である。
✎くわしく
2相コミットは第1相(準備相)で全サイトに可否を問い合わせ合意を取り、第2相(コミット相)で全員可ならコミット、一つでも否ならロールバックを全サイトに指示する。これにより分散環境でも『全か無か』の原子性を保証する。調停者がブロックすると参加者が待機する弱点もある。
✓本番での押さえどころ
試験のコツ
2相コミットは『1相目で全員に確認、2相目で全員に確定/取消』。準備相=問い合わせ、コミット相=指示と覚える。
覚え方
結婚式の『誓いますか?(第1相の確認)』→『では夫婦と認めます(第2相の確定)』の二段階になぞらえる。
よくある誤り
第1相と第2相の役割を取り違える。第1相は『問い合わせと合意』、第2相は『確定または取消の指示』と段階で区別する。
データベースの他の問題
この問題を、AIの8-ways解説つきで。
無料ではじめる →基本情報技術者試験の演習を、一問ごとに「なぜ」まで。まずは無料で。
ukamiru 過去問 · 基本情報技術者試験 · fe-a3-0249