PostgreSQL İçin Yeni Bir Bağlantı Havuzlayıcı: PgDog Neden Farklı? Siber Güvenlik

PostgreSQL İçin Yeni Bir Bağlantı Havuzlayıcı: PgDog Neden Farklı?

PgDog, PostgreSQL için yeni bir bağlantı havuzlayıcı. PgBouncer'dan farklı olarak SET ve LISTEN/NOTIFY komutlarını destekler, çoklu iş parçacığı ile y

PostgreSQL ölçeklendirme ihtiyacı duyan geliştiricilerin karşısına çıkan en büyük sorunlardan biri, bağlantı sayısının sınırlı olmasıdır. Bu sorunu çözmek için PgBouncer, RDS Proxy, Pgpool-II gibi birçok bağlantı havuzlayıcı mevcut. Peki neden yeni bir tane daha yapıldı? PgDog, bu araçların sunduğu çözümlerin yetersiz kaldığı noktalara odaklanarak geliştirildi. En büyük farkı, mevcut havuzlayıcıların getirdiği 'sızdıran soyutlama' sorununu ortadan kaldırması.

Geleneksel bağlantı havuzlayıcılar, SET komutları gibi oturum kontrollerini işleyemez. Bu, geliştiricilerin uygulama kodlarını değiştirmesini veya bu özelliklerden tamamen vazgeçmesini gerektirir. PgDog ise dahili SQL ayrıştırıcısı sayesinde SET komutlarını algılar, değişkenleri depolar ve istemci ile sunucu arasında tutarlılığı sağlar. Böylece geliştiriciler, Row Level Security (RLS) gibi önemli özellikleri kullanmaya devam edebilir.

Bir diğer önemli özellik ise LISTEN/NOTIFY desteği. PostgreSQL'in yerleşik yayın/abone sistemini kullanan bu komutlar, çoğu havuzlayıcıda çalışmaz. PgDog, bu komutları dahili olarak işleyerek mesajları birden fazla PgDog süreci arasında taşır. Bu sayede geliştiriciler, SQS veya Redis gibi ek araçlara ihtiyaç duymadan PostgreSQL'in bu güçlü özelliğini kullanmaya devam edebilir.

Gelecekte Ne Bekleniyor?

PgDog, Rust ve Tokio async runtime üzerine inşa edilmiştir. Çoklu iş parçacığı desteği sayesinde tek bir PgDog süreci, birden fazla CPU kullanarak daha fazla istemci ve sorguya hizmet verebilir. Bu, ani trafik artışlarında otomatik ölçeklendirme beklemeden hızlı yanıt verilmesini sağlar. Açık kaynak olan PgDog, 2 milyon sorgu/saniye gibi yüksek bir performansla üretimde kullanılmaktadır.

Paylaş: