SlideShare uma empresa Scribd logo
1 de 43
Baixar para ler offline
NoSQL Apache Cassandra para
DBAs
Conceitos básicos que todo DBA deve
conhecer sobre Apache Cassandra.
Apresentação Pessoal
• Ronaldo Martins: Há mais de 14 anos dedicado
à tecnologias Oracle, passando pelas releases
8i, 9i, 10g, 11g e 12c do Oracle Database.
Consultor DBA Oracle, MySQL, NoSQL Apache
Cassandra, instrutor de treinamentos Oracle e
fundador da TIMEDATA Tecnologia.
• Blog: http://ronaldolmartins.blogspot.com.br/
Tópicos
• Breve História do Apache Cassandra;
• Apache Cassandra x Modelo Relacional;
• O que o Apache Cassandra não tem?
• Principais componentes do Apache
Cassandra;
• Entendendo Escrita, Leitura no Apache
Cassandra;
Tópicos
• Backup;
• Escalabilidade;
• Cluster;
• Replication Factor;
• Consistência de dados;
Sobre Cassandra
Sobre Apache Cassandra
Sobre Apache Cassandra
Apache Cassandra x Modelo
Relacional
Apache Cassandra x Modelo
Relacional – Modelo de dados Chave/Valor
Modelo de dados Flexível
• Um “alter table em ambiente OLTP” x
“Modificação de coluna no Cassandra”
Linguagem CQL
• Cassandra Query Language (CQL);
• O uso do CQL é semelhante ao SQL;
• Utilitário de linha de comando cqlsh ou
DevCenter;
Time-To-Live - TTL
• INSERT INTO TB01 (id,json)
VALUES (99999,'teste') using
TTL 20;
• select TTL(json), id, json
from TB01;
Tombstones
• O Cassandra realiza uma marca nos
dados TTL depois que a quantidade de
tempo solicitada expirou. Depois que os
dados são marcados, os dados são
removidos automaticamente durante o
processo normal de compactação;
O que o Apache Cassandra não
tem?
• Subconsultas;
• JOINs (máximo de dados possível na
mesma linha);
• Chaves estrangeiras;
Principais componentes do
Apache Cassandra
Principais componentes do
Apache Cassandra
• Commit log - Mecanismo de
recuperação. Operação de escrita é
registrada no registro de commit. É
sequencial;
• Mem-table - É uma estrutura de dados
residente em memória. Após commit
log, os dados serão nela;
Principais componentes do
Apache Cassandra
• SSTable - Arquivo em disco para o qual
os dados são liberados a partir da mem-
table ou quando o seu conteúdo chegar a
um valor limite;
• Filtro de Bloom - É um tipo especial de
cache. Filtros Bloom são acessados
depois de cada consulta;
Entendendo Escrita no Apache
Cassandra
• Escreve primeiro em um registro “log”;
• Depois escreve em uma estrutura de
tabela na memória denominada por
mem-table.
Entendendo Escrita no Apache
Cassandra
• Parâmetro:
memtable_flush_queu
e_size;
• Escritas são agrupadas
na memória e
periodicamente
gravadas em disco;
Entendendo Escrita no Apache
Cassandra
• A escrita é bem-sucedida uma vez que é
escrita no log e na memória(Mem-table),
gerando o mínimo de I/O no disco no
momento de gravação;
• Se ocorrer uma queda ou falha do servidor
antes da mem-table ser flushed, o commit
log é repetido ao reiniciar para recuperar
escritas perdidas;
Entendendo Escrita no Apache
Cassandra
Entendendo Leitura no Apache
Cassandra
Entendendo Leitura no Apache
Cassandra
• O Key cache salva uma busca durante a
operação de leitura. Se uma chave não for
encontrada no key cache, o Summary Index será
pesquisado.
• O Summary Index é uma estrutura em memória
que armazena uma amostragem do índice e
mapeia o local de localização de cada chave no
arquivo ou bloco que tem os dados no SSTable.
Entendendo Leitura no Apache
Cassandra
• SSTable tem um filtro Bloom (estrutura em
memória) associado a ele que verifica se uma
chave de linha solicitada existe no SSTable antes
de fazer qualquer busca no disco;
• Em seguida, o Cassandra checa o key cache
global(localização das chaves na memória). Se
os dados solicitados não estão no key cache, é
feita uma busca binária no index summary para
encontrar uma linha.
Entendendo Leitura no Apache
Cassandra
• Finalmente, o Cassandra realiza um simples
seek e uma leitura sequencial de colunas no
SSTable, e retorna o conjunto de resultados.
Backup
• Snapshot de todos os arquivos de dados
no disco (arquivos SSTable);
Escalabilidade
• O Cassandra trabalha na forma
horizontal ou linear que é a capacidade
de adicionar novas máquinas no cluster
para, de forma distribuída, aumentar os
recursos de processamento, memória e
disco.
Cluster
• Sistema distribuído peer-to-peer através
de seus nós, e os dados são distribuídos
entre todos os nós em um cluster, são
todos iguais.
− Todos os nós em um cluster desempenham o
mesmo papel. Cada nó é independente e, ao
mesmo tempo interligados;
Cluster
− Cada nó em um cluster pode aceitar leitura
e escrita pedidos, independentemente de
onde os dados são realmente localizado no
cluster;
Cluster - Configuração
• /etc/cassandra/cassandra.yaml.
Replication Factor
• O Cassandra armazena réplicas em vários
nós para garantir confiabilidade e
tolerância a falhas.
• Um fator de replicação de 2 significa
duas cópias de cada linha, onde cada
cópia está em um nó diferente.
• O fator de replicação não deve exceder
o número de nós no cluster.
Replication Factor
• create keyspace TestKeyspace
WITH REPLICATION = { 'class' :
'SimpleStrategy',
'replication_factor' : '2' };
Consistência de dados
• Níveis de consistência na Cassandra
podem ser configurados para
leitura/gravação para gerenciar a
disponibilidade versus a precisão dos
dados.
Consistência de dados - Escrita
• O nível de consistência determina o
número de réplicas nas quais a gravação
deve ser bem-sucedida antes de retornar
uma confirmação cliente.
Consistência de dados - Escrita
• ONE: Uma gravação deve acontecer em
pelo menos um nó de réplica, antes da
confirmação para o usuário.(Commit-Log
e Mem-table)
• TWO: Uma gravação deve acontecer em
pelo menos dois nós de réplica, antes da
confirmação para o usuário.
Consistência de dados - Leitura
• O nível de consistência também
especifica quantas réplicas devem
responder a uma solicitação de leitura
antes de retornar dados para o
aplicativo cliente.
Consistência de dados - Leitura
• TWO: Retorna os dados mais recentes de
duas das réplicas mais próximas. O
Cassandra escolhe pelo timestamp o
dado mais recente entre as réplicas
que responderam;
Consistência de dados - Leitura
Consistência de dados - CQL
• CONSISTENCY TWO;
• INSERT INTO
Alunos(nome,matrícula) VALUES
('FFFF', 65535) ;
Consistência de dados - CQL
• CONSISTENCY THREE;
• SELECT * FROM Alunos
where matricula = 999
;
Perguntas?
• Blog: http://ronaldolmartins.blogspot.com.br/
• Email: ronaldolmartins@gmail.com
DBA Brasil 2.0   NOSql Apache Cassandra para DBAs

