Two-Phase Commit
İki aşamalı commit (Two-Phase Commit) — Birden fazla transaction katılımcısının önce prepare, ardından coordinator kararıyla commit veya rollback yaptığı atomik commit protokolü.
Birinci Aşama: Prepare
Coordinator katılımcılara commit etmeye hazır olup olmadıklarını sorar. Hazır olan katılımcı, daha sonra commit kararını uygulayabilecek durumda olduğunu kalıcı kayıtlarla güvence altına alır ve prepared sonucu döndürür.
İkinci Aşama: Karar
Bütün katılımcılar hazırlanabildiyse coordinator commit kararı verir; aksi durumda rollback kararı gönderir. Katılımcılar nihai kararı kendi yerel transaction'larına uygular.
Failure Davranışı
Protokol atomik commit problemi çözer fakat availability maliyeti vardır. Katılımcı prepare sonrasında kararı öğrenemiyorsa kaynakları tutarak beklemek zorunda kalabilir. Coordinator ve katılımcı logları crash recovery açısından önemlidir.
2PC bir consensus protokolü değildir. Benzer biçimde dağıtık sistemde her şeyi atomik yapmanın ücretsiz yolu da değildir; uzun beklemeler ve kaynak kilitleme throughput'u sınırlayabilir.