Veja toda a cobertura da MySQL User Conference & Expo
A MySQL Conference já acabou, mas só agora consegui terminar o texto sobre o último dia, que foi bem interessante em termos de atrações para o evento. O dia iniciou com um painel muito interessante com pessoal da empresa norte americana Percona, que exibiu as boas práticas relacionadas ao monitoramento de instâncias de bancos de dados MySQL de qualquer tamanho, partindo de soluções pequenas que todas as empresas hoje possuem, até sistemas mais especializados, focados na principal operação, sendo esta voltada para produto e/ou serviço, oferecidos por organizações de todo o mundo. Algumas estatísticas coletadas pela própria Percona foram exibidas e, a partir delas, pode-se constatar que em grande parte das empresas no mundo têm alguma aplicação rodando com MySQL, outras várias com aplicações médias e ainda, muitas outras com aplicações mais específicas que tem também o MySQL como principal produto de bancos de dados.
Além de tais estatísticas confirmarem o que foi exibido na primeira MySQL Connect por Edward Screven, quando ele citou que o MySQL está em todo lugar (“MySQL is everywhere!”), o que confirmava a estratégia da Oracle de continuidade do produto, mostra também que o produto está cada vez mais consolidado, apresentando na versão 5.6 grande maturidade – “só não faz o upgrade a empresa que ainda não tem braço suficiente para fazê-la e ainda está preocupada com questões de downtime causado pelo processo de upgrade“, completa Peter Z, que exibiu as principais ferramentas para monitoramento do MySQL atualmente no mercado, apontando o Oracle MySQL Enterprise Monitor, seguido pelo TokuDB Enterprise e o novo e promissor ClusterControl da SeveralNines do amigo Johan Andreson.
Ainda neste mesmo painel, o CEO da Percona expressou grande satisfação com o clima atual percebido na conferência onde todos os principais players de MySQL do mundo se reuniam (Oracle, Percona e Sky SQL, representada pela turma do MariaDB), sem nenhuma hostilidade, tudo em nome de fazer um MySQL cada vez melhor – este que é primeiramente um compromisso firmado pela Oracle, que tem na empresa Percona um grande parceiro que também está levando à frente as melhorias no produto de bancos de dados mais popular do mundo em termos de performance, confiabilidade, robustez e alta-disponibilidade.
Alta-disponibilidade e escalabilidade foram os grandes buzz do evento, tendo recebido grande atenção considerando a evolução e aceitação do Galera Cluster que vem sendo oferecido no mercado tanto pela Percona quanto pelo MariaDB, em forma de solução fechada e já integrada. Tanto um como o outro tem como principal parceiro a empresa finlandesa Codership Oy, que esteve presente no evento, apresentando em seu stand todos os potenciais de replicação síncrona de dados, com servidores interligados em uma topologia Multi-Master. Quase o mesmo já é também oferecido pelo novo MySQL 5.7, atualmente em desenvolvimento, foi batizado também por replicação Multi-Master, sendo este um recurso nativo, mas, como uma diferença: replicação assíncrona. Ainda neste quesito, o Facebook apresentou suas últimas evoluções em termos de desenvolvimento de software baseado em MySQL e servidores Unix. A grande bola de vez é fazer com que o código client-server de todos os serviços (curtir, comentar, compartilhar, …) façam chamadas assíncronas (async-calls) de maneira que os serviços em si estejam sempre disponíveis, enquanto que uma segunda camada escrita em C/C++ se ocupa de executar as chamadas recebidas em uma espécie de FIFO com operações paralelas. Os caras estão codificando fortemente com Python, PHP (somente chamadas e middle tier) e JavaScript, enquanto que toda a plataforma está basicamente escrita em C/C++, proporcionando fácil integração com a API do MySQL.
Outro tópico que gerou bastante burburinho entre a turma foi o anúncio do WebScaleSQL, que promete ser um novo fork do MySQL com grande poder de escala e otimização de operações em disco. Aí entra uma junção de patches desenvolvidos por Google, Twitter, LinkedIn e Facebook que juntos estão compilando tudo para entregar um MySQL ainda melhor. Segundo o que revelou essa semana o site The Register, o tópico ainda de para usuários muito avançados e requer várias horas para se trabalhar questões de integração em nível de código fonte dos patches em encaixe com o código do MySQL. Esse tipo de coisa me interessa muito e talvez seja um projeto pessoal para ser tocado depois que eu terminar o trabalho que estou fazendo no código das funções de replicação do MySQL – arquivo sql_repl.cc.
Por fim, no final do dia me vi atendendo a uma sessão onde o amigo Giuseppe Maxia, a.k.a. @datacharmer, estava exibindo com clareza e riqueza de detalhes a nova versão do Tungsten Replicator, que atualmente está na versão 2.2. Em poucas palavras, após baixar e descompactar o software, que está disponível nas versões Enterprise e Open Source, basta criar scripts em shell com algumas diretivas pré-configuradas ou ainda utilizar scripts que fazem parte de uma biblioteca chamada cookbook para configurar instantaneamente topologias de replicação com vários servidores masters e slaves, com apenas um comando. Uma dinâmica muito interessante é que são criadas várias partições de dados que são adicionadas por máquinas diferentes dentro da topologia, fazendo com que haja possibilidade de recuperação em caso de falhas. Veremos isso com mais detalhes em um artigo tratando somente do Tungsten Replicator.
Na imagem acima fica bem fácil ver que, a partir de um comando com algumas opções suportadas pelo aplicativo tpm, fica fácil configurar topologias simples ou bem avançadas com apenas um comando. Interessante que se tenha uma servidor DNS ou, dependendo da quantidade de máquina, que a resolução de nomes seja realizada local em cada um dos servidores através do arquivo /etc/hosts. Com isso, ao executar o comando como o exibido na imagem anterior, tanto host1 como host2 serão servidores MASTER, gerando uma topologia MASTER/MASTER que será controlada pela própria engine do Tungsten. Mais detalhes em uma próximo artigo ou na documentação online.
É realmente impressionante como o Tungsten consegue implementar a replicação entre vários servidores de bancos de dados MySQL com apenas algumas configurações contidas em um arquivo, seguido pela execução do mesmo com o aplicativo tpm. Pelo nome talvez possa não parecer tão legal, mas funciona muitíssimo bem, fácil de usar e configurar. A instalação e organização dos servidores dentro da topologia de replicação fica a cargo da escrita de algumas instruções como a vista na imagem seguinte e na sua execução. Com isso, a engine do Tungsten que não só fará toda a replicação de dados, mas também manterá os servidores em um estado consistente, lerá as instruções do arquivo, encontrará os hosts encontrados (demanda DNS ou mesmo /etc/hosts configurado), trabalhará para criar os servidores MASTER e SLAVE e dará início à replicação. Também é possível manter facilmente uma replicação do tipo MASTER/MASTER com o Tungsten, sendo bem mais fácil, já ele próprio através da sua engine, fará todo o trabalho.
Com isso, finalizamos a cobertura que houve de melhor dentro da MySQL User Conference 2014 que aconteceu na Califórnia, entre os dias 1 e 4 de Abril, por onde passaram todas as empresas e usuários de MySQL de todo o mundo – é uma grande festa o tempo todo, uma grande confraternização para se falar de MySQL.
Obviamente houve momentos que não conseguimos cobrir, mas, o melhor ainda está por vir. Até o grande próximo evento do ano, MySQL Connect, que este ano acontece junto com a Oracle Open World! Vamos tomar conta de San Francisco em setembro, a partir do dia 28. Grandes novidades nos aguardam e até lá, quero publicar artigos falando sobre tudo o que foi comentado aqui e muito mais! O MySQL 5.7 já está em seu DMR de número 4, pode ser baixado para testes a partir do labs.mysql.com e todas as novas features que o ele possui estão nesta página.