Mais conteúdo relacionado

Mais procurados

SP Big Data Meetup - Conhecendo Apache Cassandra @Movile
SP Big Data Meetup - Conhecendo Apache Cassandra @MovileSP Big Data Meetup - Conhecendo Apache Cassandra @Movile
SP Big Data Meetup - Conhecendo Apache Cassandra @MovileEiti Kimura
 
Primeiros passos com o Cassandra
 Primeiros passos com o Cassandra  Primeiros passos com o Cassandra
Primeiros passos com o Cassandra Otávio Santana
 
QConSP 2014 - Cassandra no Desenvolvimento de Aplicações para serviços Móveis
QConSP 2014 - Cassandra no Desenvolvimento  de Aplicações para  serviços MóveisQConSP 2014 - Cassandra no Desenvolvimento  de Aplicações para  serviços Móveis
QConSP 2014 - Cassandra no Desenvolvimento de Aplicações para serviços MóveisEiti Kimura
 
QConSP16 - Apache Cassandra Evoluindo Sistemas Distribuídos
QConSP16 - Apache Cassandra Evoluindo Sistemas DistribuídosQConSP16 - Apache Cassandra Evoluindo Sistemas Distribuídos
QConSP16 - Apache Cassandra Evoluindo Sistemas DistribuídosEiti Kimura
 
