Digital Transformation
Connection Pooling
TL;DR: Connection pooling adalah teknik menyimpan sekumpulan koneksi database yang sudah aktif dalam sebuah kolam (pool), lalu memakainya ulang. Membuka koneksi baru itu mahal, jadi memakai ulang koneksi membuat aplikasi lebih cepat dan tahan beban tinggi.
Apa itu Connection Pooling?
Connection pooling adalah lapisan pengelola koneksi yang duduk di antara aplikasi dan database. Alih-alih membuka lalu menutup koneksi setiap kali ada permintaan, pool menyimpan beberapa koneksi siap pakai dan meminjamkannya bergantian. Analoginya seperti taksi yang menunggu di pangkalan: penumpang tinggal naik, tidak perlu memesan mobil baru dari nol setiap kali. Teknik ini erat kaitannya dengan cara kerja API yang melayani banyak permintaan paralel dan dengan strategi cache untuk mengurangi beban.
Kenapa Membuka Koneksi Itu Mahal
| Tanpa pooling | Dengan pooling |
|---|---|
| Buka koneksi tiap request | Pakai ulang koneksi yang ada |
| Latensi bertambah per request | Latensi koneksi nyaris hilang |
| Database cepat kehabisan slot | Jumlah koneksi terkendali |
| Boros saat trafik melonjak | Stabil saat trafik melonjak |
Kenapa Penting?
Database umumnya punya batas jumlah koneksi simultan. Aplikasi serverless atau yang ramai pengunjung bisa dengan cepat menabrak batas itu dan menyebabkan error. Connection pooling menjaga jumlah koneksi tetap dalam batas aman sambil melayani lebih banyak permintaan. Untuk arsitektur modern, dokumentasi resmi seperti PgBouncer pada Supabase menjelaskan pola ini secara rinci.
Pertanyaan Umum
Apakah connection pooling selalu diperlukan?
Untuk aplikasi kecil dengan trafik rendah, dampaknya tipis. Namun begitu trafik naik atau aplikasi berjalan serverless, pooling menjadi penting agar database tidak kehabisan koneksi.
Apa risikonya jika pool terlalu kecil?
Permintaan akan antre menunggu koneksi tersedia, sehingga respons melambat. Ukuran pool perlu disesuaikan dengan kapasitas database dan pola trafik.
Istilah Terkait