本文へ移動
✓ 合格ドリル基礎から練習

応用情報技術者 / 条件・事例の練習

応用情報技術者試験基礎・応用

条件を読む・根拠を説明する

同時更新の取りこぼし

条件を整理し、答えを選んでから解き方を確認しましょう。

在庫10をT1とT2が同時に読み、各取引が1個減らした値9を後から書き戻した。両方が確定した最終在庫は9だった。適切な説明と対策の方向はどれか。

答え・解き方を読む

更新の取りこぼし。ロックや競合検出等で直列化可能な更新を設計

図で見る
同じ旧値を読んだ更新が上書きされる
同じ旧値を読んだ更新が上書きされる
同じ旧値を読んだ更新が上書きされる図を拡大して見る ↗

同じ旧値を読んだ二処理が各自の計算結果を書き、後の書込みが先の更新を失わせます。ロック・原子的更新など、問題に対応した排他方法を検討します。

図は問題の関係を整理する模式図です。記号には各問題の数値を当てはめます。寸法・面積・時間の縮尺や、実施工の全条件は表していません。

考える順序

  1. 1正しく2個減れば最終在庫は8
  2. 2同じ旧値からの書戻しで片方の減算が失われた
  3. 3原子的な減算やロック・競合検出などで同時更新を制御する

選択肢ごとの理由

  • 比較 · ダーティリード。読込値をキャッシュし続ける

    他取引の未確定値を読んだという条件ではありません。

  • 比較 · 主キー重複。列名だけ変更する

    行の識別子重複が原因ではありません。

  • 比較 · 計算丸め誤差。整数を浮動小数へ変える

    整数1の減算で丸めが原因になる例ではありません。

  • 正解 · 更新の取りこぼし。ロックや競合検出等で直列化可能な更新を設計

    正しく2個減れば最終在庫は8。同じ旧値からの書戻しで片方の減算が失われた。原子的な減算やロック・競合検出などで同時更新を制御する。

学習アプリで条件・事例を5問 →

学習の参考資料

用語・仕組みを学ぶための参考資料です。設問の条件と、このページの解き方を併せて確認してください。

教材の作成・確認方法

関連する要点をまとめて読む

技術の入口の要点と練習一覧 →