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.