Comparação de desempenho entre SQL e NoSQL
Comparação de desempenho entre SQL e NoSQLComparação de desempenho entre SQL e NoSQL
Comparação de desempenho entre SQL e NoSQLpichiliani
 
[TDC2016] Apache Cassandra Estratégias de Modelagem de Dados
[TDC2016]  Apache Cassandra Estratégias de Modelagem de Dados[TDC2016]  Apache Cassandra Estratégias de Modelagem de Dados
[TDC2016] Apache Cassandra Estratégias de Modelagem de DadosEiti Kimura
 
NoSQL, Base VS ACID e Teorema CAP
NoSQL, Base VS ACID e Teorema CAPNoSQL, Base VS ACID e Teorema CAP
NoSQL, Base VS ACID e Teorema CAPAricelio Souza
 
Sistemas NoSQL, surgimento, características e exemplos
Sistemas NoSQL, surgimento, características e exemplosSistemas NoSQL, surgimento, características e exemplos
Sistemas NoSQL, surgimento, características e exemplosAricelio Souza
 
Bancos orientados a colunas (Cassandra)
Bancos orientados a colunas (Cassandra) Bancos orientados a colunas (Cassandra)
Bancos orientados a colunas (Cassandra) Otávio Santana
 
NoSQL Familia de Colunas Monografia
NoSQL Familia de Colunas MonografiaNoSQL Familia de Colunas Monografia
NoSQL Familia de Colunas MonografiaAugusto Giles
 
Algumas das principais características do NoSQL
Algumas das principais características do NoSQLAlgumas das principais características do NoSQL
Algumas das principais características do NoSQLEric Silva
 
Introducao aos Bancos de Dados Não-relacionais
Introducao aos Bancos de Dados Não-relacionaisIntroducao aos Bancos de Dados Não-relacionais
Introducao aos Bancos de Dados Não-relacionaisMauricio De Diana
 
No sql e as vantagens na utilização do mongodb
No sql e as vantagens na utilização do mongodbNo sql e as vantagens na utilização do mongodb
No sql e as vantagens na utilização do mongodbfabio perrella
 

Mais procurados (20)

SP Big Data Meetup - Conhecendo Apache Cassandra @Movile
SP Big Data Meetup - Conhecendo Apache Cassandra @MovileSP Big Data Meetup - Conhecendo Apache Cassandra @Movile
SP Big Data Meetup - Conhecendo Apache Cassandra @Movile
 
Seminário - NoSQL
Seminário - NoSQLSeminário - NoSQL
Seminário - NoSQL
 
Primeiros passos com o Cassandra
 Primeiros passos com o Cassandra  Primeiros passos com o Cassandra
Primeiros passos com o Cassandra
 
QConSP 2014 - Cassandra no Desenvolvimento de Aplicações para serviços Móveis
QConSP 2014 - Cassandra no Desenvolvimento  de Aplicações para  serviços MóveisQConSP 2014 - Cassandra no Desenvolvimento  de Aplicações para  serviços Móveis
QConSP 2014 - Cassandra no Desenvolvimento de Aplicações para serviços Móveis
 
QConSP16 - Apache Cassandra Evoluindo Sistemas Distribuídos
QConSP16 - Apache Cassandra Evoluindo Sistemas DistribuídosQConSP16 - Apache Cassandra Evoluindo Sistemas Distribuídos
QConSP16 - Apache Cassandra Evoluindo Sistemas Distribuídos
 
Comparação de desempenho entre SQL e NoSQL
Comparação de desempenho entre SQL e NoSQLComparação de desempenho entre SQL e NoSQL
Comparação de desempenho entre SQL e NoSQL
 
[TDC2016] Apache Cassandra Estratégias de Modelagem de Dados
[TDC2016]  Apache Cassandra Estratégias de Modelagem de Dados[TDC2016]  Apache Cassandra Estratégias de Modelagem de Dados
[TDC2016] Apache Cassandra Estratégias de Modelagem de Dados
 
NoSQL, Base VS ACID e Teorema CAP
NoSQL, Base VS ACID e Teorema CAPNoSQL, Base VS ACID e Teorema CAP
NoSQL, Base VS ACID e Teorema CAP
 
Material Seminário NoSQL
Material Seminário NoSQLMaterial Seminário NoSQL
Material Seminário NoSQL
 
Sistemas NoSQL, surgimento, características e exemplos
Sistemas NoSQL, surgimento, características e exemplosSistemas NoSQL, surgimento, características e exemplos
Sistemas NoSQL, surgimento, características e exemplos
 
Banco de Dados - NoSQL
Banco de Dados - NoSQLBanco de Dados - NoSQL
Banco de Dados - NoSQL
 
Bancos de dados NoSQL
Bancos de dados NoSQLBancos de dados NoSQL
Bancos de dados NoSQL
 
Bancos orientados a colunas (Cassandra)
Bancos orientados a colunas (Cassandra) Bancos orientados a colunas (Cassandra)
Bancos orientados a colunas (Cassandra)
 
Introdução ao NoSql
Introdução ao NoSqlIntrodução ao NoSql
Introdução ao NoSql
 
NoSQL Familia de Colunas Monografia
NoSQL Familia de Colunas MonografiaNoSQL Familia de Colunas Monografia
NoSQL Familia de Colunas Monografia
 
Algumas das principais características do NoSQL
Algumas das principais características do NoSQLAlgumas das principais características do NoSQL
Algumas das principais características do NoSQL
 
NoSQL
NoSQLNoSQL
NoSQL
 
No sql std
No sql stdNo sql std
No sql std
 
Introducao aos Bancos de Dados Não-relacionais
Introducao aos Bancos de Dados Não-relacionaisIntroducao aos Bancos de Dados Não-relacionais
Introducao aos Bancos de Dados Não-relacionais
 
No sql e as vantagens na utilização do mongodb
No sql e as vantagens na utilização do mongodbNo sql e as vantagens na utilização do mongodb
No sql e as vantagens na utilização do mongodb
 

Semelhante a DBA Brasil 2.0 NOSql Apache Cassandra para DBAs

Bancos de Dados Relacionais e NoSQL na Nuvem da AWS
Bancos de Dados Relacionais e NoSQL na Nuvem da AWSBancos de Dados Relacionais e NoSQL na Nuvem da AWS
Bancos de Dados Relacionais e NoSQL na Nuvem da AWSAmazon Web Services LATAM
 
Exadata - O Todo é maior que a soma das Partes
Exadata - O Todo é maior que a soma das PartesExadata - O Todo é maior que a soma das Partes
Exadata - O Todo é maior que a soma das PartesLuis Marques
 
ClusterizaçãO De AplicaçõEs Php
ClusterizaçãO De AplicaçõEs PhpClusterizaçãO De AplicaçõEs Php
ClusterizaçãO De AplicaçõEs PhpCampus Party Brasil
 
Path to the future #5 - Melhores práticas de data warehouse no Amazon Redshift
Path to the future #5 - Melhores práticas de data warehouse no Amazon RedshiftPath to the future #5 - Melhores práticas de data warehouse no Amazon Redshift
Path to the future #5 - Melhores práticas de data warehouse no Amazon RedshiftAmazon Web Services LATAM
 
Migrando seu workload de Big Data para o Amazon EMR
Migrando seu workload de Big Data para o Amazon EMRMigrando seu workload de Big Data para o Amazon EMR
Migrando seu workload de Big Data para o Amazon EMRAmazon Web Services LATAM
 
Estou seguro com no sql
Estou seguro com no sqlEstou seguro com no sql
Estou seguro com no sqlRafael Redondo
 
Oracle 11g – Inteligência em Banco de Dados
Oracle 11g – Inteligência em Banco de DadosOracle 11g – Inteligência em Banco de Dados
Oracle 11g – Inteligência em Banco de DadosDaniela Macedo
 
AWS Meetup Rio - Qual banco usar e quando?
AWS Meetup Rio - Qual banco usar e quando?AWS Meetup Rio - Qual banco usar e quando?
AWS Meetup Rio - Qual banco usar e quando?Pedro Pisa
 
Desenvolvendo aplicações Web escaláveis
Desenvolvendo aplicações Web escaláveisDesenvolvendo aplicações Web escaláveis
Desenvolvendo aplicações Web escaláveiselliando dias
 
Intro Arquitetura Oracle
Intro Arquitetura OracleIntro Arquitetura Oracle
Intro Arquitetura OraclePablo Garcia
 
GUO-RS - Junho/2005 - ASM 10g
GUO-RS - Junho/2005 - ASM 10gGUO-RS - Junho/2005 - ASM 10g
GUO-RS - Junho/2005 - ASM 10gDaniela Macedo
 
Avaliando o Apache Cassandra como cache distribuido no SPC Brasil - NoSQLBR
Avaliando o Apache Cassandra como cache distribuido no SPC Brasil - NoSQLBRAvaliando o Apache Cassandra como cache distribuido no SPC Brasil - NoSQLBR
Avaliando o Apache Cassandra como cache distribuido no SPC Brasil - NoSQLBRJulio Viegas
 
Otimizacao de websites em PHP
Otimizacao de websites em PHPOtimizacao de websites em PHP
Otimizacao de websites em PHPFelipe Ribeiro
 
Aws sao paulo summit 2015 elasti cache avancado
Aws sao paulo summit 2015   elasti cache avancadoAws sao paulo summit 2015   elasti cache avancado
Aws sao paulo summit 2015 elasti cache avancadoAmazon Web Services LATAM
 
Apresentação PGDAY - Replicação Nativa - PostgreSQL
Apresentação PGDAY - Replicação Nativa - PostgreSQLApresentação PGDAY - Replicação Nativa - PostgreSQL
Apresentação PGDAY - Replicação Nativa - PostgreSQLJohnes Castro
 
PHPMyadmin - Introdução
PHPMyadmin - IntroduçãoPHPMyadmin - Introdução
PHPMyadmin - IntroduçãoMarco Pinheiro
 

Semelhante a DBA Brasil 2.0 NOSql Apache Cassandra para DBAs (20)

Bancos de Dados Relacionais e NoSQL na Nuvem da AWS
Bancos de Dados Relacionais e NoSQL na Nuvem da AWSBancos de Dados Relacionais e NoSQL na Nuvem da AWS
Bancos de Dados Relacionais e NoSQL na Nuvem da AWS
 
Exadata - O Todo é maior que a soma das Partes
Exadata - O Todo é maior que a soma das PartesExadata - O Todo é maior que a soma das Partes
Exadata - O Todo é maior que a soma das Partes
 
ClusterizaçãO De AplicaçõEs Php
ClusterizaçãO De AplicaçõEs PhpClusterizaçãO De AplicaçõEs Php
ClusterizaçãO De AplicaçõEs Php
 
Clusterização de Aplicações PHP
Clusterização de Aplicações PHPClusterização de Aplicações PHP
Clusterização de Aplicações PHP
 
Path to the future #5 - Melhores práticas de data warehouse no Amazon Redshift
Path to the future #5 - Melhores práticas de data warehouse no Amazon RedshiftPath to the future #5 - Melhores práticas de data warehouse no Amazon Redshift
Path to the future #5 - Melhores práticas de data warehouse no Amazon Redshift
 
Introducao ao Amazon Redshift
Introducao ao Amazon RedshiftIntroducao ao Amazon Redshift
Introducao ao Amazon Redshift
 
Migrando seu workload de Big Data para o Amazon EMR
Migrando seu workload de Big Data para o Amazon EMRMigrando seu workload de Big Data para o Amazon EMR
Migrando seu workload de Big Data para o Amazon EMR
 
Estou seguro com no sql
Estou seguro com no sqlEstou seguro com no sql
Estou seguro com no sql
 
Primeiros Passos Com Elasticsearch
Primeiros Passos Com ElasticsearchPrimeiros Passos Com Elasticsearch
Primeiros Passos Com Elasticsearch
 
Oracle 11g – Inteligência em Banco de Dados
Oracle 11g – Inteligência em Banco de DadosOracle 11g – Inteligência em Banco de Dados
Oracle 11g – Inteligência em Banco de Dados
 
AWS Meetup Rio - Qual banco usar e quando?
AWS Meetup Rio - Qual banco usar e quando?AWS Meetup Rio - Qual banco usar e quando?
AWS Meetup Rio - Qual banco usar e quando?
 
Desenvolvendo aplicações Web escaláveis
Desenvolvendo aplicações Web escaláveisDesenvolvendo aplicações Web escaláveis
Desenvolvendo aplicações Web escaláveis
 
Intro Arquitetura Oracle
Intro Arquitetura OracleIntro Arquitetura Oracle
Intro Arquitetura Oracle
 
GUO-RS - Junho/2005 - ASM 10g
GUO-RS - Junho/2005 - ASM 10gGUO-RS - Junho/2005 - ASM 10g
GUO-RS - Junho/2005 - ASM 10g
 
Avaliando o Apache Cassandra como cache distribuido no SPC Brasil - NoSQLBR
Avaliando o Apache Cassandra como cache distribuido no SPC Brasil - NoSQLBRAvaliando o Apache Cassandra como cache distribuido no SPC Brasil - NoSQLBR
Avaliando o Apache Cassandra como cache distribuido no SPC Brasil - NoSQLBR
 
Otimizacao de websites em PHP
Otimizacao de websites em PHPOtimizacao de websites em PHP
Otimizacao de websites em PHP
 
Aws sao paulo summit 2015 elasti cache avancado
Aws sao paulo summit 2015   elasti cache avancadoAws sao paulo summit 2015   elasti cache avancado
Aws sao paulo summit 2015 elasti cache avancado
 
Iniciando com Amazon Aurora
Iniciando com Amazon AuroraIniciando com Amazon Aurora
Iniciando com Amazon Aurora
 
Apresentação PGDAY - Replicação Nativa - PostgreSQL
Apresentação PGDAY - Replicação Nativa - PostgreSQLApresentação PGDAY - Replicação Nativa - PostgreSQL
Apresentação PGDAY - Replicação Nativa - PostgreSQL
 
PHPMyadmin - Introdução
PHPMyadmin - IntroduçãoPHPMyadmin - Introdução
PHPMyadmin - Introdução
 

DBA Brasil 2.0 NOSql Apache Cassandra para DBAs

  • 1. NoSQL Apache Cassandra para DBAs Conceitos básicos que todo DBA deve conhecer sobre Apache Cassandra.
  • 2.
  • 3. Apresentação Pessoal • Ronaldo Martins: Há mais de 14 anos dedicado à tecnologias Oracle, passando pelas releases 8i, 9i, 10g, 11g e 12c do Oracle Database. Consultor DBA Oracle, MySQL, NoSQL Apache Cassandra, instrutor de treinamentos Oracle e fundador da TIMEDATA Tecnologia. • Blog: http://ronaldolmartins.blogspot.com.br/
  • 4. Tópicos • Breve História do Apache Cassandra; • Apache Cassandra x Modelo Relacional; • O que o Apache Cassandra não tem? • Principais componentes do Apache Cassandra; • Entendendo Escrita, Leitura no Apache Cassandra;
  • 5. Tópicos • Backup; • Escalabilidade; • Cluster; • Replication Factor; • Consistência de dados;
  • 9. Apache Cassandra x Modelo Relacional
  • 10. Apache Cassandra x Modelo Relacional – Modelo de dados Chave/Valor
  • 11. Modelo de dados Flexível • Um “alter table em ambiente OLTP” x “Modificação de coluna no Cassandra”
  • 12. Linguagem CQL • Cassandra Query Language (CQL); • O uso do CQL é semelhante ao SQL; • Utilitário de linha de comando cqlsh ou DevCenter;
  • 13. Time-To-Live - TTL • INSERT INTO TB01 (id,json) VALUES (99999,'teste') using TTL 20; • select TTL(json), id, json from TB01;
  • 14. Tombstones • O Cassandra realiza uma marca nos dados TTL depois que a quantidade de tempo solicitada expirou. Depois que os dados são marcados, os dados são removidos automaticamente durante o processo normal de compactação;
  • 15. O que o Apache Cassandra não tem? • Subconsultas; • JOINs (máximo de dados possível na mesma linha); • Chaves estrangeiras;
  • 17. Principais componentes do Apache Cassandra • Commit log - Mecanismo de recuperação. Operação de escrita é registrada no registro de commit. É sequencial; • Mem-table - É uma estrutura de dados residente em memória. Após commit log, os dados serão nela;
  • 18. Principais componentes do Apache Cassandra • SSTable - Arquivo em disco para o qual os dados são liberados a partir da mem- table ou quando o seu conteúdo chegar a um valor limite; • Filtro de Bloom - É um tipo especial de cache. Filtros Bloom são acessados depois de cada consulta;
  • 19. Entendendo Escrita no Apache Cassandra • Escreve primeiro em um registro “log”; • Depois escreve em uma estrutura de tabela na memória denominada por mem-table.
  • 20. Entendendo Escrita no Apache Cassandra • Parâmetro: memtable_flush_queu e_size; • Escritas são agrupadas na memória e periodicamente gravadas em disco;
  • 21. Entendendo Escrita no Apache Cassandra • A escrita é bem-sucedida uma vez que é escrita no log e na memória(Mem-table), gerando o mínimo de I/O no disco no momento de gravação; • Se ocorrer uma queda ou falha do servidor antes da mem-table ser flushed, o commit log é repetido ao reiniciar para recuperar escritas perdidas;
  • 22. Entendendo Escrita no Apache Cassandra
  • 23. Entendendo Leitura no Apache Cassandra
  • 24. Entendendo Leitura no Apache Cassandra • O Key cache salva uma busca durante a operação de leitura. Se uma chave não for encontrada no key cache, o Summary Index será pesquisado. • O Summary Index é uma estrutura em memória que armazena uma amostragem do índice e mapeia o local de localização de cada chave no arquivo ou bloco que tem os dados no SSTable.
  • 25. Entendendo Leitura no Apache Cassandra • SSTable tem um filtro Bloom (estrutura em memória) associado a ele que verifica se uma chave de linha solicitada existe no SSTable antes de fazer qualquer busca no disco; • Em seguida, o Cassandra checa o key cache global(localização das chaves na memória). Se os dados solicitados não estão no key cache, é feita uma busca binária no index summary para encontrar uma linha.
  • 26. Entendendo Leitura no Apache Cassandra • Finalmente, o Cassandra realiza um simples seek e uma leitura sequencial de colunas no SSTable, e retorna o conjunto de resultados.
  • 27. Backup • Snapshot de todos os arquivos de dados no disco (arquivos SSTable);
  • 28. Escalabilidade • O Cassandra trabalha na forma horizontal ou linear que é a capacidade de adicionar novas máquinas no cluster para, de forma distribuída, aumentar os recursos de processamento, memória e disco.
  • 29. Cluster • Sistema distribuído peer-to-peer através de seus nós, e os dados são distribuídos entre todos os nós em um cluster, são todos iguais. − Todos os nós em um cluster desempenham o mesmo papel. Cada nó é independente e, ao mesmo tempo interligados;
  • 30. Cluster − Cada nó em um cluster pode aceitar leitura e escrita pedidos, independentemente de onde os dados são realmente localizado no cluster;
  • 31. Cluster - Configuração • /etc/cassandra/cassandra.yaml.
  • 32. Replication Factor • O Cassandra armazena réplicas em vários nós para garantir confiabilidade e tolerância a falhas. • Um fator de replicação de 2 significa duas cópias de cada linha, onde cada cópia está em um nó diferente. • O fator de replicação não deve exceder o número de nós no cluster.
  • 33. Replication Factor • create keyspace TestKeyspace WITH REPLICATION = { 'class' : 'SimpleStrategy', 'replication_factor' : '2' };
  • 34. Consistência de dados • Níveis de consistência na Cassandra podem ser configurados para leitura/gravação para gerenciar a disponibilidade versus a precisão dos dados.
  • 35. Consistência de dados - Escrita • O nível de consistência determina o número de réplicas nas quais a gravação deve ser bem-sucedida antes de retornar uma confirmação cliente.
  • 36. Consistência de dados - Escrita • ONE: Uma gravação deve acontecer em pelo menos um nó de réplica, antes da confirmação para o usuário.(Commit-Log e Mem-table) • TWO: Uma gravação deve acontecer em pelo menos dois nós de réplica, antes da confirmação para o usuário.
  • 37. Consistência de dados - Leitura • O nível de consistência também especifica quantas réplicas devem responder a uma solicitação de leitura antes de retornar dados para o aplicativo cliente.
  • 38. Consistência de dados - Leitura • TWO: Retorna os dados mais recentes de duas das réplicas mais próximas. O Cassandra escolhe pelo timestamp o dado mais recente entre as réplicas que responderam;
  • 40. Consistência de dados - CQL • CONSISTENCY TWO; • INSERT INTO Alunos(nome,matrícula) VALUES ('FFFF', 65535) ;
  • 41. Consistência de dados - CQL • CONSISTENCY THREE; • SELECT * FROM Alunos where matricula = 999 ;