Replikasyon Mimarisi (Asenkron ve Senkron) Seçim ve Karar Rehberi
- Gökhan Dedeoğlu
- 1 saat önce
- 2 dakikada okunur

Yazılarımızın önceki bölümlerinde yüksek erişilebilirliğin (HA) yapı taşlarını incelemiş, ardından hem Asenkron Replikasyonun performans odaklı dünyasına hem de Senkron Replikasyonun sıfır veri kaybı vadeden garantici yapısına derinlemesine odaklanmıştık.
Bu makalede, detaylarını ayrı ayrı ele aldığımız bu iki replikasyon modelini karşı karşıya getiriyor, farklarını analiz ediyor ve işletmeniz için en doğru mimari kararı vermenizi sağlayacak pratik seçim yöntemlerini sunuyoruz.
1. Hızlı Bir Özet: İki Modelin Temel Karakteristiği
Karşılaştırmaya geçmeden önce, önceki yazılarımızda detaylandırdığımız her iki modelin ana felsefesini kısaca hatırlayalım:
Asenkron Replikasyon (Performans Odaklı): Ana sunucu (Primary) veriyi kendi diskine yazar yazmaz istemciye “işlem başarılı” yanıtı döner. Verinin kopyalanma süreci arka planda, bağımsız bir akış olarak devam eder.
Senkron Replikasyon (Güvenlik Odaklı): Ana sunucu veriyi kendi diskine yazdıktan sonra karşı sunucunun (Standby) da veriyi aldığını (veya diskine yazdığını) teyit edene kadar istemciyi bekletir.
2. Karşı Karşıya: Kritik Boyutlarda Senkron vs. Asenkron
Her iki yöntemi de bir veritabanı mimarının gözünden, en çok önem verdiğimiz 4 ana başlık altında kıyaslayalım:
A. Performans ve Gecikme (Latency)
Asenkron: Uygulamanızın yazma hızı sadece ana sunucunun donanım gücüyle sınırlıdır. Milisaniyenin altındaki (sub-millisecond) gecikme süreleriyle çalışabilirsiniz.
Senkron: Her COMMIT işleminde ağ gecikmesi (Round-Trip Time - RTT) ve Standby sunucunun disk yazma süresi eklenir. Sunucular farklı veri merkezlerindeyse, bu durum yazma performansını ciddi ölçüde düşürebilir.
B. Veri Güvenliği (RPO — Recovery Point Objective)
Asenkron: Primary sunucu aniden çöktüğünde, Standby’a henüz ulaşmamış milisaniyelik veya saniyelik veriler kaybolabilir. RPO > 0'dır.
Senkron: İstemciye “tamamlandı” denilen hiçbir veri kaybolmaz. RPO = 0 garantisi sunar.
C. Sistem Ayakta Kalma Süresi (RTO — Recovery Time Objective)
Asenkron: Failover (yedek sisteme geçiş) süreci son derece hızlıdır. Veri kaybı göze alınarak Standby hemen Primary yapılabilir.
Senkron: Standby çökerse ve sistemde quorum (çoğunluk) mekanizması doğru kurgulanmadıysa, Primary sunucu da yazma işlemlerini durdurur. Bu durum sistemin tamamen durmasına (downtime) yol açabilir.
3. Karşılaştırma Tablosu
İki model arasındaki farkları net bir şekilde görmek için hazırladığım özet tablo:

4. Doğru Seçim Yöntemi: Karar Ağacı
Sisteminiz için hangi mimariyi seçeceğinize karar verirken kendinize şu soruları sormanız gerekir:

İş modeliniz finansal veya yasal yükümlülükler barındırıyor mu?
Evet ise: Kesinlikle Senkron replikasyona yönelmelisiniz.
Uygulamanız milisaniyelik yazma hızlarına ihtiyaç duyuyor mu (örn: IoT veri toplama, oyun sektörü)?
Evet ise: Tercihiniz Asenkron olmalıdır.
Sunucularınız farklı kıtalarda veya uzak veri merkezlerinde mi yer alıyor?
Evet ise: Yüksek ping süreleri nedeniyle Asenkron replikasyon neredeyse tek seçenektir.
5. Hibrit Yaklaşım: En İyi İki Dünyanın Birleşimi
Kendinizi tek bir seçenekle sınırlamak zorunda değilsiniz. PostgreSQL’in esnek mimarisi, aynı veritabanı kümesinde her iki yöntemi de bir arada kullanmanıza olanak tanır.
Nasıl Kurgulanır?
Sisteminizdeki genel replikasyon modunu Asenkron olarak ayarlarsınız. Bu sayede loglama, sayfa gösterimleri veya geçici oturum verileri gibi kritik olmayan yazma işlemleri ultra hızlı gerçekleşir.
Ancak, bir kullanıcının ödeme yaptığı veya bakiye güncellediği o kritik kod bloğuna geldiğinizde, sadece o oturuma (session) özel olarak senkron modu aktif edebilirsiniz:
-- Sadece bu transaction için senkron replikasyonu zorunlu kıl
BEGIN;
SET LOCAL synchronous_commit = 'on';
UPDATE kullanici_cuzdan SET bakiye = bakiye - 100 WHERE user_id = 12345;
COMMIT;Bu hibrit yaklaşım sayesinde, sisteminizin %95'i asenkron replikasyonun getirdiği yüksek performansla çalışırken, kritik olan %5'lik kısım senkron replikasyonun getirdiği sıfır veri kaybı güvencesiyle korunur.
Sonuç
Doğru replikasyon modelini seçmek, yüksek erişilebilirlik mimarisinin en kritik aşamalarından birini oluşturmaktadır. Yanlış bir karar, ya performans darboğazlarına ya da acı verici veri kayıplarına yol açabilir.



Yorumlar