SlideShare una empresa de Scribd logo
1 de 37
NoSQL (Not Only SQL) Nico Steppat [email_address]
Non-Relational DBMS http://www.slideshare.net/chrisbaglieri/non-relational-databases-2143723
Arquitetura / Tiers
Exemplo Tiers
Escalando o sistema
Escalando o sistema
Escalando Application Tier
Escalando Database Tier
Escalando Database Tier ???
Escalabilidade Horizontal  (Scale Out):  Vertical  (Scale Up):
Escalabilidade – Banco de Dados Relacionais Horizontal  (Scale Out):  Vertical  (Scale Up):
Escalabilidade Vertical - Scale Up ,[object Object]
Limitado
Lento:  ,[object Object]
Random-Acces
Escalabilidade Horizontal – Cache
Escalabilidade Horizontal – Replicação ,[object Object]
Síncrono, Assícrono
Read-Slave
Escalabilidade Horizontal – Replicação Multi-Slave ,[object Object]
Slaves – Leitura
Escrita??
Escalabilidade Horizontal – Replicação Multi-Master ,[object Object]
Escrita?
Escalabilidade Horizontal – Resumo ,[object Object]
Como escalar escritas?
TX distribuído não escala!
Escalabilidade Horizontal
Escalabilidade Horizontal – Shared Nothing
Shared Nothing - Sharding Scheme
Shared Nothing – Sharding Scheme
Escalabilidade Horizontal – Shared Nothing ,[object Object]
Normalização?
Integridade?
Chaves Compostas?
Alerações de esquema?
2-PC?

Más contenido relacionado

Similar a NoSQL e escalabilidade de bancos de dados não relacionais

[24HOP] SQL Server em maquinas virtuais do Windows Azure
[24HOP] SQL Server em maquinas virtuais do Windows Azure[24HOP] SQL Server em maquinas virtuais do Windows Azure
[24HOP] SQL Server em maquinas virtuais do Windows AzureVitor Tomaz
 
NoSQL, Base VS ACID e Teorema CAP
NoSQL, Base VS ACID e Teorema CAPNoSQL, Base VS ACID e Teorema CAP
NoSQL, Base VS ACID e Teorema CAPAricelio Souza
 
Escalando para os primeiros 10 milhões de usuários
Escalando para os primeiros 10 milhões de usuáriosEscalando para os primeiros 10 milhões de usuários
Escalando para os primeiros 10 milhões de usuáriosAmazon Web Services LATAM
 
DBA Brasil 2.0 NOSql Apache Cassandra para DBAs
DBA Brasil 2.0   NOSql Apache Cassandra para DBAsDBA Brasil 2.0   NOSql Apache Cassandra para DBAs
DBA Brasil 2.0 NOSql Apache Cassandra para DBAsRonaldo Leite Martins
 
Replicacao Object Sistemas
Replicacao Object SistemasReplicacao Object Sistemas
Replicacao Object Sistemastaniamaciel
 
L'esprit de l'escalier
L'esprit de l'escalierL'esprit de l'escalier
L'esprit de l'escalierGleicon Moraes
 
Seu banco de dados na nuvem: Opções de bancos de dados na AWS e padrões de...
Seu banco de dados na nuvem: Opções de bancos de dados na AWS e padrões de...Seu banco de dados na nuvem: Opções de bancos de dados na AWS e padrões de...
Seu banco de dados na nuvem: Opções de bancos de dados na AWS e padrões de...Amazon Web Services LATAM
 
Desenvolvendo para o Windows Azure e SQL Azure
Desenvolvendo para o Windows Azure e SQL AzureDesenvolvendo para o Windows Azure e SQL Azure
Desenvolvendo para o Windows Azure e SQL AzureLuciano Condé
 

Similar a NoSQL e escalabilidade de bancos de dados não relacionais (20)

Amazon Redshift
Amazon RedshiftAmazon Redshift
Amazon Redshift
 
Introducao ao Amazon Redshift
Introducao ao Amazon RedshiftIntroducao ao Amazon Redshift
Introducao ao Amazon Redshift
 
