Connection Pool Nedir?
İngilizce: Connection Pool
Connection pool, veritabanı veya servis bağlantılarını açık tutup tekrar kullanan, gecikmeyi ve bağlantı yükünü azaltan havuzdur.
Connection Pool Nedir?
Connection pool, uygulamanın her istek için veritabanına sıfırdan bağlanmak yerine önceden açılmış bağlantıları tekrar kullanmasıdır. Bağlantı kurmak kimlik doğrulama, ağ el sıkışması ve sunucu tarafında kaynak ayırma gerektirdiği için yoğun trafikte ciddi maliyet yaratır.
Nasıl Çalışır?
Uygulama başlatıldığında veya ilk istek geldiğinde belirli sayıda bağlantı havuza alınır. Bir işlem gerektiğinde havuzdan boş bağlantı alınır, sorgu çalıştırılır ve bağlantı kapatılmak yerine havuza geri bırakılır. Havuz doluysa yeni istek bekletilebilir, reddedilebilir veya sınıra kadar yeni bağlantı açılabilir.
PostgreSQL gibi veritabanlarında connection pool ayarları uygulama sunucusu sayısıyla birlikte düşünülmelidir. Her replika kendi havuzunu açıyorsa toplam bağlantı sayısı veritabanı limitini hızla aşabilir.
Temel Ayarlar
- Minimum ve maksimum bağlantı: Boşta kaynak tüketimi ile ani trafik ihtiyacı arasında denge kurar.
- Idle timeout: Kullanılmayan bağlantıların ne zaman kapatılacağını belirler.
- Acquire timeout: Havuzdan bağlantı alınamazsa isteğin ne kadar bekleyeceğini sınırlar.
- Health check: Kopmuş bağlantıların tekrar kullanılmasını önler.
İş Dünyasında Kullanımı
Connection pool, raporlama panelleri, e-ticaret sepetleri ve çok kullanıcılı SaaS uygulamalarında SQL sorgularının daha öngörülebilir çalışmasını sağlar. Yanlış boyutlandırılmış havuz ise veritabanını kilitleyebilir; bu yüzden gerçek trafik, sorgu süresi ve worker sayısı birlikte ölçülmelidir.
İlgili Terimler
Veritabanı işlemi, birden fazla okuma ve yazmayı tek bütün olarak çalıştırıp ya tamamen onaylar ya da geri alır.
PostgreSQLPostgreSQL, ilişkisel veri modelini JSON, indeksleme ve genişletilebilirlik özellikleriyle birleştiren açık kaynaklı ACID uyumlu veritabanıdır.
SQLSQL, ilişkisel veritabanlarında tabloları sorgulamak, değiştirmek ve raporlamak için kullanılan standart veri işleme dilidir.