nosqlbr cassandra

935 visualizações

Publicada em

Presentation at NoSQLbr

nosqlbr cassandra

  1. 1. Ben Coverston [email_address] @bcoverston <ul><li>Apache Cassandra: Uma Introdução </li></ul>
  2. 2. Eu <ul><li>Ben Coverston </li></ul><ul><li>Diretor de Operações DataStax </li></ul><ul><li>Como é que um gringo fala Português? </li></ul><ul><li>Morou em Santa Catarina de 1994-1996 </li></ul>
  3. 3. Datastax e Cassandra <ul><li>Júlio 2008 Contribuído de Facebook á comunidade </li></ul><ul><li>Março 2009 Introduzido à incubadora Apache </li></ul><ul><li>DataStax, Fundado Abril 2010 </li></ul><ul><li>Primeira conferência: Augusto 2010 </li></ul>
  4. 4. Quem está usando Ela? <ul><li>Financeiro </li></ul><ul><li>Governo </li></ul><ul><li>Mídia Social </li></ul><ul><li>Publicidade </li></ul><ul><li>Energia </li></ul><ul><li>Varejo </li></ul><ul><li>Saúde </li></ul>
  5. 5. Cassandra, você é diferente
  6. 6. Como é diferente? <ul><li>O melhor combinação de </li></ul><ul><ul><li>Escalabilidade </li></ul></ul><ul><ul><li>Performance </li></ul></ul><ul><ul><li>Disponibilidade </li></ul></ul>
  7. 7. Escalabilidade <ul><li>Através uma esquema distribuída </li></ul><ul><li>Sem ponto único de falha </li></ul><ul><li>Todos os nós são o mesmo </li></ul>
  8. 8. O fracasso é inevitável
  9. 9. Então …
  10. 10. ou…
  11. 11. A falta é um caso especial ? ?
  12. 12. Nós de Cassandra
  13. 13. Nós de Cassandra (cont.)
  14. 14. Falha com Cassandra
  15. 15. Modelagem de dados com Apache Cassandra <ul><li>Flexível </li></ul><ul><li>Fundado em Big Table </li></ul><ul><li>Escalável </li></ul>
  16. 16. Feito Em Big Table <ul><li>Google Finance </li></ul><ul><li>Google Reader </li></ul><ul><li>Gmail </li></ul><ul><li>Google App Engine </li></ul><ul><li>Google Book Search </li></ul><ul><li>YouTube </li></ul><ul><li>. . . </li></ul>
  17. 17. Dados Primitivas Column Family chave nome : valor nome : valor nome :valor chave nome : valor nome : valor nome : valor chave nome : valor nome: valor chave nome : valor nome : valor nome : valor nome : valor
  18. 18. Twissandra <ul><li>Aplicação escrito em Cassandra </li></ul><ul><li>www.twissandra.com </li></ul>
  19. 19. Usuários Column Family Usuários alice nome : Allison senha : * bob nome : Roberto senha : * eve nome : Evelyn senha : * chuck nome : Carlos senha : * site : datastax.com
  20. 20. Estado Column Family Tweets LMNO timestamp : 175695372 corpo : estou tão equivicado? user : carlos AXML timestamp : 125695372 corpo: recebeu a minha mensagem? user : alice DEXDL timestamp : 155695372 corpo: ouvi o que diz. user : eve BADFO timestamp : 135695372 corpo : manda-me a senha. user : mallory
  21. 21. Pesquisando Dados em Twissandra <ul><li>Quem esta seguindo um usuário? </li></ul><ul><li>A quem segue um usuário? </li></ul><ul><li>Monstra os meus tweets. </li></ul><ul><ul><li>UserLine </li></ul></ul><ul><li>Monstra os tweets de todos que eu estou seguindo. </li></ul><ul><ul><li>TimeLine </li></ul></ul>
  22. 22. Quem Segue Alice? Column Family Followers alice bob : mallory : trent :
  23. 23. Quem é seguido por Alice? Column Family Following alice bob : carlos : david :
  24. 24. UserLine do Alice Column Family UserLine alice 125695372 : AXML 126695372 : XCVL 127695372 : XENY bob 125795372 : SDFG 126895372 : XCVN eve 125694372 : FDHL arthur 125600000 : AXML 125800000 : XCVL 127900000 : XENY
  25. 25. TimeLine do Alice Column Family Timeline bob 125795372 : SDFG 126895372 : XCVN eve 1279900000 : FDHL arthur 125600000 : AXML 125800000 : XCVL 127900000 : XENY alice 125795372 : SDFG 125800000 : XCVL 1279900000 : FDHL
  26. 26. Bob da um novo estado Column Family Tweets LUMP timestamp : 200000000 body : Oi Alice user : bob AXML timestamp : 125695372 body : recebeu a minha mensagem? user : alice DEXDL timestamp : 155695372 body : ouvi o que diz. user : eve BADFO timestamp : 135695372 body : manda-me a senha! user : mallory
  27. 27. UserLine e TimeLine Column Family UserLine Column Family TimeLine bob 127695372 : XENY 126695372 : XCVL 200000000 : LUMP alice 125795372 : SDFG 125800000 : XCVL 1279900000 : FDHL 200000000 : LUMP 125695372 : AXML bob 125795372 : SDFG 126895372 : XCVN 200000000 : LUMP eve 1279900000 : FDHL 200000000 : LUMP
  28. 28. Usando o Timeline Column Family Tweets alice LMNO timestamp : 175695372 body : am I always the third wheel? user : chuck AXML timestamp : 125695372 body : bob did you get my message? user : alice DEXDL timestamp : 155695372 body : I heard what you said user : eve BADFO timestamp : 135695372 body : send me your password! user : mallory
  29. 29. Vista Geral <ul><li>O que é um “ Column Family ” ? </li></ul><ul><li>Modelar Data Estático </li></ul><ul><li>Modelar ‘Queries’ ou Perguntas </li></ul>
  30. 30. What’s new in Apache Cassandra 1.0 <ul><li>Compressão </li></ul><ul><li>Memtable Thresholds </li></ul><ul><li>LevelDB </li></ul><ul><li>Desempenho </li></ul><ul><li>Outras Coisas… </li></ul>
  31. 31. Compressão
  32. 32. Compressão <ul><li>2-4x redução no tamanho dos dados </li></ul><ul><li>25-35% melhoria na velocidade a ler </li></ul><ul><li>5-10% melhoria na velocidade a escrever </li></ul><ul><li>O melhor quando as colunas são um tanto congruente </li></ul>
  33. 33. Gerência Memória
  34. 34. Gerência Memória e Espaço Disquete <ul><li>Cache filharas fora do ‘ Heap ’ </li></ul><ul><li>Afinação do Armazenamento </li></ul><ul><li>Reclamação do Armazenamento Disque </li></ul>
  35. 35. Compacção
  36. 36. Compacção Overview
  37. 37. Compacção ‘ Tiered ’
  38. 38. Compacção ‘ Leveled ’
  39. 39. Desempenho
  40. 40. Desempenho <ul><li>Ler </li></ul><ul><ul><li>Improvado pelas fatias </li></ul></ul><ul><ul><li>Improvado por leitura nomeada </li></ul></ul><ul><li>Escrever </li></ul><ul><ul><li>Alocação Arena pelos Memtables </li></ul></ul><ul><ul><li>Diminuição da Fragmentação </li></ul></ul><ul><li>Rede </li></ul><ul><ul><ul><li>Redução das cópias </li></ul></ul></ul>
  41. 41. Desempenho (Cont.)
  42. 42. Outros Coisas …
  43. 43. Hints <ul><li>Reexecutar os dados a processor quando falha </li></ul><ul><li>Armazenado e otimizada para reexecutar </li></ul><ul><li>Recolocação dos Nós </li></ul><ul><li>Compacção Multi-threaded </li></ul>
  44. 44. Também Hadoop <ul><li>Existe intergeração com Hadoop </li></ul><ul><ul><li>Brisk </li></ul></ul><ul><ul><li>DataStax Enterprise </li></ul></ul><ul><li>Cassandra e muito bom para OLTP </li></ul><ul><li>E bom também dos aplicações analíticas </li></ul><ul><li>Sem ETL (Extratar, Transformar, Carregar) </li></ul>
  45. 45. Mas Informacões www.datastax.com <ul><li>Free Documentation </li></ul><ul><li>Technical White Papers </li></ul><ul><li>Technical Articles </li></ul><ul><li>Tutorials </li></ul><ul><li>User Forums </li></ul><ul><li>User/Customer Case Studies </li></ul><ul><li>FAQ ’ s </li></ul><ul><li>Videos </li></ul><ul><li>Blogs </li></ul><ul><li>Software downloads </li></ul>
  46. 46. Perguntas? <ul><li>@bcoverston </li></ul><ul><li>[email_address] </li></ul>

×