Limitações MySQL Parte 2: O Log Binário

Este é o segundo post de uma seria que aborda as limitações do MySQL em determinadas circunstancias (veja a parte 1). Na primeira parte escrevi sobre a replicação de single-threaded. E o montante das replicas, escrevendo o chamado ‘log binário’ dos eventos que modificam dados no servidor. Sendo o log binário uma verdadeira deficiência do MySQL.

Por Programação Pular para comentários
Limitações MySQL Parte 2: O Log Binário

Este é o segundo post de uma seria que aborda as limitações do MySQL em determinadas circustancias (veja a parte 1).

O log binário é necessário não somente quando falamos em replicação, mas também para um ponto de recuperação. Considerando um cópia de segurança bem como a posição do log binário correspondente , você pode repetir utilizando o roll-forward e o estado do seu servidor para o ponto desejado.

Devemos levar em consideração que o log binário reduz significativamente o desempenho do MySQL. O problema não se encontra no registro em si, pois escrever o log não é um grande trabalho. O que é realmente difícil e caro é manter a consistência e a durabilidade, e o Rubor que é adicionado no disco a cada chamada fsync para garantir a transação.

O servidor realiza uma transação do tipo XA entre o InnoDb e o log binário, este procedimento adiciona mais chamadas fsync, e gera uma disputa do tipo mutex.


A redução de desempenho pode ser uma ordem de magnitude.


Qual a solução? Não existe uma forma concisa de resumir, pois existe um nível considerável de complexidade, e sinceramente não possuo acesso suficiente a grandes servidores que me permitam fazer uma analise mais profunda. O log binário e o código de replicação e sua interação com o InnoDB é um pouco difícil de entender. Kristian Nielson possui uma serie de posts sobre o assunto.

Acredito que uma correção completa deve exigir mudanças bastante significativas no que se refere a arquitetura MySQL, isso será complexo e bastante difícil de ser feito. Para fazer uma replicação através do log de transações InnoDB funcionaria se:

  • Todos os dados estivessem em InnoDB.
  • Os dados do InnoDB não têm que ser sincronizados com os arquivos, Frm e Drizzle se livrando do frm e hooray.
  • As prerrogativas e outras alterações para os dados não-InnoDB no MySQL feitos manualmente.

Poderia até funcionar se você não alterar os privilégios ou esquema, mas isso é uma descrição de um sistema de replicação bastante limitado, do ponto de vista do usuário, ainda assim devemos considerar.

Não existiria necessidade de ser um mecanismo de transporte de arquivos de log e InnoDB, colocado em um estado constante de ‘recuperação’, tendo que ser modificado para estar disponível no modo somente leitura, desta forma realizando consultas e leituras. Isto pode ser feito é apenas uma questão de querer vencer as dificuldades.

É interessante notar que o PBXT faz a replicação através de seus logs de transação, então não há precedente para isto entre mecanismos de armazenamento MySQL. E não há tecnologia de sincronização multi-master.

Compartilhe com seus amigos:
Gregory Laborde
Gregory Laborde Estudante da Licenciatura em Computação Pela Universidade Federal Rural de Pernambuco.Técnico em Tecnologia da Informação. Entusiasta do Software Livre e Palestrante.
FACEBOOK // TWITTER: @gregoryylaborde
Quer conversar com o(a) Gregory, comente:
Carregar comentários
Últimas notícias de Programação
  • Google usa Mulher-Maravilha para ajudar meninas a programar

    Google usa Mulher-Maravilha para ajudar meninas a programar

    Meninas ganham um incentivo extra na hora de aprender a programar, a Mulher-Maravilha.

  • Criando um cadastro de usuário em Java

    Criando um cadastro de usuário em Java

    O objetivo deste artigo é desenvolver uma aplicação em JSE (Java Standard Edition) de inserção de dados utilizando alguns padrões de projeto.

  • Quer aprender PHP? Saiba mais

    Quer aprender PHP? Saiba mais

    Chegou o tão aguardado curso online de PHP do Oficina da Net. Você não pode perder. PHP é uma das linguagens mais usadas no mundo. Os conteúdos que vou mostrar no curso, são exatamente o que você precisa saber para iniciar sua carreira como programador.

  • Formulário de contato em php

    Formulário de contato em php

    Guia do PHP: Aprenda a fazer um formulário em PHP que envia via SMTP autenticado o e-mail para um destinatário.

  • Como fazer um GIF?

    Como fazer um GIF?

    Aprenda a criar um GIF animado de vídeos. Descubra como criar os GIFs, imagens animadas que você vê em na internet.

  • O que priorizar na hora de escolher o hosting para seu site?

    O que priorizar na hora de escolher o hosting para seu site?

    Com o crescimento das ofertas na web, saiba o que você deve levar em consideração na hora de escolher a melhor empresa de hosting para seu empreendimento

  • O que preciso fazer para criar um aplicativo?

    O que preciso fazer para criar um aplicativo?

    Temos visto que desenvolver aplicativos que visam o mercado mobile pode ser mais que uma alternativa rentável, pode colocá-lo no topo, deixá-lo rico. Mas nem tudo são flores, e o aspirante a desenvolvedor de app precisa seguir algumas regras.

  • WEBINAR 3.9

    WEBINAR 3.9

    Venha para o Maker e descubra como tornar o seu negócio mais competitivo.