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
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. Por que Distribuir?
§
Aumento do volume de dados.
§
Custo dos servidores
§
Dificuldade de adaptação de um novo servidor.
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. 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. 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. 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. 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. 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. Consistência de Atualização
§
Update (conflito de gravação)
§
Pessimista → Locks
§
Otimista → Detecção de Erros
§
Single-Server → Serialização
§
Distributed System
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. 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. 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. 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. 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. 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.