Çok kiracılı (multi-tenant) SaaS ve yüksek hacimli veritabanlarınız için PostgreSQL yatay sharding altyapısını planlayın. Shard boyutlandırmasını, co-located join verimliliğini, çapraz düğüm ağ gecikmesini ve bulut dağıtık veritabanı TCO tasarrufunu hesaplayın.
Çok kiracılı (multi-tenant) SaaS ve büyük veri tablolarınızı VDS kümelerinde yatayda ölçekleyin. Co-located join ile sıfır ağ gecikmesi sağlayın.
| Mimari Çözüm | Maks Yazma TPS | Node Başı RAM | Disk I/O Darboğazı | Aylık Maliyet |
|---|---|---|---|---|
| Citus Distributed (4 Worker) | 29,400 TPS | 79 GB | Düşük | $185 |
| CockroachDB (Raft Konsensüsü) | 12,800 TPS | 32 GB | Düşük (Raft 2PC Yavaşlığı) | $220 |
| Single-Node Postgres (Tekil Disk) | 9,000 TPS | 308 GB | Kritik | $120 |
Tek sunuculu PostgreSQL'de 1.5 TB veri ve yüksek yazma akışında tek bir NVMe diskin WAL yazma kuyruğu kilitlenir. Citus ise shard'ları 4 bağımsız VDS sunucusuna dağıtarak her diskin I/O bant genişliğini paralel işletir.
Tek bir PostgreSQL sunucusu 1-2 TB aktif veri hacmine ulaştığında, en sık erişilen dizinler ve tablolar `shared_buffers` RAM alanına sığmamaya başlar. Diskten sürekli okuma yapılması NVMe kuyruğunu kilitler.
Ayrıca yazma işlemleri tek bir WAL (Write-Ahead Log) diskiyle sınırlıdır. Saniyede 10.000+ yazma işleminde disk fsync gecikmesi tavan yapar ve VACUUM işlemleri sistemi kilitler.
Citus tabloları onlarca bağımsız shard parçasına böler ve bunları 4-8 farklı VDS worker sunucusuna dağıtır. Her worker kendi yerel PostgreSQL motorunu ve bağımsız NVMe SSD diskini çalıştırır.
Böylece yazma yükü 4 diske bölünür ve kümenin yazma kapasitesi 30.000+ TPS'e tırmanır. Çalışma kümesi (working set) parçalandığı için her worker kendi verisini tamamen RAM'inde tutabilir.
Bir sütuna (ör. tenant_id) göre hash ile shard'lara bölünür. Siparişler, kullanıcılar ve loglar bu modelde saklanır.
Tüm worker düğümlerine tam kopya olarak replike edilir. Dağıtık tablolarla yerel JOIN yapılmasına imkan tanır.
Aynı dağıtım anahtarına sahip tablolar aynı fiziksel sunucuya eşlenir, sıfır ağ yüküyle ilişkisel JOIN sağlanır.