Relato da partição de RDBs do GitHub
(github.blog)-
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%
- 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
- 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.