A replicação cruzada no MySQL, um método para copiar dados de forma assíncrona de um banco de dados primário em uma região geográfica para um ou mais bancos de dados de réplicas em diferentes regiões, afetam o desempenho por meio de vários fatores ligados à latência da rede, replicação do atraso, distribuição de carga de trabalho e alocação de recursos.
Latência de rede e replicação lag
O impacto principal do desempenho surge do aumento da latência da rede entre as regiões. Como a replicação de regiões cruzadas depende do envio dos eventos binários de log contendo alterações de dados em links de rede de longa distância, a distância física pode causar um atraso significativo de propagação. Isso leva ao aumento do atraso de replicação, onde as réplicas estão para trás da primária na aplicação de alterações. O atraso de replicação pode afetar a consistência da leitura em aplicativos que dependem de dados atualizados das réplicas e podem aumentar o tempo de failover em cenários de recuperação de desastres.
O atraso de replicação ocorre devido a múltiplas causas:
- O servidor principal que não envia alterações rapidamente o suficiente.
- A rede atrasa na transferência de alterações.
- A incapacidade do servidor de réplica de aplicar alterações rapidamente.
O atraso total observado é devido à latência de rede e processamento. As ferramentas de monitoramento rastreiam métricas como o atraso de rede e o atraso da réplica para diagnosticar gargalos.
Replica Server Impact e Uso de Recursos
No lado da réplica, a aplicação das alterações da primária envolve o trabalho de E/S e CPU, o que pode afetar o desempenho geral da réplica, especialmente se também estiver lidando com as consultas de leitura do aplicativo simultaneamente. A alta carga de replicação pode levar à contenção e à saturação de recursos, diminuindo os tempos de resposta da consulta na réplica.
O uso de encadeamentos de replicação paralela na réplica pode aliviar alguns dos atrasos no aplicativo aplicando várias transações simultaneamente, melhorando a taxa de transferência de replicação. Além disso, a configuração de opções como descarga de alto desempenho (ajustando os parâmetros innodb_flush_log_at_trx_commit` e `sync_binlog`) pode melhorar a gravação e a replicação aplicar eficiência.
Impacto no desempenho do servidor primário
O servidor primário também incorre em um impacto de carga devido à replicação. Ele deve escrever todas as alterações no log binário para réplicas a jusante, que é uma sobrecarga adicional sobre o processamento transacional normal. Com muitas réplicas conectadas, especialmente a região cruzada, onde a taxa de transferência e a confiabilidade da rede varia, o primário pode experimentar um aumento do consumo de recursos, mantendo os fluxos de replicação.
Uma maneira de mitigar isso é uma hierarquia de replicação, onde as réplicas primárias são de uma única réplica intermediária, que depois os abrange com réplicas adicionais, reduzindo a carga no primário.
Distribuição e escalabilidade da carga de trabalho
A replicação cruzada suporta a escala de lê cargas de trabalho mais próximas dos usuários em diferentes regiões globais, fornecendo réplicas de leitura perto de sua localização, melhorando as latências do usuário final. No entanto, a gravação de cargas de trabalho ainda converge para a instância principal, que pode se tornar um gargalo.
Grandes transações no primário que atualizam muitas linhas podem causar picos nos dados de replicação, levando a explosões de replicação aplicar trabalho em réplicas e causar o atraso de replicação. Quebrar grandes transações em lotes menores ajuda a reduzir a tensão de replicação.
Schema e consulta Considerações de design
Tabelas sem chaves primárias ou com operações pesadas de DDL podem degradar o desempenho da replicação ou causar bloqueios exclusivos, compostos problemas de latência nas regiões. O uso de replicação baseado em linha, que requer teclas primárias para eficiência, é normalmente recomendado.
Os níveis de isolamento da consulta nas réplicas também afetam a velocidade do aplicativo de replicação, com níveis mais baixos de isolamento (por exemplo, `leia cometido`) geralmente permitindo uma aplicação mais rápida de eventos de replicação do que níveis mais altos que mantêm bloqueios por mais tempo.
Rede e considerações de custo
A replicação entre a região envolve a transferência de dados nas redes de fornecedores de nuvem, o que pode incorrer em custos e limitações de largura de banda. Isso precisa ser contabilizado no design e pode indiretamente restringir a velocidade e a frequência da replicação.
Resumo dos impactos de desempenho
- Aumento do atraso de replicação devido à distância física e à latência da rede.
- maior consumo de recursos no primário para registro binário e em réplicas para aplicar alterações.
- Degradação potencial de desempenho da consulta em réplicas se a replicação for intensiva em recursos.
- O balanceamento de carga através de hierarquias de replicação pode reduzir gargalos.
- Impacto de grandes transações e design de esquema na eficiência da replicação.
- Trade-offs com custo de transferência de dados e taxa de transferência em ambientes em nuvem.