Your SlideShare is downloading. ×
0
Avaliando o Apache Cassandra como cache distribuido no SPC Brasil - NoSQLBR
Avaliando o Apache Cassandra como cache distribuido no SPC Brasil - NoSQLBR
Avaliando o Apache Cassandra como cache distribuido no SPC Brasil - NoSQLBR
Avaliando o Apache Cassandra como cache distribuido no SPC Brasil - NoSQLBR
Avaliando o Apache Cassandra como cache distribuido no SPC Brasil - NoSQLBR
Avaliando o Apache Cassandra como cache distribuido no SPC Brasil - NoSQLBR
Avaliando o Apache Cassandra como cache distribuido no SPC Brasil - NoSQLBR
Avaliando o Apache Cassandra como cache distribuido no SPC Brasil - NoSQLBR
Avaliando o Apache Cassandra como cache distribuido no SPC Brasil - NoSQLBR
Avaliando o Apache Cassandra como cache distribuido no SPC Brasil - NoSQLBR
Avaliando o Apache Cassandra como cache distribuido no SPC Brasil - NoSQLBR
Avaliando o Apache Cassandra como cache distribuido no SPC Brasil - NoSQLBR
Avaliando o Apache Cassandra como cache distribuido no SPC Brasil - NoSQLBR
Avaliando o Apache Cassandra como cache distribuido no SPC Brasil - NoSQLBR
Avaliando o Apache Cassandra como cache distribuido no SPC Brasil - NoSQLBR
Avaliando o Apache Cassandra como cache distribuido no SPC Brasil - NoSQLBR
Avaliando o Apache Cassandra como cache distribuido no SPC Brasil - NoSQLBR
Avaliando o Apache Cassandra como cache distribuido no SPC Brasil - NoSQLBR
Avaliando o Apache Cassandra como cache distribuido no SPC Brasil - NoSQLBR
Avaliando o Apache Cassandra como cache distribuido no SPC Brasil - NoSQLBR
Avaliando o Apache Cassandra como cache distribuido no SPC Brasil - NoSQLBR
Avaliando o Apache Cassandra como cache distribuido no SPC Brasil - NoSQLBR
Avaliando o Apache Cassandra como cache distribuido no SPC Brasil - NoSQLBR
Avaliando o Apache Cassandra como cache distribuido no SPC Brasil - NoSQLBR
Avaliando o Apache Cassandra como cache distribuido no SPC Brasil - NoSQLBR
Avaliando o Apache Cassandra como cache distribuido no SPC Brasil - NoSQLBR
Avaliando o Apache Cassandra como cache distribuido no SPC Brasil - NoSQLBR
Avaliando o Apache Cassandra como cache distribuido no SPC Brasil - NoSQLBR
Avaliando o Apache Cassandra como cache distribuido no SPC Brasil - NoSQLBR
Avaliando o Apache Cassandra como cache distribuido no SPC Brasil - NoSQLBR
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Avaliando o Apache Cassandra como cache distribuido no SPC Brasil - NoSQLBR

3,058

Published on

Nessa apresentacao eu descrevo as necessidades de caching do SPC Brasil e como as capacidades oferecidas pelo Apache Cassandra se aplicam na solucao do problema. Tambem eh descrita a arquitetura, …

Nessa apresentacao eu descrevo as necessidades de caching do SPC Brasil e como as capacidades oferecidas pelo Apache Cassandra se aplicam na solucao do problema. Tambem eh descrita a arquitetura, modelo de dados e API de uso do Cassandra. E algumas Cassandras... :)

