data-infra
Sözlük ↗Çoğaltma (Replication)
Çoğaltma (replication), bir veritabanının senkronize kopyalarını birden fazla sunucuda tutma pratiğidir; böylece veri tek bir hata noktası olmaktan çıkar ve okuma trafiği birden fazla makineye dağıtılabilir. Sharding'in veriyi yatay olarak böldüğü (farklı sunucular farklı satır alt kümelerini tuttuğu) yerde, çoğaltma tam tersini yapar - her replika, birincil ("lider" veya "master" da denir) sunucuyla senkronize tutulan aynı verinin tam bir kopyasını tutar. AI/SaaS kurucuları için neden önemli: çoğaltma, her production SaaS'ın ihtiyaç duyduğu iki şeyin temelini oluşturur - kullanılabilirlik (birincil veritabanı sunucusu arızalanırsa, devralması için bir replika yükseltilebilir ve kesinti süresi en aza indirilir) ve okuma ölçeklendirmesi (analitik sorgular, raporlama gösterge panelleri ve veritabanından yoğun okuma yapan AI özellikleri - RAG için bağlam çekmek gibi - işlemsel yazmalar için hızlı kalması gereken kaynaklar için birincil ile rekabet etmek yerine okuma replikalarına yönlendirilebilir). Nasıl çalışır: standart desen birincil-replika (veya lider-takipçi) çoğaltmasıdır - tüm yazmalar birincile gider, o da bir değişiklik günlüğünü (Postgres'te write-ahead log/WAL) senkron kalmak için bu değişiklikleri uygulayan bir veya daha fazla replikaya akıtır. Çoğaltma senkron olabilir (birincil, yazmayı tamamlandı olarak onaylamadan önce bir replikanın yazmayı aldığını onaylamasını bekler - daha güvenlidir, ama gecikme ekler) ya da asenkron olabilir (birincil yazmayı hemen onaylar ve replikalar kısa süre sonra yetişir - daha hızlıdır, ama replikasyon gecikmesi getirir - bir replikanın verisinin birincile göre bayat olduğu kısa bir pencere). Replikasyon gecikmesi, uygulama tasarımında somut olarak önemlidir: yaygın bir hata, veri yazıp hemen ardından, replikasyon henüz yetişmeden bir okuma replikasından geri okumak ve bayat veya eksik bir sonuç almaktır - AI özelliklerinin özellikle eğilimli olduğu klasik bir "kendi yazdığını oku" (read-your-own-writes) tutarlılık sorunu (örneğin, bir kullanıcı bir doküman yükler, uygulama henüz yeni satırı almamış bir replikadan okuyarak onu embed etmeye çalışır). Yönetilen veritabanı hizmetleri (AWS RDS, Google Cloud SQL, Neon, PlanetScale) genellikle tek tıkla okuma replikası oluşturma sunar. Somut örnek: bir AI raporlama SaaS'ı, AI tarafından yazılmış özet raporlar üretmek için tüm müşteri verisi üzerinde pahalı gece toplama sorguları çalıştırır. Bu sorguları birincil production veritabanına karşı çalıştırmak canlı kullanıcı trafiğiyle rekabet edip uygulamayı herkes için yavaşlatma riski taşır; bunun yerine raporlama işi, ağır analitik yükü gerçek kullanıcıların gerçek istekler yaptığı ve hızlı kalması gereken işlemsel iş yükünden izole ederek, özel bir okuma replikasını sorgulayacak şekilde yapılandırılır.
İlgili terimler