2相コミット
2相コミットは次のように動作する。まず、あるノードを調整者(coordinator)とし、ネットワーク上の他のノードを参加者(cohorts)とする。このプロトコルでは各ノードに先行書き込みログを格納する安定した記憶装置が存在し、ノードが永遠にクラッシュ状態であることはなく、先行書き込みログのデータがクラッシュで失われることもなく、任意の2ノード間で通信可能であると仮定する。特に最初の2つの仮定は重要で、1つのノードが完全に故障してしまうとデータが失われてしまう。
プロトコルは、トランザクションが最終段階に達したときに調整者が開始する。参加者は状況に応じて「合意」メッセージか「停止」メッセージで応答する。
調整者は全参加者に「コミットしてもよいか」というメッセージを送る。
参加者はトランザクションをコミットを行える状態まで進める。さらに、UndoログとRedoログにエントリを書き込む。
参加者はトランザクションが成功した場合は「合意」メッセージで応答し、失敗した場合は「停止」メッセージで応答する。
調整者は全参加者から応答メッセージがあるまで待つ。