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. Objetivos
Alta disponibilidade
Consistência eventual
trade-off - alta consistência ou alta disponibilidade
Replicação otimista
Escalabilidade incremental
Administração ao mínimo
Introdução >>>> Topologia >>> Bootstrap >> Modelo >>>> Read/Write >>>> Avaliação >>>>> Obrigado!
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
Armazenamento
Introdução >>>> Topologia >>> Bootstrap >> Modelo >>>> Read/Write >>>> Avaliação >>>>> Obrigado!
5. Arquitetura Cassandra
Cassandra API Ferramentas
Camada de armazenamento
Particionador Replicador
Detector de falha Cluster Membership
Camada de mensagens
Introdução >>>> Topologia >>> Bootstrap >> Modelo >>>> Read/Write >>>> Avaliação >>>>> Obrigado!
6. Sistemas Utilizados
BigTable ZooKeeper
Sistema de Coordenação de
Armazenamento tarefas
(Google)
Seda Ganglia
Arquitetura do
Monitoramento
sistema
Introdução >>>> Topologia >>> Bootstrap >> Modelo >>>> Read/Write >>>> Avaliação >>>>> Obrigado!
7. Topologia em Anel
RF=3
a
Anel Conceitual
Um token por nodo
Múltiplos
j d
intervalos por nodo
g
Introdução >>>> Topologia >>> Bootstrap >> Modelo >>>> Read/Write >>>> Avaliação >>>>> Obrigado!
8. Topologia em Anel
RF=2
a
Anel Conceitual
Um token por nodo
Múltiplos
j d
intervalos por nodo
g
Introdução >>>> Topologia >>> Bootstrap >> Modelo >>>> Read/Write >>>> Avaliação >>>>> Obrigado!
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
g
Introdução >>>> Topologia >>> Bootstrap >> Modelo >>>> Read/Write >>>> Avaliação >>>>> Obrigado!
10. Topologia em Anel
RF=3
Nodo é removido a
Disponível?
Hinting Handoff
Anota num nodo j d
existente.
g
Introdução >>>> Topologia >>> Bootstrap >> Modelo >>>> Read/Write >>>> Avaliação >>>>> Obrigado!
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 dado
Introdução >>>> Topologia >>> Bootstrap >> Modelo >>>> Read/Write >>>> Avaliação >>>>> Obrigado!
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. 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. 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!
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ção
Introdução >>>> Topologia >>> Bootstrap >> Modelo >>>> Read/Write >>>> Avaliação >>>>> Obrigado!
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ções
Introdução >>>> Topologia >>> Bootstrap >> Modelo >>>> Read/Write >>>> Avaliação >>>>> Obrigado!
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 TODOs
Introdução >>>> Topologia >>> Bootstrap >> Modelo >>>> Read/Write >>>> Avaliação >>>>> Obrigado!
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: amazon's highly available key-value store. SOSP
2007
Citation Count (ACM): 94
Introdução >>>> Topologia >>> Bootstrap >> Modelo >>>> Read/Write >>>> Avaliação >>>>> Obrigado!
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): 2
Introdução >>>> Topologia >>> Bootstrap >> Modelo >>>> Read/Write >>>> Avaliação >>>>> Obrigado!
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),42
Introdução >>>> Topologia >>> Bootstrap >> Modelo >>>> Read/Write >>>> Avaliação >>>>> Obrigado!