12 puntos por xguru 2021-09-29 | Aún no hay comentarios. | Compartir por WhatsApp
  • GitHub comenzó hace más de 10 años con RoR y una sola instancia de MySQL

  • En 2019 empezó el particionamiento y aquí comparten la experiencia de 2 años realizando distintos trabajos

→ Para 2021, la carga de la DB se había reducido en un 50%

  1. Partición virtual
  • Antes de mover las tablas reales, las separaron virtualmente en la capa de aplicación

  • Agruparon tablas y las unieron en dominios de esquema, y usaron un SQL Linter para forzar límites entre ellas

→ Para que luego el particionamiento fuera más seguro

  • Verificaron los límites virtuales con Query Linter y Transaction Linter
  1. Mover datos sin downtime
  • Usaron la función de Vertical Sharding de Vitess

→ Después de desplegar VTGate en un clúster de Kubernetes, cambiaron el punto de conexión

  • Introdujeron un proceso de write-cutover

→ Usaron la función de replicación de MySQL para alimentar los datos a otro clúster

→ Usaron ProxySQL para multiplexar las conexiones de clientes MySQL

Resultado

  • En 2019, mysql1, que era un solo clúster, respondía en promedio 950 mil consultas por segundo

  • En 2021, se distribuyó en múltiples clústeres y respondió en promedio 1.2 millones de consultas por segundo, con la carga del host reducida a la mitad

Aún no hay comentarios.

Aún no hay comentarios.