分散データベースと2相コミットとは?ぶんさんでーたべーすとにそうこみっと
分散データベースと2相コミットとは、複数拠点のデータベースにまたがる更新を、全部コミットか全部ロールバックのどちらかへ揃えるための調整手順。第1フェーズで調整役が全拠点へ「準備できたか」を問い、全員が可と答えたときだけ、第2フェーズでコミットを指示する。拠点間の往復が2回発生するため、経路のRTTが確定時間に上乗せされる。
最終更新:2026-10-06
ネットワークSPを最短で暗記・合格する →背景
拠点ごとにDBを分けると、片方だけ更新が通って他方が失敗する状態が起こり得る。在庫や残高のような値では、この不一致がそのまま業務事故になる。全員の合意を確かめてから確定させる手順を挟むことで、部分的な成功を無くした。ネットワークから見れば、合意のために往復が増え、経路の遅延と切断が業務トランザクションの成否へ直結するようになる。
具体例
本社と支社のDBにまたがる在庫更新で、RTTが20ミリ秒の回線なら2フェーズぶんの往復だけで最低40ミリ秒が上乗せされる。DBを片方だけRTT 30ミリ秒の遠隔拠点へ移すと、1件あたりの確定時間が跳ね、夜間バッチが時間内に終わらなくなる。配置距離とトランザクション設計はセットで検討することになる。
試験での引っ掛け
2相コミットの「2相」は、同時実行制御である2相ロックの「2相」とは別物で、混同が定番。また万能ではなく、拠点が「準備完了」と答えた後に調整役が落ちたり経路が切れたりすると、各拠点はコミットもロールバックもできず資源を握ったまま待ち続ける(ブロッキング)。経路の冗長化が業務要件として効くのはこのため。
関連用語
出典・参考
解説は資格暗記が独自に作成しています。過去問の出典は各問題に記載のとおりです。