12 pontos por xguru 2021-09-29 | Ainda não há comentários. | Compartilhar no WhatsApp
  • O GitHub começou há mais de 10 anos com RoR e uma única instância de MySQL

  • Em 2019, iniciou o particionamento e compartilhou a experiência de 2 anos realizando vários trabalhos

→ Em 2021, a carga do DB havia caído 50%

  1. Partições virtuais
  • Antes de mover as tabelas de fato, separação virtual na camada de aplicação

  • Agrupou tabelas e as reuniu em domínios de esquema, usando um SQL Linter para impor fronteiras

→ Para tornar o particionamento posterior mais seguro

  • Verificação das fronteiras virtuais com Query Linter e Transaction Linter
  1. Mover dados sem downtime
  • Uso do recurso de Vertical Sharding do Vitess

→ Após implantar o VTGate em um cluster Kubernetes, mudou o ponto de conexão

  • Introdução do processo de write-cutover

→ Usando o recurso de replicação do MySQL para alimentar os dados em outro cluster

→ Multiplexação das conexões de clientes MySQL com ProxySQL

Resultado

  • Em 2019, o mysql1, que era um cluster único, respondia em média a 950 mil consultas por segundo

  • Em 2021, foi distribuído em múltiplos clusters e respondia em média a 1,2 milhão de consultas por segundo, com a carga dos hosts pela metade

Ainda não há comentários.

Ainda não há comentários.