Sebelum memulai pembahasan, saya ingin memberitahukan
terlebih dahulu bahwa topik yang saya gunakan disini, sudah pernah
diimplementasikan di proyek nostra, tepatnya proyek traveloka atau yang dikenal
sebagai proyek “Candi”. Kenapa
disebut proyek Candi? Karena proyek ini dikerjakan dalam waktu 2 minggu oleh
para techlead+ 1 noob dari divisi Devops.
Si anak baru mendapat tugas untuk menyiapkan infrastruktur
database yang dapat menampung 800 user aktif di waktu yang bersamaan. Dengan
gambaran infrastruktur tersebut, si anak baru melakukan studi literatur dengan
cara berkomunikasi dengan orang orang sudah berpengalaman dibidang ini. Dan
akhirnya dia mendapatkan masukan untuk menggunakan tool yang bernama proxysql
ini dari seniornya di kantor tempat dia bekerja sebelumnya.
Dan,,,
Dan,,,
Mari kita berkenalan dengan si Proxysql tersebut.
Apa itu Proxysql?
Kalau kita lihat dari namanya, kita dapat mengetahui bahwa
proxysql berasal dari kata proxy dan sql. Proxy yang berarti perantara dan
sql(Structured Query Language). Proxysql merupakan sebuah proxy produk mysql yang
berbasis opensource. Proxysql ini menjadi penghubung antara backend server dan
database server. Proxysql hanya support untuk produk produk mysql lainnya
seperti mysql, mariadb, percona dan galera cluster.
Kelebihan Proxysql
Jika Haproxy hanya bisa menggunakan 1 algoritma(Least conn,
round robin atau source) saat pengimplementasian, lain halnya dengan proxysql.
Proxysql dapat mengimplementasikan ketiga algoritma tersebut sekaligus.
Kita juga sangat mudah dalam pengkonfigurasian proxysql ini dikarenakan pengoperasiannya 99% mirip dengan pengoperasian mysql cli.
Selain itu proxysql juga memili prinsip kerja yang cukup
spesifik, yaitu:
1.
Query Routing
Query select dapat diarahkan ke server yang kita inginkan( 1
atau lebih server). Demikian pula dengan query write, call, maupun select for
update.
2.
Query caching
Kita dapat melakukan pengecekan query yang paling sering di
hit, maupun yang paling lama saat di
hit. Dan query query tersebut dapat kita arahkan ke server yang kita inginkan.
Dengan 2 hal tersebut, kita dapat mengoptimalkan kinerja
database server kita, sehingga tidak ada server yang overload dan tidak ada
yang tidak bekerja sama sekali.
Sebelum mengakhiri thread ini saya ingin mengajak untuk mengimplementasikan tool ini disetiap proyek yang memilih mysql sebagai databasenya khususnya yang sudah clustering.
Terima kasih
No comments:
Post a Comment