Artigo SQL Magazine 15 - Projetando sistemas descentralizados usando replicação de dados "multi-master"

Artigo da Revista SQL Magazine - Edição 15.

Clique aqui para ler esse artigo em PDF.

Clique aqui para ler todos os artigos desta edição

Projetando sistemas descentralizados usando replicação de dados "multi-master"

 

por Wagner Corrêa Ramos

Trabalhando na área de sistemas há 19 anos, presenciei em diversas oportunidades o problema de como modelar e manipular dados em empresas com mais de um site físico, algumas vezes com filiais espalhadas por todo o Brasil, ou ainda multinacionais. Até alguns anos atrás, não havia solução economicamente viável para pequenas ou médias empresas, havendo apenas as soluções dos grandes fabricantes de SGBDs, que além do alto custo, exigiam uma infra-estrutura de rede bastante cara e robusta para que funcionassem. Uma solução utilizada era o uso de terminais "burros", onde o usuário acessava o sistema instalado no servidor em uma das empresas (matriz) através de linhas de comunicação dedicadas, lentas e também caras.

Uma das soluções disponíveis atualmente é o uso de sistemas com interface web, que podem ser instalados em um servidor central (matriz) e acessados pelas outras empresas (filiais) através da internet. Considero essa uma solução melhor que as anteriores, principalmente pelo fato de que atualmente podemos encontrar conexões banda larga com preços bastante acessíveis. A interface com o usuário em muitas situações é melhor que a dos terminais "burros". Enfim, é uma solução razoável, mas ainda temos o problema do desempenho e da disponibilidade do sistema. Muitas empresas não pensam em colocar sistemas críticos em arquitetura web. Imagine, por exemplo, a situação onde um cliente esteja no caixa de um supermercado, com pressa de ir embora, querendo pagar sua conta, e tendo que esperar pacientemente a emissão de uma nota fiscal porque o sistema está lento ou porque a internet está fora do ar.

A replicação de dados já foi considerada uma solução para estes problemas, mas geralmente era deixada de lado por exigirem infra-estrutura de alto custo. Hoje, com o surgimento de softwares open source ou proprietários de baixo custo, e com o barateamento da tecnologia empregada na replicação, tornou-se muito mais fácil a solução para o problema apresentado. Depois de anos batendo de frente com este problema, acredito que o quebra-cabeça começa a se resolver de forma simples e eficiente.

Veremos nesse artigo os principais conceitos sobre replicação de dados, discutindo os tipos de replicadores, modelagem e implementação de bancos de dados para trabalhar corretamente com replicação “multi-master”, apresentando também um estudo de caso real.

Replicação de Dados

Replicação é um meio de se copiar (replicar) de forma gerenciada os dados entre servidores, que podem estar próximos ou a centenas de quilômetros de distância. Nos últimos anos houve uma avalanche de lançamentos de produtos para replicação de dados no mercado. Só para o PostgreSQL existem mais de cinco produtos open source (slony-I, eRServer, Postgres-R, DBBalancer, DBMirror, etc) e alguns outros comerciais. Outros bancos, como o Firebird e o MySQL, também possuem produtos com essa função. Podemos dizer que, para a maioria dos SGBDs open source, existe pelo menos uma opção de replicação gratuita e outras de custo bastante reduzidos.

Existem dois grandes grupos de softwares replicadores: os replicadores "lazy" (lentos, preguiçosos) e os replicadores "eager" (ansiosos, impulsivos). Diversos artigos exibem as diversas vantagens dos replicadores "eager" sobre os "lazy", mas todos eles concordam em dizer que o melhor replicador para uma empresa pode não ser o melhor para outra, que a solução ótima para um pode não ser a solução ótima para todos." [...] continue lendo...

Ebook exclusivo
Dê um upgrade no início da sua jornada. Crie sua conta grátis e baixe o e-book

Artigos relacionados