Modelos de Distribuição e
Consistência
Edson de Lima (ebl4@cin.ufpe.br)
Gabriela de Andrade (gcpa@cin.ufpe.br)
João Farias...
Por que Distribuir?
§
Aumento do volume de dados.
§
Custo dos servidores
§
Dificuldade de adaptação de um novo servidor.
Replication e Sharding
§
Replication: faz copia os dados em vários nós.
§
Pode ser do tipo Peer-to-peer ou Master-Slave.
§...
Single Server
§
Executa todas as operações de leitura e gravação de dados
em uma única máquina.
§
Mais simples de gerencia...
Sharding
§
Modelo em que o banco de dados é dividido e fragmentos e
armazenados em instâncias de servidor.
§
Desenvolvimen...
Master-Slave Replication
§
Replica todos os dados em vários nós e escolhe um deles
para ser o Mestre, o restante tornam-se...
Peer-to-Peer Replication
§
Semelhante ao Master-slave, porém todos são mestres.
§
Problemas de consistência devido a possi...
Sharding e Replication
§
União de master-slave com sharding.
§
Vários nós em um cluster com fragmentação dos dados
sobre e...
Consistência de Atualização
§
Update (conflito de gravação)
§
Pessimista → Locks
§
Otimista → Detecção de Erros
§
Single-S...
Consistência de Leitura
§
Read-Write Conflict
Consistência de Leitura
§
Consistência Lógica.
Ø SGBDs relacionais → Transições.
Ø (Maioria) dos NoSQL → Janela de inconsi...
Consistência de Leitura
§
Quando se adiciona réplicas.
Ø Consistência da replicação.
Ø Mesmos itens de dados → Mesmo valor...
Consistência de Leitura
§
Quando se adiciona réplicas.
Ø Inconsistência consigo devido a janela de inconsistência
●
“Onde ...
Relaxamento de Consistência
§
Consistência tem um custo
§
Tradeoff: Performance e habilidade de fragmentar
§
Teorema CAP
Ø...
Relaxamento de Consistência
§
Distribuição de sistemas.
Ø Tem tolerância a partição.
Ø Tradeoff entre consistência e dispo...
Durabilidade
§
Sessão do usuário.
Ø In-memory.
Ø Pode perder sessão.
Ø Mas é melhor que um site lento.
§
Sistemas Distribu...
Quorum
§
Quanto mais nós, mais consistência
§
Escrever no quaruim: W > N / 2.
Ø W -> Nós na gravação.
Ø N -> Fator de Repl...
Próximos SlideShares
Carregando em…5
×

Modelos de Distribuição e Consistência

203 visualizações

Publicada em

Apresentação da cadeira Banco de Dados Avançados, ministrada pela professora Valéria Times, no Centro de Informática - UFPE.

Foram apresentados motivos para distribuir dados em vários servidores, estratégias para fazê-lo e os tradeoffs que devem ser considerados em cada modelo.

Licença: CC BY-NC-SA 2.5

