cassandra db
DESCRIPTION
TRANSCRIPT
![Page 1: Cassandra db](https://reader031.vdocuments.net/reader031/viewer/2022013105/54835b055906b58f158b4680/html5/thumbnails/1.jpg)
Henrique Dias e João Lutz
A Descentralized Structured Storage System
![Page 2: Cassandra db](https://reader031.vdocuments.net/reader031/viewer/2022013105/54835b055906b58f158b4680/html5/thumbnails/2.jpg)
Problemas
Facebook Inbox SearchGrande 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!
![Page 3: Cassandra db](https://reader031.vdocuments.net/reader031/viewer/2022013105/54835b055906b58f158b4680/html5/thumbnails/3.jpg)
Objetivos
Alta disponibilidadeConsistência eventual
trade-off - alta consistência ou alta disponibilidade
Replicação otimistaEscalabilidade incrementalAdministração ao mínimo
Introdução >>>> Topologia >>> Bootstrap >> Modelo >>>> Read/Write >>>> Avaliação >>>>> Obrigado!
![Page 4: Cassandra db](https://reader031.vdocuments.net/reader031/viewer/2022013105/54835b055906b58f158b4680/html5/thumbnails/4.jpg)
Trabalhos Relacionados
FicusCodaFarsite – No MasterGFS – Single MasterBayou – Relacional, Distribuído, Eventual
Dynamo (Amazon)
Bigtable (Google)
Consistência Eventual
Sistema de Armazenamento
Introdução >>>> Topologia >>> Bootstrap >> Modelo >>>> Read/Write >>>> Avaliação >>>>> Obrigado!
![Page 5: Cassandra db](https://reader031.vdocuments.net/reader031/viewer/2022013105/54835b055906b58f158b4680/html5/thumbnails/5.jpg)
Arquitetura Cassandra
Camada de mensagens
Cluster MembershipDetector de falha
Camada de armazenamento
Particionador Replicador
Cassandra API Ferramentas
Introdução >>>> Topologia >>> Bootstrap >> Modelo >>>> Read/Write >>>> Avaliação >>>>> Obrigado!
![Page 6: Cassandra db](https://reader031.vdocuments.net/reader031/viewer/2022013105/54835b055906b58f158b4680/html5/thumbnails/6.jpg)
Sistemas Utilizados
ZooKeeperBigTable
Seda Ganglia
Arquitetura do sistema
Sistema de Armazenamento
(Google)
Coordenação de tarefas
Monitoramento
Introdução >>>> Topologia >>> Bootstrap >> Modelo >>>> Read/Write >>>> Avaliação >>>>> Obrigado!
![Page 7: Cassandra db](https://reader031.vdocuments.net/reader031/viewer/2022013105/54835b055906b58f158b4680/html5/thumbnails/7.jpg)
Topologia em Anel
a
j
g
d
RF=3
Anel Conceitual
Um token por nodo
Múltiplos intervalos por nodo
Introdução >>>> Topologia >>> Bootstrap >> Modelo >>>> Read/Write >>>> Avaliação >>>>> Obrigado!
![Page 8: Cassandra db](https://reader031.vdocuments.net/reader031/viewer/2022013105/54835b055906b58f158b4680/html5/thumbnails/8.jpg)
Topologia em Anel
a
j
g
d
RF=2
Anel Conceitual
Um token por nodo
Múltiplos intervalos por nodo
Introdução >>>> Topologia >>> Bootstrap >> Modelo >>>> Read/Write >>>> Avaliação >>>>> Obrigado!
![Page 9: Cassandra db](https://reader031.vdocuments.net/reader031/viewer/2022013105/54835b055906b58f158b4680/html5/thumbnails/9.jpg)
Topologia em Anel
a
j
g
d
RF=3
Atribuição de Token
Ajuste de Intervalo
Bootstrap
Inclusão de um nodo afeta apenas vizinhos imediatos
m
Introdução >>>> Topologia >>> Bootstrap >> Modelo >>>> Read/Write >>>> Avaliação >>>>> Obrigado!
![Page 10: Cassandra db](https://reader031.vdocuments.net/reader031/viewer/2022013105/54835b055906b58f158b4680/html5/thumbnails/10.jpg)
Topologia em Anel
a
j
g
d
RF=3
Nodo é removido
Disponível?Hinting Handoff
Anota num nodo existente.
Introdução >>>> Topologia >>> Bootstrap >> Modelo >>>> Read/Write >>>> Avaliação >>>>> Obrigado!
![Page 11: Cassandra db](https://reader031.vdocuments.net/reader031/viewer/2022013105/54835b055906b58f158b4680/html5/thumbnails/11.jpg)
Bootstrap
adicionando novos nodos
Introdução >>>> Topologia >>> Bootstrap >> Modelo >>>> Read/Write >>>> Avaliação >>>>> Obrigado!
![Page 12: Cassandra db](https://reader031.vdocuments.net/reader031/viewer/2022013105/54835b055906b58f158b4680/html5/thumbnails/12.jpg)
Bootstrap
X
localiza nodo sobrecarregadoIntrodução >>>> Topologia >>> Bootstrap >> Modelo >>>> Read/Write >>>> Avaliação >>>>> Obrigado!
![Page 13: Cassandra db](https://reader031.vdocuments.net/reader031/viewer/2022013105/54835b055906b58f158b4680/html5/thumbnails/13.jpg)
Bootstrap
posiciona nodo e redistribui intervaloIntrodução >>>> Topologia >>> Bootstrap >> Modelo >>>> Read/Write >>>> Avaliação >>>>> Obrigado!
![Page 14: Cassandra db](https://reader031.vdocuments.net/reader031/viewer/2022013105/54835b055906b58f158b4680/html5/thumbnails/14.jpg)
KeyspaceColumnFamily
Row(indexed)ChaveColunas
Nome(ordenado)Valor
Modelo de Dados
Introdução >>>> Topologia >>> Bootstrap >> Modelo >>>> Read/Write >>>> Avaliação >>>>> Obrigado!
![Page 15: Cassandra db](https://reader031.vdocuments.net/reader031/viewer/2022013105/54835b055906b58f158b4680/html5/thumbnails/15.jpg)
Modelo de Dados
Uma única coluna
Introdução >>>> Topologia >>> Bootstrap >> Modelo >>>> Read/Write >>>> Avaliação >>>>> Obrigado!
![Page 16: Cassandra db](https://reader031.vdocuments.net/reader031/viewer/2022013105/54835b055906b58f158b4680/html5/thumbnails/16.jpg)
Modelo de Dados
Registro único
Introdução >>>> Topologia >>> Bootstrap >> Modelo >>>> Read/Write >>>> Avaliação >>>>> Obrigado!
![Page 17: Cassandra db](https://reader031.vdocuments.net/reader031/viewer/2022013105/54835b055906b58f158b4680/html5/thumbnails/17.jpg)
Modelo de Dados
Introdução >>>> Topologia >>> Bootstrap >> Modelo >>>> Read/Write >>>> Avaliação >>>>> Obrigado!
![Page 18: Cassandra db](https://reader031.vdocuments.net/reader031/viewer/2022013105/54835b055906b58f158b4680/html5/thumbnails/18.jpg)
Modelo de DadosRepresentação em JSON da estrutura key -> column families -> column
"mccv":{"Users":{
"emailAddress":{"name":"emailAddress", "value":"[email protected]"},"webSite":{"name":"webSite", "value":"http://bar.com"}
}, "Stats":{
"visits":{"name":"visits", "value":"243"}}
},"user2":{
"Users":{"emailAddress":{"name":"emailAddress", "value":"[email protected]"}, "twitter":{"name":"twitter", "value":"user2"}
}}
Introdução >>>> Topologia >>> Bootstrap >> Modelo >>>> Read/Write >>>> Avaliação >>>>> Obrigado!
![Page 19: Cassandra db](https://reader031.vdocuments.net/reader031/viewer/2022013105/54835b055906b58f158b4680/html5/thumbnails/19.jpg)
identifica os nodos que tem os dados da chaveredireciona a requisição para o nodo e aguarda respostase as respostas não chegaram de acordo com o timeout configurado, concela a requisição e retorna ao clienteverifica a última resposta, baseado no timestampagenda o reparo dos dados na replica se não tiverem o último pedaço do dado
Read/Write request
Introdução >>>> Topologia >>> Bootstrap >> Modelo >>>> Read/Write >>>> Avaliação >>>>> Obrigado!
![Page 20: Cassandra db](https://reader031.vdocuments.net/reader031/viewer/2022013105/54835b055906b58f158b4680/html5/thumbnails/20.jpg)
Escrita
Commit log para durabilidadeFsync configurávelApenas escrita sequencial
Memtable – sem acesso ao disco (sem leituras ou seeks)Sstables são o final (torna-se read only)
ÍndicesBloom filter (probabilístico)Dados cru
Base dos dados: Rápida!!!
Introdução >>>> Topologia >>> Bootstrap >> Modelo >>>> Read/Write >>>> Avaliação >>>>> Obrigado!
![Page 21: Cassandra db](https://reader031.vdocuments.net/reader031/viewer/2022013105/54835b055906b58f158b4680/html5/thumbnails/21.jpg)
Escrita
Key (CF1 , CF2 , CF3)
Commit LogBinary serialized
Key ( CF1 , CF2 , CF3 )
Memtable ( CF1)
Memtable ( CF2)
Memtable ( CF2)
Data size
Number of Objects
Lifetime
Disco Dedicado
<Key name><Size of key Data><Index of columns/supercolumns>< Serialized column family>
---
---
---
<Key name><Size of key Data><Index of columns/supercolumns>< Serialized column family>
BLOCK Index <Key Name> Offset, <Key Name> Offset
K128 Offset
K256 Offset
K384 Offset
Bloom Filter(Índice em memória)
Arquivos de dados em disco
Introdução >>>> Topologia >>> Bootstrap >> Modelo >>>> Read/Write >>>> Avaliação >>>>> Obrigado!
![Page 22: Cassandra db](https://reader031.vdocuments.net/reader031/viewer/2022013105/54835b055906b58f158b4680/html5/thumbnails/22.jpg)
Leitura
Praticamente livre de lockProliferação de SstableCache de Registro
(evita sstable lookup,sem write-through)
Cache de chave (evita index scan)
Introdução >>>> Topologia >>> Bootstrap >> Modelo >>>> Read/Write >>>> Avaliação >>>>> Obrigado!
![Page 23: Cassandra db](https://reader031.vdocuments.net/reader031/viewer/2022013105/54835b055906b58f158b4680/html5/thumbnails/23.jpg)
Leitura
Consulta
Replica próxima
Cassandra Cluster
Replica A
Resultado
Replica B Replica C
Compila Consulta
Resultado
Cliente
Compila Respota Compila Respota
Introdução >>>> Topologia >>> Bootstrap >> Modelo >>>> Read/Write >>>> Avaliação >>>>> Obrigado!
![Page 24: Cassandra db](https://reader031.vdocuments.net/reader031/viewer/2022013105/54835b055906b58f158b4680/html5/thumbnails/24.jpg)
Avaliação do Artigo
Título"Cassandra - A Descentralized Structured Storage System"
Abstract Sem contextualização, resultados ou conclusão
IntroduçãoContextualiza/motiva o problemaDescreve o CassandraObjetivo implícitoOrganização
Introdução >>>> Topologia >>> Bootstrap >> Modelo >>>> Read/Write >>>> Avaliação >>>>> Obrigado!
![Page 25: Cassandra db](https://reader031.vdocuments.net/reader031/viewer/2022013105/54835b055906b58f158b4680/html5/thumbnails/25.jpg)
Avaliação do Artigo
Trabalhos RelacionadosRetoma o problema Apresenta outros trabalhos
ConteúdoArtigo da indústriaParece "comprimido"Falta de clareza nas explicações
Introdução >>>> Topologia >>> Bootstrap >> Modelo >>>> Read/Write >>>> Avaliação >>>>> Obrigado!
![Page 26: Cassandra db](https://reader031.vdocuments.net/reader031/viewer/2022013105/54835b055906b58f158b4680/html5/thumbnails/26.jpg)
Avaliação do Artigo
Experiências práticasProblemas encontradosPoucos dados de performanceNão há comparação
Conclusão MUITO sucinta - 3 frasesLista de TODOs
Introdução >>>> Topologia >>> Bootstrap >> Modelo >>>> Read/Write >>>> Avaliação >>>>> Obrigado!
![Page 27: Cassandra db](https://reader031.vdocuments.net/reader031/viewer/2022013105/54835b055906b58f158b4680/html5/thumbnails/27.jpg)
Avaliação dos Autores
Avinash Lakshmanh-index: 8Software 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 2009Dynamo: amazon's highly available key-value store. SOSP 2007
Citation Count (ACM): 94
Introdução >>>> Topologia >>> Bootstrap >> Modelo >>>> Read/Write >>>> Avaliação >>>>> Obrigado!
![Page 28: Cassandra db](https://reader031.vdocuments.net/reader031/viewer/2022013105/54835b055906b58f158b4680/html5/thumbnails/28.jpg)
Avaliação dos Autores
Prashant Malikh-index: 3Research 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): 2
Introdução >>>> Topologia >>> Bootstrap >> Modelo >>>> Read/Write >>>> Avaliação >>>>> Obrigado!
![Page 29: Cassandra db](https://reader031.vdocuments.net/reader031/viewer/2022013105/54835b055906b58f158b4680/html5/thumbnails/29.jpg)
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/qualish-index: 22 (2010), 87 (SIGOPS)h-index: 11 (2009),42
Introdução >>>> Topologia >>> Bootstrap >> Modelo >>>> Read/Write >>>> Avaliação >>>>> Obrigado!
![Page 30: Cassandra db](https://reader031.vdocuments.net/reader031/viewer/2022013105/54835b055906b58f158b4680/html5/thumbnails/30.jpg)
Referências
http://www.slideshare.net/gdusbabek/introduction-to-cassandra-june-2010
http://www.slideshare.net/jhammerb/data-presentations-cassandra-sigmod
http://www.slideshare.net/jericevans/the-cassandra-distributed-database
http://wiki.apache.org/cassandra
http://www.cs.cornell.edu/projects/ladis2009/papers/lakshman-ladis2009.pdf