12 Punkte von xguru 2021-09-29 | Noch keine Kommentare. | Auf WhatsApp teilen
  • GitHub startete vor über 10 Jahren mit RoR und einer einzelnen MySQL-Instanz

  • 2019 begann die Partitionierung, danach wurden über 2 Jahre hinweg verschiedene Arbeiten durchgeführt

→ 2021 war die DB-Last laut Bericht um 50 % gesunken

  1. Virtuelle Partitionen
  • Vor dem Verschieben der eigentlichen Tabellen erfolgte eine virtuelle Trennung auf der Application-Layer-Ebene

  • Tabellen wurden gruppiert und zu Schema-Domains zusammengefasst; mit einem SQL-Linter wurde die Einhaltung der Grenzen erzwungen

→ damit die spätere Partitionierung sicherer wird

  • Mit Query Linter und Transaction Linter wurden die virtuellen Grenzen überprüft
  1. Daten ohne Downtime verschieben
  • Nutzung der Vertical-Sharding-Funktion von Vitess

→ Nach dem Deployment von VTGate in einem Kubernetes-Cluster wurde der Verbindungspunkt umgestellt

  • Einführung eines Write-Cutover-Prozesses

→ Mithilfe der Replication-Funktion von MySQL wurden Daten in einen anderen Cluster eingespeist

→ Mit ProxySQL wurden MySQL-Client-Verbindungen multiplexed

Ergebnis

  • 2019 beantwortete mysql1 als Single-Cluster im Durchschnitt 950.000 Queries pro Sekunde

  • 2021 war die Last auf mehrere Cluster verteilt; bei durchschnittlich 1,2 Millionen Queries pro Sekunde halbierte sich die Host-Last

Noch keine Kommentare.

Noch keine Kommentare.