Arquivo da categoria: Alta Disponibilidade

Facebook: do MySQL ao TAO

Facebook-TAOO Facebook dispensa qualquer tipo de apresentação. Até acho que existe mais gente no “face” do que viva no mundo real. Durante muitos anos o Facebook rodou e confiou na plataforma LAMP com Linux, Apache, MySQL-MemCache e PHP. Com o passar dos anos sua base de dados foi crescendo: 1TB, 10TB, 50TB, 100TB… 200TB, 500TB e continua crescendo.

De fato, o Facebook usou, ativamente, o MySQL até por volta de 100TB. Ooops, quer dizer que o MySQL pode ser escalado até 100TB de base? Sim e não! Eu, particularmente, acredito que o MySQL é muito competente, mas, eu não me sentiria confortável com uma base maior que 2TB ou 3TB. A dificuldade de manutenção acima disso é muito grande. Até 1TB é tranquilo. Mas, voltando ao Facebook, para conseguir a façanha de usar o MySQL com 100TB eles lançaram mão de milhares de “shards” lógicos controlados pela aplicação e sistema operacional. Inclua-se na aplicação, não só o site, mas também o MySQL personalizado pela equipe interna de desenvolvimento. Personalizar o MySQL não é para qualquer um. E, passa a ser mais um ponto de atenção… a cada atualização da comunidade e/ou do fabricante é preciso ser revista com atenção pela equipe de desenvolvimento. Controlar uma dezena de “shards” lógicos já é um drama, imagine milhares. É muito “if”! “If” nome do fulano começa com “A” os dados estão no servidor tal, “If” o nome do ciclano inicia com “C’, e, mora na Holanda, os dados estão no servidor 1.321! “If’ o desenvolvedor se perdeu no monte de “If”… só sobra o “f” (complete a palavra)!

Continue lendo Facebook: do MySQL ao TAO

Replicação SBR, Replicate_Do_DB e qualificadores de banco: MISTURA PERIGOSA!

SurpresoNão, este não sou eu! O Titio é bem mais bonitinho (boa definição para um feio arrumadinho). Mas, esta cara de bocó abismado bem me veste, ao trazer à luz este assunto. Sinceramente, não sei dizer se seria um byta-bug, ou, um problema de configuração.

Apesar da introdução, como não poderia deixar de ser, o assunto é sério e merece uma revisão da configuração de seu ambiente de replicação.

Ao longo do tempo tenho ouvido algumas reclamações, muito esporádicas e pontuais, sobre problemas na replicação, que por vezes “deixa de replicar”. Contudo, como na maioria das vezes, tratava-se de uma “meia dúzia” de comandos, muitos de manutenção, os quais podiam ser replicados manualmente, jamais, justificou-se um forensic (investigação) mais apurado.

Continue lendo Replicação SBR, Replicate_Do_DB e qualificadores de banco: MISTURA PERIGOSA!

MySQL 5.6 – Parallel Coworker

desconfiadoPor volta de um mês atrás, escrevi um post acerca das virtudes do MySQL 5.6 RC (release candidate), dizendo que não havia problema algum e que tudo ficaria bem. Mas, agora percebo que disse isto cedo demais. Não se aflijam! Eu explicarei o motivo, e, a maioria dos usuários não foram afetados!

Antes de mais nada, agora que o MySQL 5.6 já está em produção (GA – General Available), é uma ótima idéia que todos migrassem seus RDBMS para no mínimo a versão 5.6.10 GA. No entanto, cabe dizer que ainda não obtive evidências que o problema que será descrito à seguir tenha sido resolvido, dada à sua intermitência.

Pois bem, o MySQL 5.6 trouxe uma série de novidades, destacando-se aquelas relacionadas à replicação. A replicação do MySQL sempre foi uma característica nativa robusta e interessante. No MySQL 5.6 criou-se o conceito de “parallel coworkers” (colegas de trabalho paralelos).

Para entender o conceito de paralell coworkers, e, precisamos revisitar o funcionamento interno da replicação no MySQL.

Continue lendo MySQL 5.6 – Parallel Coworker