アトミックコミット

出典: フリー百科事典『ウィキペディア(Wikipedia)』
移動: 案内検索

アトミックコミット[注釈 1]とは異なる変更の集合が一つの処理として実行されるような処理のことである。もし全ての変更が実行されれば、アトミックコミットが成功したと表現される。アトミックコミットが完了するまでに障害があった場合、"コミット"は中止され、実行された全ての変更は戻される(ロールバックされる)。この場合の障害の例として、ネットワークケーブルの接続が切れた場合や、自動的に解消できない競合が起きた場合などがある。どちらの場合でも、アトミックコミットによりシステムは整合性がある状態に置かれる。

二将軍の問題の証明をもって、この問題を解くアルゴリズムがないことが証明されている。しかし、2相コミット3相コミットなどのアルゴリズムはアトミックコミットの問題の一部を解決することが可能である。

今日では、アトミックコミットはデータベースシステムにおいて、複数の変更処理を同時にコミットする場合に起きる。これらの変更処理は同じテーブルへの異なるupdate句である場合や、複数データベースに及ぶ変更である場合がある。

アトミックコミットは現在のバージョン管理システムシステムにおいて使用され、コミットを可能にしたり、ソースへアップロードしたり、複数ファイルに変更をしつつ(これはチェンジセットと呼ばれる)、全てのファイルがアップロードされ、マージされることを保証する。アトミックコミットにおいて、同時にコミットされるファイルは単一の編集内容に関係し、その編集内容により変更された部分は全てコミットに含まれるべきである。このようにして、コードベースは常に安定である。つまり、ユーザが作業コピーを更新する際、他人の作業コピーにおいて未コミットである変更点を逃すことがなく、チェンジセットは読めないほどごちゃごちゃにならず、アトミックコミットがロールバックされた際は、単一の編集内容がコードベースより除去される。

脚注[編集]

[ヘルプ]

注釈[編集]

  1. ^ アトミック(英語:atomic)は「不可分な個体」という本来の意味で用いられている。ここでは「原子」とは無関係。

関連項目[編集]