Published in: Technology, Travel
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
3,058
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
61
Comments
0
Likes
2
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Apache Cassandra como cache distribuido @julioviegas Globalcoder Globalcode – Open4education
  • 2. Palestrante ~15 anos trabalhando com tecnologia Instrutor, arquiteto, mentor e desenvolvedor de software e eletronica Participa de comunidades de usuarios: RSJUG, XP-RS, CEJUG, Open4Education... Sun Certified Trainer, SCEA 1 e 5, SCDJWS 1.4 e 5, SCWCD 1.4, SCBCD 5, SCJP 5, SCJA 1 Arquiteto de Software e Sistemas no SPC Brasil e Instrutor Globalcode Globalcode – Open4education
  • 3. Agenda Cache no SPC Brasil Apache Cassandra Arquitetura Modelo de dados Configuracoes APIs Demo Globalcode – Open4education
  • 4. Cache no SPC Brasil ~100 transacoes por segundo(ou mais) 22 processos Caches mutaveis com replicacao via Ehcache+RMI Caches imutaveis com Ehcache Caches isolados usando ConcurrentHashMap Replicacao Ehcache+RMI desligada, reboot dos Nos para atualizacao Globalcode – Open4education
  • 5. Cache no SPC Brasil Cache chave+valor Todo cache eh de leitura intensa Caches mutaveis sao de escrita ocasional Tentativas com Terracotta nao foram satisfatorias: instrumentar tudo nao eh legal! Nao foi possivel utilizar o controle de sessoes compartilhadas web(Jetty) como cache distribuido CHEGA! NoSQL? Globalcode – Open4education
  • 6. Cache no SPC Brasil Capacidades necessarias Estabilidade Disponibilidade Baixa latencia(uso de memoria, C10K) Consistencia(ultima versao da informacao) Persistencia Tolerancia a perda de dados(replicacao) Recuperacao de falhas de modo automatico(failover) Escalabilidade(horizontal) Cases de sucesso Livre, aberto, gratis, comunidade Globalcode – Open4education
  • 7. Cassandras Globalcode – Open4education
  • 8. Cache no SPC Brasil Avaliando NoSQL tipo chave+valor Memcached Redis Voldemort APACHE CASSANDRA! Porem... Globalcode – Open4education
  • 9. Apache Cassandra Criado pelo Facebook, e usado em parte dele Baseado no Amazon Dynamo Usuarios: Digg, Reddit, Cisco Webex, Rackspace, Twitter Chave+valor Tipos dinamicos versionados com timestamp Atomicidade por chave Configuracao simples Globalcode – Open4education
  • 10. Arquitetura MySQL: muito IO imprevisivel! Solucoes baseadas em arquivos precisam de lock! Armazenamento descentralizado Tolerante a falhas Elastico: adicione mais servidores a quente Escala horizontalmente Globalcode – Open4education
  • 11. Arquitetura Disponibilidade e tolerancia a perda de particoes sobre consistencia(CAP) Consistencia configuravel Tradeoff: Consistencia versus Latencia Particionamento e replicacao baseado no Dynamo(Amazon) e modelo de dados estruturado(ColumnFamily) baseado no Bigtable(Google) Globalcode – Open4education
  • 12. Cassandras Globalcode – Open4education
  • 13. Arquitetura Administracao minima Sem ponto unico de falha Particionador configuravel Replicacao configuravel: quantidade, rack e site “aware” Gossip, messaging, bootstrap, compaction Memtable Monitoracao e ferramentas de administracao Commit log Globalcode – Open4education
  • 14. Arquitetura Escritas: quorum(maioria) ou assincronas(1), sem leituras, posicionamento, rapida(0.12ms vs 300ms do MySQL), atomica, sempre garantida Leitura: memtable e +RAM, mais lenta que a escrita(15ms vs 350ms do MySQL), escala a bilhoes de linhas Consistencia: 1, quorum, all. Cuidado com a latencia! Globalcode – Open4education
  • 15. Modelo de dados Keyspace: grupo de chaves ou banco/schema Column: chave e valor ou tabela de uma coluna e linha Globalcode – Open4education
  • 16. Modelo de dados SuperColumn: mapa ou tabela de n colunas e uma linha apenas Globalcode – Open4education
  • 17. Cassandras Globalcode – Open4education
  • 18. Modelo de dados ColumnFamily: lista de mapas ou tabela Globalcode – Open4education
  • 19. Modelo de dados SuperColumnFamily: grupos de SuperColumn usando chave Globalcode – Open4education
  • 20. Modelo de dados Configuravel em storage-conf.xml Ordenacao eh feita na insercao, usando o nome da coluna ColumnFamily CompareWith SuperColumn CompareSubcolumnsWith Tipos: BytesType, UTF8Type, LexicalUUIDType, TimeUUIDType, AsciiType, LongType Globalcode – Open4education
  • 21. Configuracoes $CASSANDRA_HOME/conf/storage-conf.xml ClusterName AutoBootstrap Keyspace – ColumnFamily – ReplicaPlacementStrategy & EndPointSnitch: Unaware, Rack ou Datacenter – ReplicationFactor Globalcode – Open4education
  • 22. Cassandras Globalcode – Open4education
  • 23. Configuracoes Autenticador Particionador: Random por padrao ou ordenado InitialToken: armazena chaves com token similar CommitLogDirectory DataFileDirectory Seed ListenAddress/StoragePort ThriftAddress/ThriftPort Outras opcoes avancadas de tunning... Globalcode – Open4education
  • 24. API Apache Thrift ConsistencyLevel: ZERO, ANY, ONE, QUORUM, ALL ColumnOrSuperColumn Column SuperColumn ColumnPath ColumnParent Globalcode – Open4education
  • 25. API SlicePredicate SliceRange KeyRange KeySlice Mutation Deletion Globalcode – Open4education
  • 26. API AuthenticationRequest NotFoundException InvalidRequestException UnavailableException TimedOutException TapplicationException AuthenticationException/AuthorizationException Globalcode – Open4education
  • 27. Cassandras Globalcode – Open4education
  • 28. API get / get_slice / multiget_slice / get_count / get_range_slices insert / batch_mutate / remove describe_keyspaces / describe_cluster_name / describe_version / describe_ring / describe_keyspace Globalcode – Open4education
  • 29. Demo Globalcode – Open4education
  • 30. Obrigado! Globalcode – Open4education

×