Database pooling

January 27, 2021 by

Mengenal Database Pooling
Ketika web kita open database utk user maka, ketika koneksi ke database, itu mahal dan lama jika user bisa request buka koneksi 10K lebih tiap request masuk.
Konsep yg plaing banyak yaitu : database pooling. di dlm aplikasi ada pool (kolam), web akan terkoneksi ke pool, dan pool (tempat) menyimpan koneksi, (mirip bis dan sudah ada kursi dan maximum tampungan, minimum), supaya pool ini berguna menyambung ke database. Dengan initial data pooling 10 koneksi saja, ketika ada request dari depan dan meminta koneksi ke dlm pool. Koneksi nii akan dilepas oleh pool dan setelah selesai maka akan dibalikan kembali ke dlm pool dari user.
Ketika traffic tinggi, dengan jumlah request koneksi user ke database melalui pool lebih tinggi dari jumlah maximal dari yg diizinkan pool maka, pool akan memberikan koneksi ke 100 request yg pertama. dan akan memberikan request selanjutkan setelah ada yg mengembalikan request koneksi ke dlm pool. Menjadi lambat tetapi lebih aman.
Hal ini digunakan karena membuat object koneksinya disimpan ke dlm memory. Bayangkan 1 request butuh 1 MB, jika tidak dibatasi menggunakan pool. Jika ada 200 reqest yg masuk maka aplikasi akan buat 200MB object koneksi di memory dan ini membahayakan jika terus berlanjut. Apalagi ketika masuk 1000 request.
Jika RAM di server hanya 1 GB maka otomatis aplikasi akan down atau mati.
Pilih manageable menggunakan pool walau agak lambat.
Tiap database punya max open connection pada MySQL, PostgreSQL. Contoh postgre hanya bisa maksimum 100 koneksi. ketika masuk lebih dari 100 maka akan direject sama postgre nya. utk mySQL 1000 utk RAM 16GB database. RAM > 16GB ini mahal bngt jika tidak dibatasi. Bayangkan butuh 10K request database maka butuh RAM 160GB, utk cloud bayangkan harganya berapa ? pastinya mahal.
Perlu manage koneksi dengan database pooling.
Contoh implementasi database pooling utk bahasa pemrograman nodejs dan mysql
 
https://gist.github.com/vtscode/d50d7c529c32915c0976cbe6a459d0bb

0 comments:

Post a Comment