[24HOP] SQL Server em maquinas virtuais do Windows Azure
[24HOP] SQL Server em maquinas virtuais do Windows Azure[24HOP] SQL Server em maquinas virtuais do Windows Azure
[24HOP] SQL Server em maquinas virtuais do Windows Azure
 
C-Store 7 years later
C-Store 7 years laterC-Store 7 years later
C-Store 7 years later
 
NoSQL: Perdas e Ganhos
NoSQL: Perdas e GanhosNoSQL: Perdas e Ganhos
NoSQL: Perdas e Ganhos
 
NoSQL, Base VS ACID e Teorema CAP
NoSQL, Base VS ACID e Teorema CAPNoSQL, Base VS ACID e Teorema CAP
NoSQL, Base VS ACID e Teorema CAP
 
DynamoDB - Uma Introdução
DynamoDB - Uma IntroduçãoDynamoDB - Uma Introdução
DynamoDB - Uma Introdução
 
Escalando para os primeiros 10 milhões de usuários
Escalando para os primeiros 10 milhões de usuáriosEscalando para os primeiros 10 milhões de usuários
Escalando para os primeiros 10 milhões de usuários
 
DBA Brasil 2.0 NOSql Apache Cassandra para DBAs
DBA Brasil 2.0   NOSql Apache Cassandra para DBAsDBA Brasil 2.0   NOSql Apache Cassandra para DBAs
DBA Brasil 2.0 NOSql Apache Cassandra para DBAs
 
MAC5855 - NoSQL
MAC5855 - NoSQLMAC5855 - NoSQL
MAC5855 - NoSQL
 
Inovacao em-escala-final
Inovacao em-escala-finalInovacao em-escala-final
Inovacao em-escala-final
 
SQLSat #127
SQLSat #127SQLSat #127
SQLSat #127
 
Material Seminário NoSQL
Material Seminário NoSQLMaterial Seminário NoSQL
Material Seminário NoSQL
 
Replicacao Object Sistemas
Replicacao Object SistemasReplicacao Object Sistemas
Replicacao Object Sistemas
 
L'esprit de l'escalier
L'esprit de l'escalierL'esprit de l'escalier
L'esprit de l'escalier
 
Começando com Amazon Redshift
Começando com Amazon RedshiftComeçando com Amazon Redshift
Começando com Amazon Redshift
 
Seu banco de dados na nuvem: Opções de bancos de dados na AWS e padrões de...
Seu banco de dados na nuvem: Opções de bancos de dados na AWS e padrões de...Seu banco de dados na nuvem: Opções de bancos de dados na AWS e padrões de...
Seu banco de dados na nuvem: Opções de bancos de dados na AWS e padrões de...
 
Desenvolvendo para o Windows Azure e SQL Azure
Desenvolvendo para o Windows Azure e SQL AzureDesenvolvendo para o Windows Azure e SQL Azure
Desenvolvendo para o Windows Azure e SQL Azure
 
SQL over SMB3
SQL over SMB3SQL over SMB3
SQL over SMB3
 
Seminário - NoSQL
Seminário - NoSQLSeminário - NoSQL
Seminário - NoSQL
 

NoSQL e escalabilidade de bancos de dados não relacionais

