Your SlideShare is downloading. ×
Bancos de dados No-SQL e afins
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

Bancos de dados No-SQL e afins

4,423

Published on

Apresentação para a Bluesoft sobre projetos de bancos de dados No-SQL

Apresentação para a Bluesoft sobre projetos de bancos de dados No-SQL

Published in: Technology
0 Comments
6 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
4,423
On Slideshare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
0
Comments
0
Likes
6
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
  • Eric Evans – Rackspace - DDD Johan Oskarsson – Last.fm – evento sobre bases open-source distribuídas Not Only Sql
  • Facebook – 40G Files, 10G Fotos, 1PiB, 5K page views /s, 36K qps, 1 DBA Ebay – 2PiB data Twitter – (Cassandra?) - 50 Mi Tweets/dia
  • - Comodity Hardware: EMT64, 16GB Ram, 6x15k RAID10 -> Para conseguir esses benefícios é necessário aplicacar as técnicas
  • - Dados são denormalizados - Particionamento do pai e dos filhos - Core tables são replicados - Pode ser combinado com particionamento vertical -> Para conseguir buscar os dados é necessário MapReduce
  • TODO Explicacao
  • Key/Value – HashTable
  • 90% - Bilhoes de linhas
  • Key/Value Store Biblioteca stand-alone Versões mais novas possuem HA
  • Key Value Store Biblioteca stand-alone Servidor Tokyo Tyrant
  • Outros Redis Githut Data Partition 80-110k op/s Scalaris
  • Entity sem um pai é o root do EntityGroup Todo EntityGroup é operado em uma única operação
  • Vantagem: Interface REST pública
  • Yahoo
  • Melhor performance Sem transação
  • Twitter – mudou recentemente Facebook – Inbox - 600+ cores / 120+ TB disk space
  • Consultas mais fáceis Dados mais flexiveis Menos escalabilidade
  • Alta concorrencia
  • Futura HA SourceForge / GitHub
  • Entidades se relacionam Relacionamento podem ter atributos Traversal framework
  • Neo4j – java, scallable, embedded InfoGrid – restful, external data(ex. Rss, atom)
  • 100x performance on ad-hoc
  • TODO
  • Transcript

    • 1. Persistência NOSQL e tecnologias afins Daniel Carneiro
    • 2. O que é NOSQL
      • Termo criado por Eric Evans em 2009
      • 3. Modelo de persistência que não utiliza SQL
      • 4. Surgiu da necessidade de implementar soluções em que bancos de dados relacionais não se encaixam perfeitamente.
    • 5. Porquê
      • Escalabilidade
        • Somente MainFrame obtém 99,999% de confiabilidade
        • 6. 2 Tipos:
          • Vertical – Máquina maior (SPOF)
          • 7. Horizontal – Mais máquinas
      • Performance
        • Algumas implementações prometem 100x de performance em relaçao aos RDBMS
    • 8. Benefícios
      • Escalabilidade horizontal
      • 9. Distribuído
      • 10. Performance
      • 11. Suporte a grandes bases de dados
      • 12. Schema-free
      • 13. ”One size doesn't fit all”
    • 14. Sharding
      • Shared-Nothing Partition
      • 15. Objetivo principal: Quebrar sua tabelas, agrupando-as por dados semenhantes
      • 16. Várias formas:
        • Vertical
        • 17. Horizontal
          • by Range
          • 18. by Key / Hash
    • 19. MapReduce
      • Algoritmo patenteado pelo Google para processamento em larga escala
      • 20. Map step: o nó pricipal quebra a tarefa em partes e distribui para os outros nós processarem
      • 21. Reduce step: o nó pai combina as respostas recebidas pelos outros, criando a resposta final do problema a ser resolvido
    • 22. MapReduce (cont.) Exemplo - Contar o numero de vezes que cada palavra aparece em um conjunto de documentos: void map(String name, String document): // name: document name // document: document contents for each word w in document: EmitIntermediate(w, "1"); void reduce(String word, Iterator partialCounts): // word: a word // partialCounts: a list of aggregated partial counts int result = 0; for each pc in partialCounts: result += ParseInt(pc); Emit(AsString(result));
    • 23. Tipos
    • 28. Tipos (cont.) Size Complexity Key-Value Wide-Column Document Graph 90% of use cases
    • 29. Key / Value Store
    • 32. Berkeley DB
      • Criado em (1986) na universidade de Berkeley
      • 33. Sucessor do DBM (1979)
      • 34. Berkeley -> Sleepycat -> Oracle
      • 35. Dual License
    • 36. Tokyo Cabinet
      • Criado em 2006 por Mikio Hirabayashi
      • 37. Sucessor do GDBM
      • 38. Melhor performance / threading / Armazenamento
      • 39. LGPL
    • 40. Project Voldermort
    • 44. MemcacheDB
      • Baseado no memcached
      • 45. Usa BerlekeyDB para persistência
      • 46. 20-60k op/s
    • 47. Wide Column
      • Colunas podem ser consultadas / indexadas
      • 48. Colunas possuem multiplos valores
      • 49. Eventually Consistent
    • 50. Google Big Table
      • Serviço pago
      • 51. Permite colunas com listas de valores
      • 52. Colunas podem ser adicionadas dinamicamente
      • 53. Colunas são indexadas automaticamente
      • 54. Estrutura em árvore (EntityGroup)
      • 55. Transação provida através de EntityGroup
    • 56. SimpleDB (Amazon)
      • Interface REST
      • 57. Serviço pago
      • 58. Domains (Tables, max 100)
      • 59. Colunas com listas de valores
    • 60. HBase
      • Serviço de base de dados criado sobre a plataforma Hadoop
      • 61. Thrift API
      • 62. Table / Family:Column / Time
    • 63. Hipertable
      • C++ / HDFS
      • 64. Key / Column Family / Qualifier / Time
      • 65. Thrift API
    • 66. Cassandra
      • Facebook / Twitter
      • 67. Decentralized / Full Tolerant / Eventual Consistency
      • 68. Java
      • 69. Keyspace / Column Families (Table / Fixed) / SuperColumns / Columns
      • 70. Thrift API
    • 71. Document Store
      • Armazenam documentos semi-estruturados
      • 72. Sem relacionamentos entre documentos
      • 73. Transação em nível de documento
      • 74. Modelo de replicação: ”Eventualmente Consistente”
    • 75. CouchDB (Apache)
      • Escrito em Erlang
      • 76. Interface RESTful / JSON
      • 77. Map-Reduce
    • 78. MongoDB
      • Escrito em C/C++
      • 79. Interface BSON / JSON
      • 80. Dynamic Queries / Map-Reduce
    • 81. Graph Store
      • Aramazena os dados em grafos
      • 82. Busca por transposição
    • 83. Graph Store A B C E D
    • 84. Graph Store (cont.)
    • 87. Column Oriented Store (SQL)
      • Baseado em SQL
      • 88. Dados são agrupados por colunas e não em linhas
      • 89. Boa performance em DW
    • 90. Column Oriented Store (cont.)
    • 95. Conclusões
      • Novas formas de modelar os dados
      • 96. Escalabilidade possui um preço
      • 97. Não há um concenso ou padronizacao entre os projetos
      • 98. Cada projeto foi concebido para resolver problemas particulares
    • 99. Dúvidas Dúvidas ? Questões ? Angústias ?
    • 100. Referências
      • Internet !!!!!
      • 101. www.wikipedia.org
      • 102. nosql-database.org
      • 103. http://www.slideshare.net/jperras/nonrelational-databases-keyvalue-stores
      • 104. http://www.codefutures.com/database-sharding
      • 105. http://www.slideshare.net/emileifrem/nosql-east-a-nosql-overview-and-the-benefits-of-graph-databases

    ×