「2フェーズコミット」と「1フェーズコミット」の違い
スポンサーリンク
予備知識
| 用語 | 意味 |
|---|---|
| データベース | データがそれっぽい感じに入っている箱。データのまとまり |
| 分散データベース | なんちゃって1つのデータベース。実際には複数のデータベースで構成されているけど1つのデータベースっぽく扱っているデータベース |
| トランザクション | 「ここから ここまでワンセット」な処理単位 |
| コミット | トランザクション処理の結果を確定させる処理 |
それぞれの用語の意味
| 用語 | 意味 |
|---|---|
| 2フェーズコミット | 「コミットできる?」「コミットして!」の2段階 踏むやり方 |
| 1フェーズコミット | 「コミットできる?」の確認なしで「コミットして!」と指示する やり方 |
似ているところ
どちらもコミットのやり方を指す用語です。
違うところ
事前に「コミットできる?」の確認をするかしないかの違いです。
2フェーズコミットはコミットする前に「コミットできる?」を確認します。
1.「コミットできる?」を確認する
2.「コミットして!」と指示する
の2段階 踏むやり方です。

1フェーズコミットはコミットする前に「コミットできる?」を確認しません。
1.「コミットして!」と指示する
の1段階なやり方です。

備考
2フェーズコミットは分散データベースで出てくるやり方です。
データベースが違うと物理的に1つのトランザクションとして扱えません。
そこで2フェーズコミットとかをして、1つのトランザクションっぽく扱うのです。
普通のデータベースでやるコミットは1フェーズコミットです。
とはいえ「1フェーズコミット」という言い方をするのは2フェーズコミットと対比されるときくらいだと思います。






