Two-Phase Commit

Türkçe karşılığı: İki aşamalı commitAlan: Dağıtık Sistemler

İ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.

İlgili Kavramlar