Publicada em: Dados e análise
0 comentários
0 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Sem downloads
Visualizações
Visualizações totais
203
No SlideShare
0
A partir de incorporações
0
Número de incorporações
4
Ações
Compartilhamentos
0
Downloads
1
Comentários
0
Gostaram
0
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Modelos de Distribuição e Consistência

  1. 1. Modelos de Distribuição e Consistência Edson de Lima (ebl4@cin.ufpe.br) Gabriela de Andrade (gcpa@cin.ufpe.br) João Farias (jgfd@cin.ufpe.br) Leonardo Borges (lrb@cin.ufpe.br)
  2. 2. Por que Distribuir? § Aumento do volume de dados. § Custo dos servidores § Dificuldade de adaptação de um novo servidor.
  3. 3. Replication e Sharding § Replication: faz copia os dados em vários nós. § Pode ser do tipo Peer-to-peer ou Master-Slave. § Sharding: copia dados diferentes em diferentes nós.
  4. 4. Single Server § Executa todas as operações de leitura e gravação de dados em uma única máquina. § Mais simples de gerenciar e desenvolver aplicações. § É o mais comum e mais recomendado devido a sua praticidade.
  5. 5. Sharding § Modelo em que o banco de dados é dividido e fragmentos e armazenados em instâncias de servidor. § Desenvolvimento não muito trivial. § Dificuldade de distribuir todas as consultas para os fragmentos. § Auto-Sharding – Recurso oferecido por alguns NoSQLdatabases. § É mais impactante no processo de leitura do que no de escrita. § É mais difícil e caro de manter todos os servidores em bom funcionamento
  6. 6. Master-Slave Replication § Replica todos os dados em vários nós e escolhe um deles para ser o Mestre, o restante tornam-se escravos. § O mestre é responsável por atualizar os escravos. § Útil para um sistema de leitura intensa. § Se o mestre falhar os escravos ainda dão conta das solicitações de leitura, porem impossibilita escrita. § Mestres podem ser nomeados automaticamente ou manualmente. § Replicação
  7. 7. Peer-to-Peer Replication § Semelhante ao Master-slave, porém todos são mestres. § Problemas de consistência devido a possibilidade de dis usuários alterarem o mesmo nó.
  8. 8. Sharding e Replication § União de master-slave com sharding. § Vários nós em um cluster com fragmentação dos dados sobre eles
  9. 9. Consistência de Atualização § Update (conflito de gravação) § Pessimista → Locks § Otimista → Detecção de Erros § Single-Server → Serialização § Distributed System
  10. 10. Consistência de Leitura § Read-Write Conflict
  11. 11. Consistência de Leitura § Consistência Lógica. Ø SGBDs relacionais → Transições. Ø (Maioria) dos NoSQL → Janela de inconsistência.
  12. 12. Consistência de Leitura § Quando se adiciona réplicas. Ø Consistência da replicação. Ø Mesmos itens de dados → Mesmo valor quando lido por réplicas diferentes
  13. 13. Consistência de Leitura § Quando se adiciona réplicas. Ø Inconsistência consigo devido a janela de inconsistência ● “Onde está meu comentário?” Ø Consistência Read-Your-Writes ● Afinidade de Sessão
  14. 14. Relaxamento de Consistência § Consistência tem um custo § Tradeoff: Performance e habilidade de fragmentar § Teorema CAP Ø Consistência Ø Disponibilidade ● Se você falar de um nó, esse nó pode ler e escrever Ø Tolerância a Partição ● Cluster sobrevive a quebra de outras partições § Só se pode ter duas das três acima.
  15. 15. Relaxamento de Consistência § Distribuição de sistemas. Ø Tem tolerância a partição. Ø Tradeoff entre consistência e disponibilidade. Ø Exemplo: § Comunicação para garantir a consistência e disponibilidade de mortes. § Melhora-se na disponibilidade usando um Mestre. Ø Na prática, § Não consistência vs disponibilidade, mas consistência vs latência. § Adicionar nós para garantir a consistência aumenta o tempo de resposta. Ø latência muito alta? Dados indisponíveis.
  16. 16. Durabilidade § Sessão do usuário. Ø In-memory. Ø Pode perder sessão. Ø Mas é melhor que um site lento. § Sistemas Distribuídos Ø Falha na replicação da durabilidade. ● O nó processa uma atualização, mas falha em replicar aos outros nós. Ø Falha do master-slave. § O Mestre irá voltar rápido? Ø Sim: Não mudar de Mestre Automaticamente Ø Não: Deve-se espera os escravos serem atualizados antes de responder ao cliente
  17. 17. Quorum § Quanto mais nós, mais consistência § Escrever no quaruim: W > N / 2. Ø W -> Nós na gravação. Ø N -> Fator de Replicação. § Quorum de Leitura § Consistência Forte: R + W > N § Peer-to-Peer § Master-slave: Lê e escreve sobre o mestre.

×