12 poin oleh xguru 2021-09-29 | Belum ada komentar. | Bagikan ke WhatsApp
  • GitHub memulai lebih dari 10 tahun lalu dengan RoR dan satu instance MySQL tunggal

  • Pada 2019 mulai melakukan partisi dan selama 2 tahun menjalankan berbagai pekerjaan terkait

→ Hingga 2021, beban DB disebut turun 50%

  1. Partisi virtual
  • Sebelum memindahkan tabel sungguhan, pemisahan dilakukan secara virtual di lapisan aplikasi

  • Tabel-tabel dikelompokkan dan diikat ke dalam domain skema, lalu batasannya dipaksa menggunakan SQL Linter

→ Agar aman saat melakukan partisi nanti

  • Batas virtual diverifikasi dengan Query Linter dan Transaction Linter
  1. Memindahkan data tanpa downtime
  • Menggunakan fitur Vertical Sharding dari Vitess

→ Setelah VTGate dideploy ke klaster Kubernetes, titik koneksi diubah

  • Mengadopsi proses write-cutover

→ Menggunakan fitur replication MySQL untuk mengalirkan data ke klaster lain

→ Menggunakan ProxySQL untuk memultiplex koneksi klien MySQL

Hasil

  • Pada 2019, mysql1 yang masih berupa klaster tunggal merespons rata-rata 950 ribu kueri per detik

  • Pada 2021, beban didistribusikan ke multi-klaster, dan sambil merespons rata-rata 1,2 juta kueri per detik, beban host menjadi setengahnya

Belum ada komentar.

Belum ada komentar.