Notas del editor

  1. Limitado (espaço + processamento) Criado há 25 anos atrais Fala da escalabilidade horizontal
  2. Disco gigantesco RAC, ScaleDB, PGCluster II Componentes caros, configuracao nao simples, solucoes caros Muda nada para o DBA, modelo igual. Todas as funcoes continuem igual. É bacana, mas complexo. Cloud??
  3. * Separando os dados em fatias * Table partitioning ou Functional Sharding * 3 bancos diferentes (recursos, tipos) * dbs menores são mais facil de gerenciar, sao simples e mais rapido - gasto!
  4. Functional Sharding continuacao 3 Range based sharding ( nome do cliente, data, id) Separando mais ainda Espalhando as escritas mais ainda Separando hot e cold data (vendas) – bom e ruim Joins distribuidos? Normalização (exemplo endereco)?
  5. Hash based, nao é mais functional Key para algum valor? Qual seria a estrutura desse valor? Escalabilidade linear!!!! Mesma tarefa para todos os shards
  6. 1) Joins são custosos, aplicacao fez já que cada componente só conhece os seus dados 2) Para evitar os joins podemos denormalizar (endereço). Parece loco 3) Não tem mais como garantir integridade pelo banco, o banco tem apenas fatias. Nao enxerga mais o outro lado. 4) Tem uma separacao funcional, chaves auxiliares faciltam muito o espalhamento. 5) esquema pode ser alterado ao vivo (dependendo do banco isso já é possivel) – mas aqui é mais facil, pq o modelo é mais facil. 6) podemos usar tx distribuido (JTA). nao vai ter tx distribuido (gargalho), desempenho da sua aplicacao é a soma do compenente mais devagar. A) Banco faz primeiramente a persistencia, nao tem mais o poder comun, perdeu varios funcoes comuns B) aplicacao assume mais responsibilidade para cuidar os dados. O banco é ainda relacional?
  7. O desafio está na distribuicao dos dados, bds tradicionais nao foram concipados para isso. Foram concipados e creseram cuidadando os dados, dando garantias fortes. Aqui os bancos relacionais falham ou precisam de ajuda de um SAN – com tradeoff claro. Banco? É mais um armazenamento de chave-valor, um lugar onde vc associar uma chave como um valor. Modelo: key-blob, sempre suficiente bd foram otimizados para OLAP mas nao par OLTP Como replica os dados? Replication factor.... Como espalhar os dados (evitando quente e hot)? Consistent hashing ..... Como gerenciar o cluster? Passando configuracoes? Escalando o cluster elasticamente.
  8. ACID é um modelo facil de programar cheio de garantias. É bom para nos programadores e desejavel. Replicação sincrona – consistente forte Replicação – aumenta a diponibilidade Piora com 2-phase-commit que tenta levar os mesmos garantias para o cluster.
  9. Importante aqui: para o cliente o cluster é uma coisa só, é uma particicao de rede (nao dados) Cluster com os meus shards JBoss – partition cluster
  10. Network partitions acontecem, e sao mais provaveis quanto maior o seu cluster. Datacenter separados, mas no mesmo datacenter – cabo quebrou, routeador queimou. Lidar com esses tipos de problema se chama „Toleranca referente as particioes na rede“
  11. Brewer é da universidade Berkeley. „ estou criando com minha empresa um banco distribuitdo, e percibi seguinte ESCOLHE DOIS. acho que isso é um lei. Ou seja nao tem como fugir “ Fez o keynote na conferência „Principles of Distribiuted Computing“. 3 atributos arquiteturais para um sistema que é stateful e distribuido. É lei e já foi comprovado. Fala que essa regra é sobre garantias. É impossível garantir os tres.
  12. Amazon RDS Fala do backup no S3, fala do downtime, fala do failure rate Nao tem garantia que isso nao acontessse, mas pode diminiur a chance. Administracao, qualidade dos componentes. Pode diminiur a chance que isso acontesse. Gastos!!! mas nao tem garantias. Cluster deve funcionar com hardware comun! Nosso design da banco deve funcionar pra qq tipo de hardware...
  13. Nossos bancos tradicionais sao fortemente consistente e altamente disponiveis. Outro sistema com os mesmos propridades é um LDAP. Nunca serao partition tolerante.sistema para de funcionar.
  14. Quanto maior o seu cluster mais provavel de partitions. Caro e complexo de evitar (nao tem garantais). Bancos tradicionais nao foram concipados para isso. Foram concipados para OLAP uns 25 anos atrais. ACID te dar garantias fortes que talvez nao funcionam no seu cluster. Carrinho – stateful Altamente disponivel – availability Cluster enorme – partition tolerante Escreve dois artigos famosos
  15. Always writable Isso nao é locura e uma consequencia. Nao tem jeito. Dynamo é a base para varios servicos no amazon, s3 de mesmo jeito.