Cassandra db

2,061 views

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
2,061
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
44
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Cassandra db

  1. 1. A Descentralized Structured Storage System Henrique Dias e João Lutz
  2. 2. Problemas Facebook Inbox Search Grande quantidade de dados Requisitos de performance e crescimento contínuo Altamente distribuído - alta taxa de falha Não existe solução pronta no mercado para atender esses requisitos.Introdução >>>> Topologia >>> Bootstrap >> Modelo >>>> Read/Write >>>> Avaliação >>>>> Obrigado!
  3. 3. Objetivos Alta disponibilidade Consistência eventual trade-off - alta consistência ou alta disponibilidade Replicação otimista Escalabilidade incremental Administração ao mínimoIntrodução >>>> Topologia >>> Bootstrap >> Modelo >>>> Read/Write >>>> Avaliação >>>>> Obrigado!
  4. 4. Trabalhos Relacionados Ficus Consistência Eventual Coda Farsite – No Master GFS – Single Master Bayou – Relacional, Distribuído, Eventual Dynamo (Amazon) Bigtable (Google) Sistema de ArmazenamentoIntrodução >>>> Topologia >>> Bootstrap >> Modelo >>>> Read/Write >>>> Avaliação >>>>> Obrigado!
  5. 5. Arquitetura Cassandra Cassandra API Ferramentas Camada de armazenamento Particionador Replicador Detector de falha Cluster Membership Camada de mensagensIntrodução >>>> Topologia >>> Bootstrap >> Modelo >>>> Read/Write >>>> Avaliação >>>>> Obrigado!
  6. 6. Sistemas Utilizados BigTable ZooKeeper Sistema de Coordenação de Armazenamento tarefas (Google) Seda Ganglia Arquitetura do Monitoramento sistemaIntrodução >>>> Topologia >>> Bootstrap >> Modelo >>>> Read/Write >>>> Avaliação >>>>> Obrigado!
  7. 7. Topologia em Anel RF=3 a Anel Conceitual Um token por nodo Múltiplos j d intervalos por nodo gIntrodução >>>> Topologia >>> Bootstrap >> Modelo >>>> Read/Write >>>> Avaliação >>>>> Obrigado!
  8. 8. Topologia em Anel RF=2 a Anel Conceitual Um token por nodo Múltiplos j d intervalos por nodo gIntrodução >>>> Topologia >>> Bootstrap >> Modelo >>>> Read/Write >>>> Avaliação >>>>> Obrigado!
  9. 9. Topologia em Anel RF=3 Atribuição de a Token m Ajuste de Intervalo Bootstrap j d Inclusão de um nodo afeta apenas vizinhos imediatos gIntrodução >>>> Topologia >>> Bootstrap >> Modelo >>>> Read/Write >>>> Avaliação >>>>> Obrigado!
  10. 10. Topologia em Anel RF=3 Nodo é removido a Disponível? Hinting Handoff Anota num nodo j d existente. gIntrodução >>>> Topologia >>> Bootstrap >> Modelo >>>> Read/Write >>>> Avaliação >>>>> Obrigado!
  11. 11. Bootstrap adicionando novos nodosIntrodução >>>> Topologia >>> Bootstrap >> Modelo >>>> Read/Write >>>> Avaliação >>>>> Obrigado!
  12. 12. Bootstrap X localiza nodo sobrecarregadoIntrodução >>>> Topologia >>> Bootstrap >> Modelo >>>> Read/Write >>>> Avaliação >>>>> Obrigado!
  13. 13. Bootstrap posiciona nodo e redistribui intervaloIntrodução >>>> Topologia >>> Bootstrap >> Modelo >>>> Read/Write >>>> Avaliação >>>>> Obrigado!
  14. 14. Modelo de Dados Keyspace ColumnFamily Row(indexed) Chave Colunas Nome(ordenado) ValorIntrodução >>>> Topologia >>> Bootstrap >> Modelo >>>> Read/Write >>>> Avaliação >>>>> Obrigado!
  15. 15. Modelo de Dados Uma única colunaIntrodução >>>> Topologia >>> Bootstrap >> Modelo >>>> Read/Write >>>> Avaliação >>>>> Obrigado!
  16. 16. Modelo de Dados Registro únicoIntrodução >>>> Topologia >>> Bootstrap >> Modelo >>>> Read/Write >>>> Avaliação >>>>> Obrigado!
  17. 17. Modelo de DadosIntrodução >>>> Topologia >>> Bootstrap >> Modelo >>>> Read/Write >>>> Avaliação >>>>> Obrigado!
  18. 18. Modelo de Dados Representação em JSON da estrutura key -> column families -> column "mccv":{ "Users":{ "emailAddress":{"name":"emailAddress", "value":"foo@bar.com"}, "webSite":{"name":"webSite", "value":"http://bar.com"} }, "Stats":{ "visits":{"name":"visits", "value":"243"} } }, "user2":{ "Users":{ "emailAddress":{"name":"emailAddress", "value":"user2@bar.com"}, "twitter":{"name":"twitter", "value":"user2"} } }Introdução >>>> Topologia >>> Bootstrap >> Modelo >>>> Read/Write >>>> Avaliação >>>>> Obrigado!
  19. 19. Read/Write request identifica os nodos que tem os dados da chave redireciona a requisição para o nodo e aguarda resposta se as respostas não chegaram de acordo com o timeout configurado, concela a requisição e retorna ao cliente verifica a última resposta, baseado no timestamp agenda o reparo dos dados na replica se não tiverem o último pedaço do dadoIntrodução >>>> Topologia >>> Bootstrap >> Modelo >>>> Read/Write >>>> Avaliação >>>>> Obrigado!
  20. 20. Escrita Commit log para durabilidade Fsync configurável Apenas escrita sequencial Memtable – sem acesso ao disco (sem leituras ou seeks) Sstables são o final (torna-se read only) Índices Bloom filter (probabilístico) Dados cru Base dos dados: Rápida!!!Introdução >>>> Topologia >>> Bootstrap >> Modelo >>>> Read/Write >>>> Avaliação >>>>> Obrigado!
  21. 21. Escrita Key (CF1 , CF2 , CF3) Data size Number of Objects Memtable ( CF1) Lifetime Commit Log Memtable ( CF2) Binary serialized Key ( CF1 , CF2 , CF3 ) Memtable ( CF2) Arquivos de dados em disco K128 Offset <Key name><Size of key Data><Index of columns/supercolumns>< Serialized column family> --- K256 Offset BLOCK Index <Key Name> Offset, <Key Name> Offset --- Disco K384 Offset --- Dedicado <Key name><Size of key Data><Index of columns/supercolumns>< Bloom Filter Serialized column family> (Índice em memória)Introdução >>>> Topologia >>> Bootstrap >> Modelo >>>> Read/Write >>>> Avaliação >>>>> Obrigado!
  22. 22. Leitura Praticamente livre de lock Proliferação de Sstable Cache de Registro (evita sstable lookup,sem write- through) Cache de chave (evita index scan)Introdução >>>> Topologia >>> Bootstrap >> Modelo >>>> Read/Write >>>> Avaliação >>>>> Obrigado!
  23. 23. Leitura Cliente Consulta Resultado Cassandra Cluster Replica próxima Resultado Replica A Compila Consulta Compila Respota Compila Respota Replica B Replica CIntrodução >>>> Topologia >>> Bootstrap >> Modelo >>>> Read/Write >>>> Avaliação >>>>> Obrigado!
  24. 24. Avaliação do Artigo Título "Cassandra - A Descentralized Structured Storage System" Abstract Sem contextualização, resultados ou conclusão Introdução Contextualiza/motiva o problema Descreve o Cassandra Objetivo implícito OrganizaçãoIntrodução >>>> Topologia >>> Bootstrap >> Modelo >>>> Read/Write >>>> Avaliação >>>>> Obrigado!
  25. 25. Avaliação do Artigo Trabalhos Relacionados Retoma o problema Apresenta outros trabalhos Conteúdo Artigo da indústria Parece "comprimido" Falta de clareza nas explicaçõesIntrodução >>>> Topologia >>> Bootstrap >> Modelo >>>> Read/Write >>>> Avaliação >>>>> Obrigado!
  26. 26. Avaliação do Artigo Experiências práticas Problemas encontrados Poucos dados de performance Não há comparação Conclusão MUITO sucinta - 3 frases Lista de TODOsIntrodução >>>> Topologia >>> Bootstrap >> Modelo >>>> Read/Write >>>> Avaliação >>>>> Obrigado!
  27. 27. Avaliação dos Autores Avinash Lakshman h-index: 8 Software Engineer - Facebook (2007 - agora) Software Designer Engineer - Amazon (2004 - 2007) Outras publicações: Cassandra: structured storage system on a P2P network. PODC 2009 e SPAA 2009 Dynamo: amazons highly available key-value store. SOSP 2007 Citation Count (ACM): 94Introdução >>>> Topologia >>> Bootstrap >> Modelo >>>> Read/Write >>>> Avaliação >>>>> Obrigado!
  28. 28. Avaliação dos Autores Prashant Malik h-index: 3 Research Scientist - Facebook (2007 - agora) Software Designer Engineer - Microsoft (1999 - 2007) Technical Lead - Siemens (1995 - 1999) Outras publicações: Cassandra: structured storage system on a P2P network. PODC 2009 e SPAA 2009 Citation Count (ACM): 2Introdução >>>> Topologia >>> Bootstrap >> Modelo >>>> Read/Write >>>> Avaliação >>>>> Obrigado!
  29. 29. Avaliação do Evento Artigo citado por 18 (Google) Apresentado em no LADIS 2009 (Large-Scale Distributed Systems and Middleware) Publicado em ACM SIGOPS Operating Systems Review (Volume 44 Issue 2, April 2010) Qualis B1 - CIÊNCIA DA COMPUTAÇÃO B2 - ENGENHARIAS III B4 - ENGENHARIAS IV Ano base 2008 Fonte: http://www.capes.gov.br/avaliacao/qualis h-index: 22 (2010), 87 (SIGOPS) h-index: 11 (2009),42Introdução >>>> Topologia >>> Bootstrap >> Modelo >>>> Read/Write >>>> Avaliação >>>>> Obrigado!
  30. 30. Referênciashttp://www.slideshare.net/gdusbabek/introduction-to-cassandra-june-2010http://www.slideshare.net/jhammerb/data-presentations-cassandra-sigmodhttp://www.slideshare.net/jericevans/the-cassandra-distributed-databasehttp://wiki.apache.org/cassandrahttp://www.cs.cornell.edu/projects/ladis2009/papers/lakshman-ladis2009.pdf
  31. 31. Dúvidas?Muito Obrigado!hdpsantos@inf.ufrgs.br jaflutz@inf.ufrgs.br

×