Sumber daya paling berharga di dunia saat ini bukan cuma uang atau emas, tetapi data. Inti dari data terletak pada database yang berfungsi untuk menyimpan, memproses dan mengambil data yang diinginkan dengan cepat. Namun demikian, memiliki satu database server tidaklah cukup. Pasalnya, hal tersebut bisa memicu kekurangan dengan risiko besar seperti kehilangan data dan mengalami downtime.
Sebagai salah satu upaya untuk mengatasi risiko tersebut, sebagian besar perusahaan kini memastikan beberapa dari database server-nya menggunakan replikasi untuk mendapatkan high availability dan fault tolerance dari database. Sementara, untuk bisa memaksimalkan kinerja yang optimal terhadap resource atau pun database yang digunakan, mereka juga bisa bisa menggunakan pgpool.
Apa itu pgpool?
Pgpool adalah middleware yang bekerja antara server database dan client database PostgreSQL yang menyediakan beberapa fitur sebagai berikut:
- Connection Pooling
- Replication
- Load Balancing
- Automated Failover
- Watchdog (High Availability of pgpool)
- In Memory Query Cache
Dari fitur-fitur yang dimiliki, fitur Load Balancing akan menjadi salah satu yang difokuskan. Untuk menggunakan fitur pgpool, database harus dipastikan sudah direplikasi. Jika replikasi satu arah diimplementasikan, artinya satu server database master PostgreSQL akan mengirimkan data ke satu atau beberapa server database standby. Dalam konfigurasi ini, hanya server database master yang bisa melakukan insert query, sedangkan server database standby akan digunakan sebagai reporting data dan akan di-promote menjadi database master ketika sedang down.
Pengaturan ini cukup efektif untuk menangani terjadinya kegagalan server dan menyediakan High Availability, tetapi tidak cukup dalam pengoptimalan resource karena server standby bisa dikatakan tidak melakukan aktivitas.
Mengapa Harus Menggunakan pgpool?
Salah satu fitur yang digunakan pada pgpool adalah Load Balancer. Adapun alasan untuk menggunakan pgpool adalah kelebihan pada fungsi utama Load Balancer untuk mengarahkan query yang tidak hanya ke server database master, melainkan mendistribusikan beban select ke server database standby. Pengaturan Load Balancing ini bisa diatur sesuai dengan kebutuhan.
Manfaat lain dari Load Balancing adalah sebagai berikut:
- Meningkatkan throughtput sistem
- Mengurangi beban setiap server database PostgreSQL
- Mengoptimalkan resource dari database PostgreSQL
- Load Balancing bisa dikatakan sangat baik jika terdapat banyak user mengeksekusi banyak query select pada waktu yang bersamaan
Bagaimana Cara Kerja Load Balancing pada Pgpool-II?
Pgpool-II yang terletak di antara client dan server PostgreSQL mampu memahami protokol backend serta frontend PostgreSQL dan menyampaikan query klien ke server PostgreSQL. Karena Pgpool-II telah mengimpor parser dari PostgreSQL, yang dapat melakukan cara parsing query klien. Pgpool-II merutekan query sebagai berikut:
- Pgpool-II menerima permintaan klien
- Pgpool-II melakukan parsing data untuk menentukan apakah itu query read atau query write
- Jika kasusnya write data, Pgpool-II mengirimkannya ke server PostgreSQL utama
- Jika kasusnya read data, Pgpool-II mengirimkannya ke node penyeimbang beban (Load Balance) yang dipilih dari semua server PostgreSQL yang tersedia
Untuk mengaktifkan Load Balancing di Pgpool-II, aktifkan load_balance_mode: load_balance_mode = aktif
Sebagai salah satu IT expert di Indonesia, i3 telah terbukti mampu menjawab segala kebutuhan IT pada bisnis, termasuk dalam mengelola dan mengamankan data. Dengan adanya solusi PostgreSQL yang telah terjamin keamanannya, i3 akan membantu Anda dalam mengelola dan menganalisis data dengan mudah dan aman, serta menciptakan kinerja optimal dengan memanfaatkan fitur Load Balancing pada pgpool seperti yang sudah dijelaskan di artikel ini.
Tentang i3
PT Inovasi Informatika Indonesia (i3) dikenal sebagai perusahaan IT Services Provider yang berfokus pada Open Source, Security, Big Data dan Cloud bagi bisnis. i3 menyediakan layanan IT yang komprehensif, meliputi konsultasi, migrasi dan implementasi, pelatihan, troubleshooting, dan managed services. Untuk informasi lebih lanjut perihal layanan dan solusi yang ditawarkan, Anda dapat menghubungi kami melalui info@i-3.co.id.