Palestra: O Elefante disponível para além do infinito

Por esta palestra eu estava esperando antes de chegar ao evento, principalmente pelo fato do palestrante ser o Fernando Ike de Oliveira, da 4Linux e membro ativo da comunidade de vários projetos, principalmente na de PostgreSQL, da qual também faço parte da lista.

A palestra foi realmente interessante, onde o palestrante falou sobre ambiente de alta disponibilidade usando o PostgreSQL. Vários esquemas de configuração foram mostrados e explicados, sempre comparando com carros! A comparação base era de que quanto mais rápido um carro pode ser, mais cara é sua manutenção e a dificuldade de conduzi-lo aumentará, principalmente para carros que andam acima dos 400 Km/h.

Na parte teórica foi discutido os tipos de replicação síncrona e assíncrona, levando em consideração o volume de dados entre os servidores, a quantidade de nós e a velocidade da conexão, chegando à conclusão de que a replicação síncrona só deve ser usada quando os servidores estão próximos, numa LAN, onde a latência é baixa.

Ele avaliou também os softwares que compõem as várias soluções de alta disponibilidade no PostgreSQL, como o Slony, que possibilita uma replicação assíncrona (baseada em triggers) e é uma ótima opções, porém lenta quando a muitas transações com operações de escrita no banco master. Outra possibilidade foi com o PgPool 2 (transparente para a aplicação, cria um pool de conexões abertas com os bancos, mas demora na conclusão da requisição para o cliente, caso envolva muitas operações de escrita, pois seu retorno é síncrono: só fecha a conexão com o cliente quando o servidor estiver pronto, nesse caso, quando o write em todos os backends foi feito), PgCluster/CyberCluster (melhor de todas, se funcionasse bem) e de uma solução a nível de logs transacionais, o Warm Stand By.

Outra ferramenta mencionada foram as desenvolvidas pelo Skype (skytools), onde se mencionou a dificuldade de implementação delas no ambiente e da particularidade do particionamento horizontal, onde se pode dividir a base de dados em vários nós, dividindo a carga inclusive a nível de modelagem. O palestrante aproveitou para enfatizar que até a modelagem deve ser pensada com um pé na alta disponibilidade e replicação, para o caso de se optar pelo particionamento horizontal.

O Fernando Ike deu uma sugestão "pé-de-boi" como ele mesmo mencionou: algo simples, mas que chega em qualquer lugar, às vezes não tão rápido, mas chega. Seria uma combinação de Heartbeat e PgBouncer, utilizando também PL/Proxy, o Postgres (claro!) e Slony ou Warm Stand By. A palestra foi excelente.

Artigos Relacionados:


Sobre este artigo