Veritabanı Mimarisi

Dağıtık Veritabanı Sistemlerinde Veri Tutarlılığı ve Sharding Stratejileri

Canberk Özdemir 19 Temmuz 2026 10 dk Okuma Süresi

Modern web uygulamalarının ölçeklenmesi, veritabanı katmanında dikey büyümenin (vertical scaling) sınırlarına ulaşıldığında yatay büyümeyi (horizontal scaling) zorunlu kılar. Dağıtık veritabanı mimarileri, veriyi birden fazla fiziksel sunucuya bölerek yüksek erişilebilirlik sunar. Ancak bu durum, CAP teoremi gereği tutarlılık (consistency) ve bölünebilme toleransı (partition tolerance) arasında kritik bir denge kurulmasını gerektirir.

ACID Prensipleri Dağıtık Mimaride Nasıl Korunur?

Geleneksel ilişkisel veritabanlarında tek bir sunucu üzerinde sağlanan ACID (Atomicity, Consistency, Isolation, Durability) garantileri, sistem dağıtık hale geldiğinde karmaşıklaşır. İki Aşamalı Taahhüt (Two-Phase Commit - 2PC) protokolü, ağ üzerindeki tüm düğümlerin bir işlemi ya tamamen onaylamasını ya da tamamen geri almasını sağlar. Bu yöntem tutarlılığı korur ancak ağ gecikmelerine bağlı olarak performans maliyeti oluşturabilir.

"Büyük veri sistemlerinde tutarlılıktan ödün vermeden ölçeklenmek imkansızdır. Önemli olan, iş modeline uygun gecikme toleransını doğru belirlemektir."

Veri Bölümleme (Sharding) Yöntemleri

Veri tabanındaki yükü dengeli bir şekilde dağıtmak amacıyla kullanılan temel sharding yaklaşımları şunlardır:

Veritabanı Modellerinin Performans Karşılaştırması

Farklı mimari yapıların yoğun okuma ve yazma işlemlerinde gösterdiği throughput değerleri analiz edilmiştir:

Mimari Tipi Yazma Performansı Okuma Performansı Yatay Ölçeklenme
Tekil SQL (Monolitik) Orta Yüksek Kısıtlı
Master-Slave Relational Orta Çok Yüksek Sadece Okuma Yönünde
Dağıtık NoSQL (Sharded) Çok Yüksek Yüksek Sınırsız (Mükemmel)

Replikasyon Gecikmeleri ve Nihai Tutarlılık

Asenkron replikasyon kullanılan sistemlerde, ana sunucuya (master) yazılan bir verinin ikincil sunuculara (slave) ulaşması milisaniyeler sürebilir. Bu durum, kullanıcının veriyi güncelledikten ве hemen sonra eski veriyi görmesine (read-after-write inconsistency) yol açabilir. Bu tip senaryoları engellemek için kritik verilerde senkron, loglama işlemlerinde ise asenkron replikasyon modelleri tercih edilmelidir.