Blog com informações sobre Tecnologia da Informação e demais assuntos pertinentes.
segunda-feira, 12 de janeiro de 2015
quarta-feira, 29 de outubro de 2014
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).
sábado, 13 de setembro de 2014
Serviços de Transporte Orientado à Conexão e Não Orientado à Conexão - Controle de Fluxo e Controle de Consgestionamento
Toda vez que uma
aplicação estiver rodando em um host e precisar se comunicar com uma aplicação
em um host diferente deve ter como informação o número da porta
com o endereço IP. O sistema operacional gerencia cada porta
das aplicações em um computador. Quando uma aplicação quer se comunicar com
outra ocorre uma solicitação informando o endereço IP destino junto com a porta
da aplicação destino.
Os dois tipos de
serviços de transporte que a internet provê são o orientado à conexão (TCP)
e o não
orientado à conexão (UDP). O primeiro utiliza o protocolo TCP para
a realização do transporte de dados e tem como vantagem o estabelecimento de
conexão antes de qualquer transferência, confirmação de recebimento e
retransmissão em caso de perdas, controle de fluxo, controle de
congestionamento dentre outras características. Este tipo de serviço é utilizado
em jogos interativos, email e transferência de arquivos. O serviço não
orientado à conexão transporta os dados sem qualquer estabelecimento prévio de
conexão, em caso de perda não oferece a retransmissão e a sequencia de dados
transmitidos pode não seguir um processo ordenado. Esse segundo serviço é muito
utilizado na transferência de áudio em que perda de parte dos dados não
acarretará danos significativos no processo de transmissão.
O serviço orientado à
conexão é realizado pelo protocolo TCP. Duas das características oferecidas por
esse protocolo são o controle de fluxo e o controle
de congestionamento. Nesse serviço da internet eles não são os
mesmos. O que acontece no controle de
fluxo é o seguinte: na comunicação entre um host A com um host B pode
acontecer que o segundo tenha uma determinada capacidade de recebimento de
pacotes (aqui entendido como conjunto de dados lógicos agrupados mediante
solicitação prévia) e o primeiro envie esses pacotes numa quantidade que supere
essa capacidade tendo que ocorrer um controle no envio para que o destinatário
não seja sobrecarregado. No controle de
congestionamento não é sobre o host que o controle acontece propriamente
dito e sim sobre a rede. A rede possui determinada capacidade de transmissão.
Para que não fique sobrecarregada e possa atender a demanda dos processos de
comunicação, o controle de congestionamento entra em operação de forma que
alguns hosts não enviem qualquer informação tendo que aguardar a rede a estar
disponível para transmiti-la.
quarta-feira, 20 de agosto de 2014
terça-feira, 19 de agosto de 2014
sábado, 16 de agosto de 2014
Técnicas Principais para Programação de Banco de Dados
As três técnicas principais para programação de banco de dados são:
1 – técnica da SQL embutida;
2 – técnica da biblioteca de função para banco de dados;
3 – técnica da linguagem de programação para banco de dados.
A vantagem da primeira técnica (SQL
embutida) é que o texto onde a SQL é trabalhada já faz parte do código fonte e
a verificação da sintaxe pode ser feita pela própria linguagem de programação.
Já a desvantagem é o retrabalho para compilar quando ocorre qualquer mudança no
código.
A vantagem da segunda técnica é a
flexibilidade que a biblioteca de funções traz ao desenvolvedor pois as funções
para operacionalizar um banco de dados já estão prontas. Esta biblioteca
trata-se de uma API. O que é vantagem para uns é uma desvantagem para outros. Com
o uso da biblioteca a carga de processamento recai sobre o servidor do banco de
dados.
A última técnica acontece quando
se precisa construir uma linguagem de programação do zero para operacionalizar
um banco de dados. A vantagem é que o problema de “impedance mismatch” é
minimizado pois a linguagem foi desenvolvida de acordo o modelo de banco de
dados com que ela trabalhará. Assim não ocorrerá conflito entre os tipos de
dados. A desvantagem é que os desenvolvedores terão que despender tempo para
construir conhecimento sobre uma nova linguagem e pode ocorrer que uma linguagem
específica não resolverá todos os problemas que podem aparecer.
Assinar:
Postagens (Atom)