Your SlideShare is downloading. ×
Banco de Dados NoSql - JornalJava
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Introducing the official SlideShare app

Stunning, full-screen experience for iPhone and Android

Text the download link to your phone

Standard text messaging rates apply

Banco de Dados NoSql - JornalJava

2,455
views

Published on

O aumento da modernização das empresas demanda uma crescente criação de sistemas e produção de dados. Para uma empresa com forte dependencia de TI, seus dados se tornam ativos cada vez mais valiosos …

O aumento da modernização das empresas demanda uma crescente criação de sistemas e produção de dados. Para uma empresa com forte dependencia de TI, seus dados se tornam ativos cada vez mais valiosos (e caros) para manter. O acesso, armazenamento e gerenciamento de dados precisa ser encarado como um ponto estratégico para o sucesso dos seus empreendimentos, principalmente quando seu volume de dados já ultrapassou a casa dos PetaBytes.

Algumas empresas de internet enfrentam esses desafios todos os dias, como o Google, Amazon, Ebay, Yahoo, Twitter, Facebook, LinkedIn, etc e o único jeito de sobreviver na web é vencendo essas barreiras, necessitando criar novas estratégias para armazenamento barato para um volume crescente de dados. Dessa necessidade surgiu o conceito de Banco de Dados NoSQL, que difere do conceito comum de banco de dados relacional para um DB mais flexível, focado em escalabilidade horizontal dinâmica e alta disponibilidade com balanceamento automático.

Nessa apresentação será abordado os principais motivadores da utilização dessa abordagem, como ela funciona internamente e como é utilizada pelos maiores sites do planeta.

Published in: Technology

