12 puan yazan xguru 2021-09-29 | Henüz yorum yok. | WhatsApp'ta paylaş
  • 10 yılı aşkın süre önce RoR ve tek bir MySQL instance'ı ile başlayan GitHub

  • 2019'da bölümlemeye başlayıp 2 yıl boyunca çeşitli çalışmalar yürütmelerinin ardından paylaşılan deneyimler

→ 2021 itibarıyla DB yükünün %50 azaldığı belirtiliyor

  1. Sanal bölümleme
  • Gerçek tabloları taşımadan önce uygulama katmanında sanal olarak ayırma

  • Tabloları gruplayıp şema domain'leri altında topladılar ve SQL Linter ile sınırların zorunlu olarak korunmasını sağladılar

→ Sonradan bölümleme yapılırken güvenli olması için

  • Query Linter ve Transaction Linter ile sanal sınırları doğrulama
  1. Kesinti olmadan veri taşıma
  • Vitess'in Vertical Sharding özelliğini kullandılar

→ VTGate'i Kubernetes cluster'ına dağıttıktan sonra bağlantı noktasını değiştirdiler

  • Write-cutover süreci devreye alındı

→ MySQL'in Replication özelliğiyle veriyi başka bir cluster'a aktardılar

→ ProxySQL ile MySQL istemci bağlantılarını multiplex ettiler

Sonuç

  • 2019'da tek cluster olan mysql1 saniyede ortalama 950 bin sorguya yanıt veriyordu

  • 2021'de multi-cluster yapıya dağıtıldı; saniyede ortalama 1,2 milyon sorguya yanıt verirken host yükü yarıya indi

Henüz yorum yok.

Henüz yorum yok.