Two phase commit nedir ? Two phase commit ne işe yarar ?

Two phase commit dağıtık (distributed) sistemler üzerinde gerçekleşen transaction’ların her sunucuda/kaynakta/sistemde başarıyla tamamlanıp tamamlanmadığı bilgisini verir. Örneğin A, B ve C sunucularımız olsun. Veriler üzerinde değişiklik gerektiren (update, delete…) bir transaction çalıştırıldığında, A, B ve C sunucuları bu transaction’ı başarılı bir şekilde tamamlamışlarsa, A,B ve C sunucularında commit uygulanır.

Veya A ve B transaction’ı başarıyla sonlandırdı ama  C hata verdi. O zaman A ve B sunucularında rollback (değişikliklerin geri alınması) yapılır.

“Two Phase” denilmesinin sebebi, 2 farklı phase (faz) olmasıdır.

1. Phase (faz) : Başarıyla Transaction çalıştıran kaynaklar commit işlemine hazır.

2. Phase (faz) : Tüm kaynaklar işi başarıyla tamamlamışsa, tüm kaynaklar commit edilir.

 

Two phase commit nerelerde kullanılır ?

Two phase commit kullanılan yerlerden birisi mongoDB’nin config server’ları two phase commit çalışır. Böylece configuration (yapılandırma) tüm config server’larda geçerli olur.