1 Comment
3 Likes
Statistics
Notes
No Downloads
Views
Total Views
2,455
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
0
Comments
1
Likes
3
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. Fulvio Longhi
    @jornaljava
    Banco de Dados NoSQL Escalabilidade de Dados sem Limites
    JornalJava.com
    Fev/2011
  • 2. Informações
    Conceito
    Principais Características
    Exemplos
    Quem está Usando?
    Prós e Contras
    CAP
    Tipos de NoSQL DB
    Principais Produtos
    Casos Reais
    Inside NoSQL
    Referências
    Perguntas
    Agenda
  • 3. A cada ano é criado quase 2x mais dados que o ano anterior (IDC 2007)
    Grandes sites viram que ACID não escala muito bem
    99% dos casos de gargalo um sistema pelo IO (seja de rede ou de disco)
    Algumas Informações
  • 4. E você acha que tem problemas com dados?
    Twitter ~ 1,2 milhões ops/sec (2010)
    Facebook ~ 500 milhões writes/day (2008)
    Google ~ 1 trilhão de páginas indexadas/day (2010)
  • 5. NoSQL == “SQL” || “Not Only SQL”
    NoSQL == NoRDBMS também (geralmente)
    “ is a term used to designate database management systems that differ from classic relational database management systems in some way. These data stores may not require fixed table schemas, and usually avoid join operations and typically scale horizontally. ” (Wikipedia)
    Conceito
  • 6. baixa latência
    suporte a falhas
    escalabilidade horizontal e dinâmica
    alta disponibilidade
    schemas flexiveis
    suporte a distribuição geográfica
    BAIXO CUSTO
    busca de dados através de heurística
    meta-index
    geralmente abrindo mão de:
    transação, locks, consistência, integridade (tarefas do RDBMS)
    queries complexas
    Principais Características
  • 7. Escalabilidade: característica de aumentar sua capacidade para o seu sistema (seja de processamento, armazenamento ou IO)
    Escalabilidade Horizontal: escalar adicionando máquinas em paralelo (ex.: Cluster)
    desvantagens: sistemas e arquiteturas mais complexas
    Escalabilidade Vertical: escalar adicionando novos componentes na máquina (ex.: Aumentar memória)
    desvantagens: caro, e com limites físicos atingíveis
    Mas o que é Escalabilidade Horizontal?
  • 8. sistemas com quantidade de dados massivo
    arquitetura essencialmente distribuída
    muitos servidores para suportar um sistema
    prover resultado de queries impossíveis de serem feitas com joins online
    sistema com mudanças constantes no schema
    Exemplos de Utilização
  • 9. Quem está Usando?
  • 10. Prós
    alta disponibilidade
    escalabilidade horizontal
    baixo custo
    expansão dinâmico
    schemas flexíveis
    dados distribuídos
    semi-estruturados
    Prós e Contras
  • 11. Contras
    queries dinâmicas limitadas
    consistência fica por conta do programa
    sem padrão
    sem controle de acesso
    Prós e Contras
  • 12. Eric Brewer - Berkeley/MIT, 2000
    Diagrama CAP
  • 13. Consistence - após a operação, o dado já está pronto pra consulta
    todos consultam os mesmos dados
    Availability - sempre disponível
    tolerante a falhas de máquinas individuais
    expansão sem downtime
    Partition Tolerance - os dados estão espalhados em várias máquinas (não apenas para leitura, mas para escrita também!)
    Teorema CAP
  • 14. CA - RDBMS comuns (as vezes em pequenos Clusters)
    o único meio de escalar é verticalmente
    CP - Shard (Tabelas particionadas)
    se uma tabela estiver fora do ar, parte dos dados serão afetados
    programas mais complexos para manter a consistência
    AP - DNS, cache, NoSQL
    difícil manter consistência, resolver conflitos
    Combinações de CAP
  • 15. Key/Value - no modelo de Distribuited Hash Table
    MemCached, Amazon S3, Google Storage, Azure DB, Yahoo Pnuts
    Column Store - pode-se buscar dados por key:column
    Apache Cassandra, Apache HBase, Amazon SimpleDB, Google DataStore
    Document Store - dados já sumarizados, geralmente com suporte a processamento batch
    mongodb, couchdb, TerraStore
    Graph DB - dados são agrupados conforme suas ligações
    Neo4j, InfoGrid, VertexDB,
    Tipos de NoSQL DB
  • 16. MemCached
    usado para cache
    dados Transientes
    sem suporte a queries
    Principais Produtos
  • 17. Cassandra e Hbase
    busca por índices pré-compilados
    consistência e transação por registro
    batch distribuído
    índice particionado
    suporte a datacenters distribuídos geograficamente
    Principais Produtos
  • 18. CouchDB e MongoDB
    batch distribuído
    queries dinâmicas distribuídas (porém limitadas)
    suporte ao protocolo REST
    Principais Produtos
  • 19. Twitter
    timeline == consolidação dos tweets
    tweet imutável.
    todos os dados do tweet são autocontidos (foto do perfil, @name, etc.)
    tweets da timeline são transientes
    1 cópia do tweet é guardado no seu "perfil" e replicado async na timeline dos seus seguidores
    Descrições de Casos Reais
  • 20. Facebook
    cada item do mural possui uma consolidação dos comentários desse item
    a cada atualização dos comentários de um item, ele é reescrito totalmente
    Descrições de Casos Reais
  • 21. Google
    cópia de cada página web que é indexada
    emails do gmail
    anexos do gmail (truque da capacidade do gmail)
    Descrições de Casos Reais
  • 22. Twitter, Google, Facebook deixaram de utilizar RDBMS?
    RDBMS morreu?
  • 23. Twitter, Google, Facebook deixaram de utilizar RDBMS?
    NÃO!
    Para sistemas internos e coisas mais simples ainda usam muito RDBMS, por causa de:
    maturidade
    manipulação de dados
    expertise
    RDBMS morreu?
  • 24. Key/Valeu (Distributed Hash Table)
    Inside NoSQL
    D1
    a
    b
    C1
    c
    d
    D2
    e
    f
    C2
    g
    h
    ...
    ...
    Dn
    Cn
    M
    i
    j
    k
  • 25. Key/Valeu (Distributed Hash Table)
    Inside NoSQL
    D1
    a
    b
    Qual a quantidade de servidores de dados?
    C1
    c
    d
    D2
    e
    f
    C2
    g
    h
    ...
    ...
    Dn
    Cn
    M
    i
    j
    k
  • 26. Key/Valeu (Distributed Hash Table)
    Inside NoSQL
    D1
    a
    b
    C1
    c
    d
    D2
    Temos 8 servidores de dados
    e
    f
    C2
    g
    h
    ...
    ...
    Dn
    Cn
    M
    i
    j
    k
  • 27. Key/Valeu (Distributed Hash Table)
    Inside NoSQL
    D1
    Bom, temos 8 servidores e o dado com chave “f” vai estar... (calcula) no servidor D2
    a
    b
    C1
    c
    d
    D2
    e
    f
    C2
    g
    h
    ...
    ...
    Dn
    Cn
    M
    i
    j
    k
  • 28. Key/Valeu (Distributed Hash Table)
    Inside NoSQL
    D1
    a
    b
    Quero o dado “f”
    C1
    c
    d
    D2
    e
    f
    C2
    g
    h
    ...
    ...
    Dn
    Cn
    M
    i
    j
    k
  • 29. Key/Valeu (Distributed Hash Table)
    Inside NoSQL
    D1
    a
    b
    c
    d
    D2
    e
    f
    C1
    g
    h
    D9
    C2
    ...
    Chegou servidor novo!
    ...
    Dn
    Cn
    M
    i
    j
    k
  • 30. Key/Valeu (Distributed Hash Table)
    Inside NoSQL
    D1
    a
    b
    c
    d
    D2
    e
    f
    C1
    g
    h
    ReHash com 9 servidores agora!
    D9
    C2
    ...
    ...
    Dn
    Cn
    M
    i
    j
    k
  • 31. Key/Valeu (Distributed Hash Table)
    Inside NoSQL
    D1
    a
    d
    z
    k
    D2
    g
    h
    C1
    w
    q
    D3
    C2
    u
    f
    g
    h
    ...
    ...
    Dn
    Cn
    M
  • 32. NoSQL Live Boston
    Google IO
    NoSQLSummer
    NosqlDay 2011
    no:sql(east)
    no:sql(br).
    15/05/2010 São Paulo - SP
    http://nosqlbr.com/
    Eventos
  • 33. http://www.25hoursaday.com/weblog/
    http://highscalability.com/
    http://www.nosqlbr.com.br/
    http://escalabilidade.com
    http://www.slideshare.net/marin_dimitrov/nosql-databases-3584443
    http://www.sitepen.com/blog/2010/05/11/nosql-architecture/
    Referências
  • 34. Obrigado 
    @jornaljava