MySQL-Cluster ou Multi-Master para produção? Problemas de desempenho?

2

Estamos expandindo nossa rede de servidores Web no EC2 para várias regiões diferentes e atualmente usamos replicação mestre / escravo. Descobrimos que, nos últimos meses, nosso escravo parou de replicar várias vezes, o que exigiu que limpássemos o banco de dados e inicializássemos a replicação novamente.

Como agora estamos procurando ter servidores em três regiões diferentes, estamos um pouco preocupados com esses erros de replicação do MySQL. Acreditamos que eles são devidos a valores de auto_increment , por isso estamos considerando várias abordagens para suprimir esses erros e estabilizar a replicação:

  1. Replicação Multi-Master; 3 mestres (um em cada região), com os deslocamentos relevantes de auto_increment , fazendo backup regularmente para S3. Ou
  2. MySQL-Cluster; 3 nós (um em cada região) com um nó de gerenciamento separado que também agregará logs e estatísticas.

Depois de investigar, parece que ambos têm desvantagem (erros de replicação para o primeiro, problemas de desempenho para o último).

Acreditamos que a abordagem de cluster nos permitiria gerenciar e adicionar novos nós mais facilmente do que a rota Multi-mestre e reduzir / eliminar os problemas de replicação que estamos vendo atualmente. Mas o desempenho é uma prioridade.

Os problemas de desempenho do MySQL-Cluster são tão ruins quanto as pessoas dizem?

    
por Phillip B Oldham 31.01.2011 / 17:04

3 respostas

2

Se você entender seus dados e as razões pelas quais a replicação falha, não será necessário recarregar os escravos, embora essa seja a maneira mais fácil, pois pode ser entediante corrigir o escravo para que a replicação possa continuar.

Eu usei vários mestres por alguns anos, e os problemas que eu encontrei são causados principalmente por gatilhos que são realmente difíceis de depurar. Por essa razão, eu faria as transações tão atômicas e determinísticas quanto possível, e para bloquear o usuário ou sessão para o banco de dados mais local.

Eu uso uma tabela de pesquisa de dbs disponível indexada por um módulo do endereço ip decimalizado do usuário, para que o usuário sempre veja um banco de dados e não seja afetado pelo atraso de replicação causado pelo db hopping, como o mysql-proxy costumava fazer .

Conecte-se como um anel em túneis ssh ou vpn criptografados e tudo deve funcionar.

Inserir outro banco de dados no ringue é simples, mas se houver algum atraso de replicação, remover um deles corre o risco de um loop caro, potencialmente inserindo ou atualizando registros milhões de vezes antes de ser notado!

Eu gostaria de replicação - funciona bem quando funciona. Você pode pendurar mais escravos de cada mestre para relatórios e backups pontuais sem tempo de inatividade.

    
por 10.08.2011 / 13:55
1

MMM traz mais problemas do que resolve, confie em mim.

MySQL Cluster: Eu não sei sobre o novo 7.2, mas pelo que entendi você não pode tê-los muito longe. É um novo recurso do 7.2 poder usar nós em VMs para que você possa entender como o tempo pode matar tudo.

    
por 11.03.2012 / 03:16
0
  • Você tem mais problemas com master-master, especialmente em sistemas high-end
  • Possíveis problemas com a consistência dos dados

Melhorar o desempenho do banco de dados não justifica o número de novos problemas. Eu recomendo manter um único servidor com poucas CPUs e hardware RAID ou SSD.

O MMM (Multi-Master Replication Manager para MySQL) salva muitas vezes.

    
por 31.01.2011 / 17:30