Seguir @luiscarlos_j

terça-feira, 16 de setembro de 2014

REPLICAÇÃO SQL e REPLICAÇÃO NoSQL



Replicação refere-se ao armazenamento de dados e a estratégia de backups entre computadores em locais distintos. É um conjunto de tecnologias utilizadas para copiar e distribuir objetos e dados de um banco de dados para outro banco de dados, sincronizando estes dados com a finalidade de se manter a consistência.
A replicação de dados oferece muitas vantagens como a redundância dos dados que permite ao sistema a propriedade de tolerância a falhas e a melhoria da escalabilidade e também da disponibilidade. Sempre em um projeto de banco de dados, principalmente se for SQL devido ao conceito de ACID, a característica da escalabilidade torna-se muito importante pois indica que o sistema tem a capacidade de tratar uma demanda crescente de trabalho (tratamento de dados) sem perda de desempenho, ou seja, ocorre o balanceamento de carga do sistema já que com os dados disponíveis em todas as réplicas (sincronização) o acesso pode ser feito de forma distribuída.
Existem alguns modelos de replicação e o tipo a ser utilizado depende de alguns fatores como o ambiente físico, a quantidade de dados e o sentido da atualização dos dados. Pode-se destacar a replicação síncrona, em que os dados encontrados nas réplicas são sempre os mesmos, a replicação assíncrona, onde a sincronização só ocorre no caso de alteração dos dados, a replicação multimaster, em que é possível a realização das operações de leitura e gravação em qualquer réplica, e a replicação master-slave, onde a operação de gravação só é permitida na réplica master e a leitura em qualquer uma delas.
Dependendo do tipo de banco de dados, diferentes tipos de replicação são adotados. No caso dos bancos de dados SQL que possuem as propriedades ACID (Atomicidade, Consistência, Isolamento e Durabilidade) o modelo normalmente utilizado é o master-slave (mestre-escravo) onde um servidor atua como master e os demais atuam como slave onde todas as operações que alteram algum dado no master são repassadas de imediato para os servidores slaves. Um exemplo de banco de dados que utiliza este tipo de replicação é o MySQL.
No caso dos bancos de dados NoSQL que trabalham com a propriedade BASE (Basicamente Disponível Eventualmente Consistente) o modelo normalmente adotado é o multimaster onde as operação de leitura e gravação podem ser realizadas através de qualquer nó. Esse tipo de banco de dados possui fraca consistência e tem como fator principal a disponibilidade. Um exemplo de banco de dados que trabalha com este tipo de replicação é o Cassandra que usa o particionamento dos dados através da estratégia de replicação e da topologia dos clusters (distribuição dos nós).

Nenhum comentário:

Postar um comentário