nosql cassandra

31
NoSQL

Upload: luiscarlosj

Post on 19-Jan-2016

323 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: NoSQL Cassandra

NoSQL

Page 2: NoSQL Cassandra

Considerações sobre o Cassandra

• Mitologia Grega;

• Criado pelo Facebook;

• Sistema de banco de dados Nosql;

• Projetado para armazenar e gerenciar grandes quantidades de dados em servidores;

• Reúne as tecnologias de sistemas distribuídos do Dynamo da Amazon e o modelo de dados do BigTable do Google.

Page 3: NoSQL Cassandra

Considerações sobre o Cassandra

• Sistema open source e distribuído;

• É baseado no tipo chave / valor;

• Altas escalabilidade e disponibilidade;

• Possui uma linguagem de consulta – CQL;

• Tolerância ao particionamento de dados.

Page 4: NoSQL Cassandra

Teorema de CAP

Dentre consistência, disponibilidade e tolerância a partições não se pode ter os três ao mesmo tempo e obter uma tolerância aceitável.

ACID vs BASE Atomicidade Consistência Isolamento

Durabilidade

Basicamente Disponível,

Eventualmente Disponível

Onde o Cassandra se encaixa

Page 5: NoSQL Cassandra

Arquitetura do Cassandra

Armazena dados de acordo com o modelo de dados de família de colunas:

Colunas Linhas Família de Colunas

Keyspaces

Page 6: NoSQL Cassandra

Modelo de dados do Cassandra

Page 7: NoSQL Cassandra

Curiosidades do Cassandra

Sem transações, sem JOINs

Sem chaves estrangeiras.

As chaves são imutáveis

Page 8: NoSQL Cassandra

Instalação do Cassandra

1ª opção: cassandra.apache.org

Page 9: NoSQL Cassandra

Instalação do Cassandra

2ª opção: planetcassandra.org.cassandra

Page 10: NoSQL Cassandra

Instalação do Cassandra

Page 11: NoSQL Cassandra

Instalação do Cassandra

Page 12: NoSQL Cassandra

Instalação do Cassandra

Page 13: NoSQL Cassandra

Instalação do Cassandra

Page 14: NoSQL Cassandra

Instalação do Cassandra

Page 15: NoSQL Cassandra

Instalação do Cassandra

Page 16: NoSQL Cassandra

Instalação do Cassandra

Page 17: NoSQL Cassandra

Modo Gráfico - Cassandra

Localhost:8888/opscenter/index.html

Page 18: NoSQL Cassandra

Modo Texto - Cassandra

Page 19: NoSQL Cassandra

Cassandra - Replicação

● Vantagens:

Maior disponibilidade: os dados permanecem acessíveis diante de falhas.

● Desvantagens:

Controle de consistência: é preciso manter as réplicas atualizadas.

Page 20: NoSQL Cassandra

Cassandra - Replicação

Protocolo Gossip

Protocolo de comunicação para descobrir e partilhar a localização e estado informações sobre os outros nós

em um cluster Cassandra.

Page 21: NoSQL Cassandra

Definições Básicas - Replicação

o Réplica: cópia de uma linha (row); Não existe uma réplica principal;

o Fator de replicação: número de nós que devem armazenar uma réplica;

o Estratégia de replicação: maneira com que as réplicas serão distribuídas

entre os nós;

o Data center: agrupamento lógico de nós em um cluster com finalidades de

replicação;

o Rack: agrupamento lógico de nós em um data center;

o Endpoint: nó passível de receber uma réplica no processo de replicação.

Page 22: NoSQL Cassandra

Snitch

• Fornece informações para o Cassandra à respeito dos nós no cluster;

• Além da replicação, é usado nas requisições para roteamento eficiente;

• Através dele é possível fazer diversas consultas:

qual o rack de um nó? qual o datacenter de um nó? quais são os nós mais próximos que eu posso inserir uma réplica? quais os nós de um datacenter?

• Define-se o tipo do snitch no arquivo de configuração do Cassandra;

• Todos os nós devem ter a mesma configuração;

Page 23: NoSQL Cassandra

Snitch SimpleSnitch

• Não leva em conta organização de racks e data centers;

• Retorna sempre uma lista de todos os nós do anel.

RackInferringSnitch

• Leva em conta racks e data centers;

• Infere o rack e data center de um nó à partir do seu endereço IP.

Page 24: NoSQL Cassandra

Cassandra - Replicação

A estratégia de replicação é definida na criação do Keyspace, juntamente com o fator de replicação.

Page 25: NoSQL Cassandra

Estratégias de Replicação Basicamente fazem o seguinte

1. O Snitch retorna uma lista com os endpoints (nós que podem receber uma réplica);

2. Cria um iterador para uma lista formada à partir dos endpoints retornados e seus tokens;

3. Insere nos endpoints retornados pelo iterador até que o fator de replicação seja satisfeito;

Duas estratégias fornecidas:

SimpleStrategy

NetworkTopologyStrategy

Page 26: NoSQL Cassandra

Simple Strategy

Rack Unaware usado em clusters de um único data center

Funcionamento: 1. O particionador determina a posição da primeira réplica (primeiro nó que possui token maior que o token da entrada); 2. As N-1 réplicas são alocadas nos próximos nós do anel seguindo o sentido horário (ordem dos tokens).

Page 27: NoSQL Cassandra

Simple Strategy

Page 28: NoSQL Cassandra

Network Topology Strategy

É criado um anel virtual para cada data center

A partir de então, em cada data center se faz o seguinte

1. A primeira réplica é colocada em um nó determinado pelo

particionador.

2. Se percorre o anel em sentido horário onde a próxima

réplica é inserida em um nó pertencente a um rack diferente

do nó da réplica anterior. Se não existe tal rack, as réplicas

restantes são colocadas sem a restrição dos racks .

Page 29: NoSQL Cassandra

Network Topology Strategy

Page 30: NoSQL Cassandra

Como fazer na prática?

● Escolher o nome do Cluster;

● Pegar os endereços dos nós;

● Determina os seed nodes. ( Que são utilizados pelos nós nos Cluster para a aprender a topologia);

● Determinar o snitch.

Page 31: NoSQL Cassandra

Como fazer na prática? Abrir o arquivo cassandra.yaml que fica em diretório instalado

/conf/ e setar os seguintes valores: