SlideShare uma empresa Scribd logo
1 de 27
Dores e triunfos
Existem 4 categorias de Bancos NoSQL
• ChaveValor
o A categoria mais simples de bancos, armazena os dados no formato chave valor
ou chave e hash.
o Ex.: Riak, Redis
• Documento
o Armazena dados em forma de documentos, na maioria das vezes JSON.
o Ex.:CouchDB, MongoDB
• Grafo
o Dados armazenados no formato de grafo, permitindo alto nível de
relacionamento .
o Ex.: Neo4J
• Família de Colunas
o Dados armazenados no formato de linhas e colunas múltiplias, como uma
planilha de texto.
o Ex.:Cassandra
OApache cassandra é um banco de dados altamente escalável, sem ponto único de
falha, elástico, eventualmente consistente.
É o AP do CAP
Não é ACID ( Atomicidade, Consistência, Isolamento, Durabilidade)
Mas é BASE (BasicallyAvailable, Soft state, Eventual consistency)
• BasicallyAvailable – Se um nó falhar, uma parte da informação pode não ficar
disponível
• Soft state – Informação será deletada caso não seja necessária.
• Eventual consistency – Informação atualizada pode não estar replicada em todos
os nós do cluster
OApache Cassandra tem formas de minimizar seus “problemas”
• Consistência customizada:
o ONE
o QUORUM (Métade da replicação necessária + 1)
o ALL
Porém quanto maior a consistência, maior a latência.
• Replicação
o Uma informação é replicada em N nós diferentes para no caso de uma
possível falha em um nó, aquela informação não fique indisponível.
• Controle de consistência de escrita
o Se o fator de replicação for maior que o número de nós ativos, a leitura se
mantém mas todas as escrita serão rejeitadas.
Comunicação Interna
Gossip
Comunicação Externa
Thrift
Configurações específicas
Para cada Protocolo
Leitura
Read Repair
• São como os schemas de RDBMS
• Podem contar várias column families
• Contém a configuração de replicação
• Contém a estratégia de replicação
• Conjunto de linhas com colunas e valores
• CompositeColumns
Crash JVM
• Lentidão
• Marcação de ocupado
•Bola de neve com Hinted Handoff
•Causado pelos outros problemas
HEAP
• Nó morria frequentemente
• Bola de neve com Hinted Handoff
•Migração das máquinas para Xlarge
• Reconfiguração do pool
OutOfMemoryException só que não!
• Nó morria
•OutOfMemory mesmo não usando toda a memória
• Aumento do número de processos
HSHA E SYNC
• Documentação recomenda usar hsha para economizar
memória e possibilitar mais conexões
• Sync gasta muita memória com conexões, hsha causa falha nas conexões
• Utilizar sync mesmo a documentação dizendo o contrário
• Reconfiguração do pool
Excesso de conexões abertas
• Utilização de sync
• Nós morriam sempre que ligavamos a contabilização de impressões
• Reconfiguração do pool
Hot Spot
• Apenas 3 servidores eram utilizados por hora
• Nós morriam sempre que ligavamos a contabilização de impressões
• Reconfiguração da chave
Hot Spot
Hot Spot
Thrift Lock
• Mais novo erro do Cassandra !!!!!!
• Comunicação entre máquinas e clientes travada
•Cassandra isolado
• Restart do thrift
• Causa raíz desconhecida!!
Nodetool
ring
move <new token>
join
drain
decommission
flush [keyspace] [cfnames]
repair [keyspace] [cfnames]
refresh <keyspace> <cf-name>
cleanup [keyspace] [cfnames]
compact [keyspace] [cfnames]
getendpoints <keyspace> <cf> <key>
Address DC Rack Status State Load Effective-Ownership Token
141784319550391026443072753096570088106
10.100.16.61 sa-east 1a Up Normal 2.19 GB 0,00%0
10.100.17.61 sa-east 1b Up Normal 2.15 GB 0,00%28356863910078205288614550619314017621
10.100.16.62 sa-east 1a Up Normal 2.16 GB 0,00%56713727820156410577229101238628035242
10.100.17.62 sa-east 1b Up Normal 2.15 GB 0,00%85070591730234615865843651857942052864
10.100.16.63 sa-east 1a Up Normal 2.17 GB 0,00%113427455640312821154458202477256070485
10.100.17.63 sa-east 1b Up Normal 2.18 GB 0,00%141784319550391026443072753096570088106
disablegossip
enablegossip
gossipinfo
disablethrift
enablethrift
statusthrift
Opscenter
Agora tenho dois conteúdos extras a mostrar
Ad server cassandra
Ad server cassandra

Mais conteúdo relacionado

Mais procurados

Sqlite - Introdução
Sqlite - IntroduçãoSqlite - Introdução
Sqlite - IntroduçãoJoao Johanes
 
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
 
Estudo comparativo entr bancos RDBMS, NoSQL e NewSQL
Estudo comparativo entr bancos RDBMS, NoSQL e NewSQLEstudo comparativo entr bancos RDBMS, NoSQL e NewSQL
Estudo comparativo entr bancos RDBMS, NoSQL e NewSQLOrlando Vitali
 
Personal home pages
Personal home pagesPersonal home pages
Personal home pageswlsilva
 
PostgreSQL Tuning: O elefante mais rápido que um leopardo
PostgreSQL Tuning: O elefante mais rápido que um leopardoPostgreSQL Tuning: O elefante mais rápido que um leopardo
PostgreSQL Tuning: O elefante mais rápido que um leopardoFabio Telles Rodriguez
 
PHP Conference 2015: Construindo e mantendo aplicações multi-tenant (multi-c...
PHP Conference 2015:  Construindo e mantendo aplicações multi-tenant (multi-c...PHP Conference 2015:  Construindo e mantendo aplicações multi-tenant (multi-c...
PHP Conference 2015: Construindo e mantendo aplicações multi-tenant (multi-c...Aryel Tupinambá
 
PHPMyadmin - Introdução
PHPMyadmin - IntroduçãoPHPMyadmin - Introdução
PHPMyadmin - IntroduçãoMarco Pinheiro
 
Laraconf 2016: Construindo e mantendo aplicações multi-tenant (multi-cliente)
Laraconf 2016: Construindo e mantendo aplicações multi-tenant (multi-cliente)Laraconf 2016: Construindo e mantendo aplicações multi-tenant (multi-cliente)
Laraconf 2016: Construindo e mantendo aplicações multi-tenant (multi-cliente)Aryel Tupinambá
 
Desenvolvemos para web?
Desenvolvemos para web?Desenvolvemos para web?
Desenvolvemos para web?Luis Vendrame
 
Tirando o coelho da cartola: integrando sistemas com RabbitMQ
Tirando o coelho da cartola: integrando sistemas com RabbitMQTirando o coelho da cartola: integrando sistemas com RabbitMQ
Tirando o coelho da cartola: integrando sistemas com RabbitMQNelson Senna do Amaral
 
[Webinar] Performance e otimização de banco de dados MySQL
[Webinar] Performance e otimização de banco de dados MySQL[Webinar] Performance e otimização de banco de dados MySQL
[Webinar] Performance e otimização de banco de dados MySQLKingHost - Hospedagem de sites
 
Pgday Campinas 2015 - Uma visão do PPAS 9.4 e PEM 5.0
Pgday Campinas 2015 - Uma visão do PPAS 9.4 e PEM 5.0Pgday Campinas 2015 - Uma visão do PPAS 9.4 e PEM 5.0
Pgday Campinas 2015 - Uma visão do PPAS 9.4 e PEM 5.0Marcos William Valentini
 
Minicurso Ruby e Rails (RailsMG UNA)
Minicurso Ruby e Rails (RailsMG UNA)Minicurso Ruby e Rails (RailsMG UNA)
Minicurso Ruby e Rails (RailsMG UNA)Daniel Lopes
 
Introdução FireDAC Acesso multi-banco para Delphi e C++ Builder
Introdução FireDACAcesso multi-banco para Delphi e C++ BuilderIntrodução FireDACAcesso multi-banco para Delphi e C++ Builder
Introdução FireDAC Acesso multi-banco para Delphi e C++ BuilderDiego Rosa
 
Escalabilidade e alta disponibilidade no php com nginx
Escalabilidade e alta disponibilidade no php com nginxEscalabilidade e alta disponibilidade no php com nginx
Escalabilidade e alta disponibilidade no php com nginxSaveincloud
 

Mais procurados (20)

Sqlite - Introdução
Sqlite - IntroduçãoSqlite - Introdução
Sqlite - Introdução
 
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
 
Estudo comparativo entr bancos RDBMS, NoSQL e NewSQL
Estudo comparativo entr bancos RDBMS, NoSQL e NewSQLEstudo comparativo entr bancos RDBMS, NoSQL e NewSQL
Estudo comparativo entr bancos RDBMS, NoSQL e NewSQL
 
Hbase trabalho final
Hbase trabalho finalHbase trabalho final
Hbase trabalho final
 
Personal home pages
Personal home pagesPersonal home pages
Personal home pages
 
PostgreSQL Tuning: O elefante mais rápido que um leopardo
PostgreSQL Tuning: O elefante mais rápido que um leopardoPostgreSQL Tuning: O elefante mais rápido que um leopardo
PostgreSQL Tuning: O elefante mais rápido que um leopardo
 
CloudFlare
CloudFlareCloudFlare
CloudFlare
 
Performance em Java
Performance em JavaPerformance em Java
Performance em Java
 
PHP Conference 2015: Construindo e mantendo aplicações multi-tenant (multi-c...
PHP Conference 2015:  Construindo e mantendo aplicações multi-tenant (multi-c...PHP Conference 2015:  Construindo e mantendo aplicações multi-tenant (multi-c...
PHP Conference 2015: Construindo e mantendo aplicações multi-tenant (multi-c...
 
PHPMyadmin - Introdução
PHPMyadmin - IntroduçãoPHPMyadmin - Introdução
PHPMyadmin - Introdução
 
Laraconf 2016: Construindo e mantendo aplicações multi-tenant (multi-cliente)
Laraconf 2016: Construindo e mantendo aplicações multi-tenant (multi-cliente)Laraconf 2016: Construindo e mantendo aplicações multi-tenant (multi-cliente)
Laraconf 2016: Construindo e mantendo aplicações multi-tenant (multi-cliente)
 
Desenvolvemos para web?
Desenvolvemos para web?Desenvolvemos para web?
Desenvolvemos para web?
 
Tirando o coelho da cartola: integrando sistemas com RabbitMQ
Tirando o coelho da cartola: integrando sistemas com RabbitMQTirando o coelho da cartola: integrando sistemas com RabbitMQ
Tirando o coelho da cartola: integrando sistemas com RabbitMQ
 
2012 - Veris - DBA Career and Oracle Database
2012 - Veris - DBA Career and Oracle Database2012 - Veris - DBA Career and Oracle Database
2012 - Veris - DBA Career and Oracle Database
 
[Webinar] Performance e otimização de banco de dados MySQL
[Webinar] Performance e otimização de banco de dados MySQL[Webinar] Performance e otimização de banco de dados MySQL
[Webinar] Performance e otimização de banco de dados MySQL
 
Pgday Campinas 2015 - Uma visão do PPAS 9.4 e PEM 5.0
Pgday Campinas 2015 - Uma visão do PPAS 9.4 e PEM 5.0Pgday Campinas 2015 - Uma visão do PPAS 9.4 e PEM 5.0
Pgday Campinas 2015 - Uma visão do PPAS 9.4 e PEM 5.0
 
Arquivos No Banco
Arquivos No BancoArquivos No Banco
Arquivos No Banco
 
Minicurso Ruby e Rails (RailsMG UNA)
Minicurso Ruby e Rails (RailsMG UNA)Minicurso Ruby e Rails (RailsMG UNA)
Minicurso Ruby e Rails (RailsMG UNA)
 
Introdução FireDAC Acesso multi-banco para Delphi e C++ Builder
Introdução FireDACAcesso multi-banco para Delphi e C++ BuilderIntrodução FireDACAcesso multi-banco para Delphi e C++ Builder
Introdução FireDAC Acesso multi-banco para Delphi e C++ Builder
 
Escalabilidade e alta disponibilidade no php com nginx
Escalabilidade e alta disponibilidade no php com nginxEscalabilidade e alta disponibilidade no php com nginx
Escalabilidade e alta disponibilidade no php com nginx
 

Destaque

Destaque (6)

Teste unitário
Teste unitárioTeste unitário
Teste unitário
 
Apache camel
Apache camelApache camel
Apache camel
 
Cassandra cql
Cassandra cqlCassandra cql
Cassandra cql
 
Tech Talk Buscapé - Redis
Tech Talk Buscapé - RedisTech Talk Buscapé - Redis
Tech Talk Buscapé - Redis
 
Tech Talk Buscapé - Clean Code
Tech Talk Buscapé - Clean CodeTech Talk Buscapé - Clean Code
Tech Talk Buscapé - Clean Code
 
Scalable CSS Architecture
Scalable CSS ArchitectureScalable CSS Architecture
Scalable CSS Architecture
 

Semelhante a Ad server cassandra

DBA Brasil 2.0 NOSql Apache Cassandra para DBAs
DBA Brasil 2.0   NOSql Apache Cassandra para DBAsDBA Brasil 2.0   NOSql Apache Cassandra para DBAs
DBA Brasil 2.0 NOSql Apache Cassandra para DBAsRonaldo Leite Martins
 
Projeto Octopus - Database Sharding para ActiveRecord
Projeto Octopus - Database Sharding para ActiveRecordProjeto Octopus - Database Sharding para ActiveRecord
Projeto Octopus - Database Sharding para ActiveRecordtchandy
 
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
 
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
 
Arquitetura de Computadores: Memórias Ram
Arquitetura de Computadores: Memórias RamArquitetura de Computadores: Memórias Ram
Arquitetura de Computadores: Memórias RamElaine Cecília Gatto
 
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
 
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
 
Otimizacao de websites em PHP
Otimizacao de websites em PHPOtimizacao de websites em PHP
Otimizacao de websites em PHPFelipe Ribeiro
 
Alto desempenho com banco de dados MySQL
Alto desempenho com banco de dados MySQLAlto desempenho com banco de dados MySQL
Alto desempenho com banco de dados MySQLJonas Silveira
 
MongoDB Aggregation Framework
MongoDB Aggregation FrameworkMongoDB Aggregation Framework
MongoDB Aggregation FrameworkLeandro Domingues
 
Introdução ao MongoDB (NoSQL)
Introdução ao MongoDB (NoSQL)Introdução ao MongoDB (NoSQL)
Introdução ao MongoDB (NoSQL)Thiago de Azeredo
 
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
 

Semelhante a Ad server cassandra (20)

DBA Brasil 2.0 NOSql Apache Cassandra para DBAs
DBA Brasil 2.0   NOSql Apache Cassandra para DBAsDBA Brasil 2.0   NOSql Apache Cassandra para DBAs
DBA Brasil 2.0 NOSql Apache Cassandra para DBAs
 
Projeto Octopus - Database Sharding para ActiveRecord
Projeto Octopus - Database Sharding para ActiveRecordProjeto Octopus - Database Sharding para ActiveRecord
Projeto Octopus - Database Sharding para ActiveRecord
 
No sql std
No sql stdNo sql std
No sql std
 
Web Scale Data Management
Web Scale Data ManagementWeb Scale Data Management
Web Scale Data Management
 
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
 
Introducao ao Amazon Redshift
Introducao ao Amazon RedshiftIntroducao ao Amazon Redshift
Introducao ao Amazon Redshift
 
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
 
Memórias Ram
Memórias RamMemórias Ram
Memórias Ram
 
Arquitetura de Computadores: Memórias Ram
Arquitetura de Computadores: Memórias RamArquitetura de Computadores: Memórias Ram
Arquitetura de Computadores: Memórias Ram
 
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
 
Nosql
NosqlNosql
Nosql
 
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
 
Otimizacao de websites em PHP
Otimizacao de websites em PHPOtimizacao de websites em PHP
Otimizacao de websites em PHP
 
Alto desempenho com banco de dados MySQL
Alto desempenho com banco de dados MySQLAlto desempenho com banco de dados MySQL
Alto desempenho com banco de dados MySQL
 
MongoDB Aggregation Framework
MongoDB Aggregation FrameworkMongoDB Aggregation Framework
MongoDB Aggregation Framework
 
Introdução ao MongoDB (NoSQL)
Introdução ao MongoDB (NoSQL)Introdução ao MongoDB (NoSQL)
Introdução ao MongoDB (NoSQL)
 
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?
 
NoSQL & SQL
NoSQL & SQLNoSQL & SQL
NoSQL & SQL
 
Mongo db
Mongo dbMongo db
Mongo db
 
Tendências de Big Data
Tendências de Big DataTendências de Big Data
Tendências de Big Data
 

Ad server cassandra

  • 2. Existem 4 categorias de Bancos NoSQL • ChaveValor o A categoria mais simples de bancos, armazena os dados no formato chave valor ou chave e hash. o Ex.: Riak, Redis • Documento o Armazena dados em forma de documentos, na maioria das vezes JSON. o Ex.:CouchDB, MongoDB • Grafo o Dados armazenados no formato de grafo, permitindo alto nível de relacionamento . o Ex.: Neo4J • Família de Colunas o Dados armazenados no formato de linhas e colunas múltiplias, como uma planilha de texto. o Ex.:Cassandra
  • 3. OApache cassandra é um banco de dados altamente escalável, sem ponto único de falha, elástico, eventualmente consistente. É o AP do CAP Não é ACID ( Atomicidade, Consistência, Isolamento, Durabilidade) Mas é BASE (BasicallyAvailable, Soft state, Eventual consistency) • BasicallyAvailable – Se um nó falhar, uma parte da informação pode não ficar disponível • Soft state – Informação será deletada caso não seja necessária. • Eventual consistency – Informação atualizada pode não estar replicada em todos os nós do cluster
  • 4.
  • 5. OApache Cassandra tem formas de minimizar seus “problemas” • Consistência customizada: o ONE o QUORUM (Métade da replicação necessária + 1) o ALL Porém quanto maior a consistência, maior a latência. • Replicação o Uma informação é replicada em N nós diferentes para no caso de uma possível falha em um nó, aquela informação não fique indisponível. • Controle de consistência de escrita o Se o fator de replicação for maior que o número de nós ativos, a leitura se mantém mas todas as escrita serão rejeitadas.
  • 8. • São como os schemas de RDBMS • Podem contar várias column families • Contém a configuração de replicação • Contém a estratégia de replicação
  • 9. • Conjunto de linhas com colunas e valores
  • 10.
  • 12.
  • 13.
  • 14. Crash JVM • Lentidão • Marcação de ocupado •Bola de neve com Hinted Handoff •Causado pelos outros problemas
  • 15. HEAP • Nó morria frequentemente • Bola de neve com Hinted Handoff •Migração das máquinas para Xlarge • Reconfiguração do pool
  • 16. OutOfMemoryException só que não! • Nó morria •OutOfMemory mesmo não usando toda a memória • Aumento do número de processos
  • 17. HSHA E SYNC • Documentação recomenda usar hsha para economizar memória e possibilitar mais conexões • Sync gasta muita memória com conexões, hsha causa falha nas conexões • Utilizar sync mesmo a documentação dizendo o contrário • Reconfiguração do pool
  • 18. Excesso de conexões abertas • Utilização de sync • Nós morriam sempre que ligavamos a contabilização de impressões • Reconfiguração do pool
  • 19. Hot Spot • Apenas 3 servidores eram utilizados por hora • Nós morriam sempre que ligavamos a contabilização de impressões • Reconfiguração da chave
  • 22. Thrift Lock • Mais novo erro do Cassandra !!!!!! • Comunicação entre máquinas e clientes travada •Cassandra isolado • Restart do thrift • Causa raíz desconhecida!!
  • 23. Nodetool ring move <new token> join drain decommission flush [keyspace] [cfnames] repair [keyspace] [cfnames] refresh <keyspace> <cf-name> cleanup [keyspace] [cfnames] compact [keyspace] [cfnames] getendpoints <keyspace> <cf> <key> Address DC Rack Status State Load Effective-Ownership Token 141784319550391026443072753096570088106 10.100.16.61 sa-east 1a Up Normal 2.19 GB 0,00%0 10.100.17.61 sa-east 1b Up Normal 2.15 GB 0,00%28356863910078205288614550619314017621 10.100.16.62 sa-east 1a Up Normal 2.16 GB 0,00%56713727820156410577229101238628035242 10.100.17.62 sa-east 1b Up Normal 2.15 GB 0,00%85070591730234615865843651857942052864 10.100.16.63 sa-east 1a Up Normal 2.17 GB 0,00%113427455640312821154458202477256070485 10.100.17.63 sa-east 1b Up Normal 2.18 GB 0,00%141784319550391026443072753096570088106 disablegossip enablegossip gossipinfo disablethrift enablethrift statusthrift
  • 25. Agora tenho dois conteúdos extras a mostrar