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

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

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






