Categoria

Produtos

Timbira lança KrahoDB: replicação lógica bidirecional com PostgreSQL

por | Produtos | Nenhum Comentário

A Timbira desenvolveu uma solução de replicação lógica bidirecional utilizando PostgreSQL. Chamado de KrahoDB, o software foi desenvolvido para suprir a ausência de uma funcionalidade ainda não suportada pelo PostgreSQL. Funcional desde setembro de 2018, o KrahoDB é um fork do PostgreSQL e já está disponível para download no GitHub da Timbira.

Onde o KrahoDB pode ser aplicado

O KrahoDB foi projetado para atuar em ambientes que devem manter a sincronização de dados entres dois ou mais servidores. Eventuais quedas de conexões são toleradas e os dados são sincronizados após restabelecer a comunicação entre os servidores. A replicação assíncrona tem um papel essencial na arquitetura do KrahoDB.

O software foi arquitetado com um servidor “concentrador” que distribui os dados para os outros servidores adjacentes. Um servidor adjacente envia transações para o servidor “concentrador”, que repassa as mesmas para os outros servidores adjacentes. Tudo funciona de maneira transacional e respeitando a ordem cronológica das transações efetuadas no servidor.

A solução proposta pela Timbira

O KrahoDB foi implementado utilizando a API da replicação lógica do PostgreSQL. Todas as funcionalidades da replicação lógica do PostgreSQL funcionam no KrahoDB. A Timbira disponibiliza o KrahoDB baseado na versão 10 e 11 do PostgreSQL (em breve disponibilizaremos o KrahoDB baseado na versão 12).

O KrahoDB aproveita o modelo publish-subscribe do PostgreSQL e implementa duas funcionalidades principais: filtro de origem e filtro de registros. O filtro de origem permite que os dados originados em um servidor não voltem a ele. Essa funcionalidade é a base da replicação bidirecional. Uma tabela participa da replicação em ambas direções. O filtro de registros permite selecionar quais os dados serão enviados aos servidores que participam da replicação. Se houver filtro de registros, ele será aplicado antes de enviar para o servidor assinante. Assim, servidores podem ser concentradores de dados, distribuidores de dados ou ambos.

O KrahoDB faz a sincronização parcial de dados, se houverem filtros de registros definidos. Após essa sincronização, as mudanças aplicadas em um servidor serão enviadas a seu par em tempo real e aplicadas na mesma ordem em que foram alteradas na origem.

Os benefícios de implementar o KrahoDB

Um dos principais benefícios do KrahoDB é distribuir o serviço de banco de dados entre os diversos servidores. Por ser tolerante a falha de conexão entre os servidores, o KrahoDB fica disponível localmente e o negócio do cliente não fica parado. Ao restabelecer a conexão, os dados são sincronizados com eficiência e rapidez.

O KrahoDB herda do PostgreSQL alguns benefícios tais como reduzir a carga de IO produzida por soluções de replicação lógica baseadas em gatilhos, executar a replicação em versões diferentes do KrahoDB e em sistemas operacionais diferentes, não é preciso cancelar consultas para que a replicação continue e os servidores podem ter diferentes usuários, permissões, índices e parâmetros.

O processo de migração para versões futuras do KrahoDB é suave. Isso porque podemos montar a replicação e transferir todos os dados entre uma versão anterior e uma versão atual sem precisar de uma parada no serviço de banco de dados. Uma pequena parada programada colocará em operação a nova versão do KrahoDB. Além disso, diferentes versões poderão coexistir nos diversos servidores de banco de dados.

A Timbira pode ajudar você a escolher a melhor maneira de implantar o KrahoDB baseado nas necessidades do seu negócio. Nosso time garantirá que os requisitos do seu negócio sejam atendidos e que o KrahoDB esteja funcionando adequadamente. Quer conversar conosco? Entre em contato pelo telefone (11) 97116-2569 ou pelo e-mail contato@timbira.com.br.

Quer conhecer mais? Acesse nosso GitHub.