EMZETT.
Login

Connection Pooling

Kurz: Ein Connection Pool hält eine Handvoll bereits geöffneter Datenbankverbindungen bereit und verleiht sie kurz an Anfragen, statt für jede Anfrage eine neue Verbindung aufzubauen.

Genauer: Eine neue Datenbankverbindung kostet Zeit (Netzwerk, TLS, Anmeldung) und Speicher auf dem Server. Der Pool spart das, indem Verbindungen wiederverwendet werden. Ist keine frei, wartet die Anfrage kurz in der Schlange.

Im Detail

  • Größe: Zu klein ergibt Wartezeiten, zu groß überlastet die Datenbank. Als Startpunkt dienen wenige Verbindungen pro Server-Kern.
  • Serverless: Viele kurzlebige Instanzen erschöpfen schnell das Limit der Datenbank. Dort helfen Pooler wie PgBouncer oder HTTP-basierte Treiber.
  • Lecks: Wird eine Verbindung nie zurückgegeben (fehlendes release), läuft der Pool leer und alles hängt.
  • Timeouts: Maximale Wartezeit und Leerlaufzeit verhindern hängende Anfragen.
  • Transaktionen: Eine Transaktion belegt ihre Verbindung bis zum Ende.

Siehe auch: N+1-Problem