Replicação. Cleide Luzia Bonfim Possamai 03/05/2018

Documentos relacionados
Seminário apresentado em 29/06/2017 Disciplina: Sistemas Distribuídos Professora: Noemi Rodriguez Aluno: Ricardo Dias

Aula 04. Evandro Deliberal

NoSQL Apache Cassandra para DBAs. Conceitos básicos que todo DBA deve conhecer sobre Apache Cassandra.

Aluísio Augusto Silva Gonçalves 17 de maio de 2018

Aula 03. Evandro Deliberal

Bancos de Dados Distribuídos. Gabriel Resende Gonçalves 4 de fevereiro de 2014

Sistemas Distribuídos. Professora: Ana Paula Couto DCC 064

Replicação de servidores de banco de dados para garantir a disponibilidade do serviço (previsto na política de segurança).

Curso: Banco de Dados I. Conceitos Iniciais

Criando Transações. Prof. Fernanda Baião. TbEstoqueLivros. TbEstoqueLivros. ID IDLoja IDLivro Estoque

Alta Disponibilidade para pequenos, médios e grandes ambientes

Roteiro. Introdução Sincronização de Relógio Físico Sincronização de Relógio Lógico Exclusão Mútua

Bancos de Dados Distribuídos. Lucas Henrique Samuel Queiroz

Técnicas de Recuperação em Banco de Dados

Instituto Federal de Educação, Ciência e Tecnologia de São Paulo - IFSP

Controle de Transação

de Administração Guia Técnico Manual v6.1 - Alta-Disponibilidade

SISTEMAS DISTRIBUÍDOS

Banco de Dados I 6 Transações e Controle de Concorrência

Megastore: Solução para as crescentes exigências dos serviços na nuvem

falhas em sistemas distribuídos

Orientações. Transações - PostgreSQL. Relembrando: Propriedades desejáveis. Abrir Prompt de comando ROLLBACK

Comunicação entre Processos

Editores Colaborativos (Keepers)

Sistemas Distribuídos Capítulo 8 - Aula 14

Consistência e Replicação

Sumário. Introdução a Transações

Sistemas Distribuídos. abril de simbolopuc

BCD29008 Banco de dados

Bancos de Dados III. Replicação de Dados. Rogério Costa Replicação

Tabelas. Banco de Dados I MySQL

Bancos de Dados Distribuídos

BDII SQL TRANSAÇÃO Revisão 2

Sistemas Distribuídos. Professora: Ana Paula Couto DCC 064

BCD29008 Banco de dados

Introdução. O que é um Banco de Dados (BD)?

Introdução à Banco de Dados. Nathalia Sautchuk Patrício

Redes de Computadores

Lock. Administração de Banco de Dados

Vantagens do Backup Corporativo

1- Replicação de Dados - A replicação de dados permite lidar com falhas ao nível dos nós que impeçam o acesso

Sistemas Distribuídos. Ricardo Ribeiro dos Santos

Sistemas Distribuídos. abril de 2015

Evandro Deliberal Aula 04

Sistemas de Bases de Dados 2.º teste (com consulta limitada: 2 folhas identificadas) - Duração: 2 horas

Processamento de INDUSTRIA 4.0. Big Data. Aula #8 - Transações e concorrência MARMELADA NO RING, FONTE: ESTADAO EDUARDO CUNHA DE ALMEIDA

Projeto de Sistemas Distribuídos. Considerações

SISTEMAS DISTRIBUÍDOS E TOLERÂNCIA A FALHAS MESTRADO DE ENGENHARIA INFORMÁTICA 2013/2014 DOCENTE: PROF. DRª. PAULA PRATA

Formação de DBAs SQL Server 2008

Transacções. Vitor Vaz da Silva

Professor Leonardo Larback

Marcio Victorino. Análise de Informações TCU - TI

Atualização e Inserção de Dados. SQL Avançado. Pedro F. Carvalho OCP Oracle g

UNIVERSIDADE FEDERAL DO MARANHÃO - UFMA. Banco de Dados II. Recuperação. Carlos Eduardo Portela Serra de Castro

Replicação de Banco de Dados

Sistemas Distribuídos Aula 10

A instância Oracle é composta de :

Sistemas entre Pares e Redes Sobrepostas

Algoritmos de consenso distribuído. Edward Ribeiro

Sistemas Distribuídos Estados globais. Vinícius Fernandes Soares Mota

Sistemas Distribuídos. maio de simbolopuc

SGBD NoSQL 1. Dácio Alves Florêncio

1- Replicação de Dados - A replicação de dados permite lidar com falhas ao nível dos nós que impeçam o acesso

Processamento Paralelo

RAID. Redundant Array of Independent Disks

2 Fundamentos Replicação de Dados

Bancos de Dados Distribuídos. Bancos de Dados Distribuídos. Conteúdo. Motivação. Motivação. Introdução aos BDs Distribuídos.

Programação Paralela e Distribuída Lista de Exercícios P2 2008/1

BD II (SI 587) Backup de Banco de Dados. Josenildo Silva.

Sistemas Distribuídos

CASSANDRA: BANCO DE DADOS NÃO RELACIONAL DE ALTO DESEMPENHO

BANCO DE DADOS 2 TRANSAÇÃO

Sharding e replicação com Citus

APLICAÇÕES EM SISTEMAS DISTRIBUÍDOS Prof. Ricardo Rodrigues Barcelar

Sistemas Distribuídos. Professora: Ana Paula Couto DCC 064

Sistemas Distribuídos Capítulo 5 - Aula 8

Processamento de Transações

Sistemas Distribuídos Capítulo 8 - Aula 13

SQL Linguagem de Definição de Dados

Desmistificando Replicação no PostgreSQL

Sistemas de Bases de Dados 2.º teste (com consulta limitada: 2 folhas identificadas) - Duração: 2 horas

Processamento de Transações

SGBD. Funções Básicas de um SGBD

Replicação de Máquinas de Estado Baseada em Prioridade com PRaft

A U L A 1 0 C R I A N D O V I E W S V I E W S ( V I S Õ E S )

Cassandra no Desenvolvimento de Aplicações para serviços Móveis. por J.P. Eiti Kimura

Arquiteturas. Capítulo 2

Alta disponibilidade nativa do Microsoft SQL Server com o XtremIO

Banco de Dados. Maurício Edgar Stivanello

Sistemas de Arquivos Distribuídos. Bruno M. Carvalho Sala: 3F2 Horário: 35M34

SGBD. Definição. Funções básicas

Configurar servidores de raio externos no ISE

Administração de Banco de Dados. José Antônio da Cunha CEFET-RN

Sumário. Recuperação de Falhas

Sistemas Distribuídos

Transcrição:

Replicação Cleide Luzia Bonfim Possamai 03/05/2018

Agenda Conceito Motivação Principais abordagens Replicação single-leader Replicação multi-leader Replicação leaderless Modelos de consistência Conclusão

Conceito Replicação de dados consiste em manter cópias de dados em várias máquinas (réplicas*), conectadas através de uma rede. (*)Também chamadas de seguidoras, escravas, secundárias ou hot standbys)

Conceito Cada nó que armazena uma cópia é chamado de réplica. As atualizações precisam ser refletidas em todas as réplicas.

Motivação Menor latência: manter os dados geograficamente perto dos usuários. Maior disponibilidade: Permitir que o sistema continue funcionando mesmo que uma ou várias máquinas falhem. Escalabilidade: permite que as operações de leitura sejam feitas nas réplicas.

Motivação Apesar de ser conceitualmente simples, replicação de dados é uma tarefa desafiadora. Nós indisponíveis Interrupções de rede

Principais abordagens A mais comum é a replicação baseada no líder single leader (também conhecida como réplica ativo/passivo ou réplica mestre/escravo)

Replicação baseada no líder Uma réplica é designada como líder. Clientes enviam todas as operações de escrita para um único nó (líder) que envia essas alterações para as réplicas (followers) Cada réplica recebe o log e atualiza sua cópia local dos dados na mesma ordem em que ocorreram no líder.

Replicação baseada no líder As operações de leitura podem ser feitas na máquina líder ou nas réplicas. Escrita é somente na máquina líder. As seguidoras são somente-leitura do ponto de vista do cliente.

Replicação baseada no líder Usuário 1234 Configura nova foto em seu perfil consultas de leitura / gravação update users set Picture_url = me_new.jpg where user_id = 1234 Réplica líder Fluxos de replicações Alteração de dados table: users primary key: 1234 column: picture_url old_value: me_old.jpg new_value: me_new.jpg transaction: 987654321 Réplica Seguidora consultas somenteleitura select * from users where user_id = 1234 Réplica Seguidora Usuário 2345 Visualiza perfil do usuário 1234 Figura 2 - Replicação centrada no lider (mestre-escravo ou ativo-passivo)

Replicação baseada no líder Esse modelo é nativo em muitos BD relacionais: PostgreSQL (desde a versão 9.0), MySQL, Oracle Data Guard, SQL Server s AlwaysOn Availability Groups. Em alguns não relacionais: MongoDB, RethinkDB e Espresso.

Replicação Síncrona versus Assíncrona Um ponto importante a ser considerado é o momento em que a replicação ocorre: de forma síncrona ou assíncrona. Em BD relacionais normalmente é configurável Em outros sistemas é hardcoded

Replicação Síncrona versus Assíncrona Um ponto importante a ser considerado é o momento em que a replicação ocorre: de forma síncrona ou assíncrona. Em BD relacionais normalmente é configurável Em outros sistemas é hardcoded

Replicação Síncrona versus Assíncrona o líder espera até que o seguidor 1 confirme que recebeu a informação antes de exibir mensagem de sucesso para o usuário e antes de tornar a escrita visível a outros usuários Replica Usuário 1234 Configura nova foto em seu perfil consultas de leitura / gravação update users set Picture_url = me_new.jpg where user_id = 1234 Réplica líder Fluxos de replicações Alteração de dados table: users primary key: 1234 column: picture_url old_value: me_old.jpg new_value: me_new.jpg transaction: 987654321 Réplica Seguidora consultas somenteleitura select * from users where user_id = 1234 Réplica Seguidora Usuário 2345 Visualiza perfil do usuário 1234 Figura 3. Replicação baseada no líder com um seguidor síncrono e um seguidor assíncrono o líder só envia a mensagem e não aguarda resposta do seguidor 2. Replica

Replicação Síncrona versus Assíncrona A vantagem da replicação síncrona é a garantia de que o seguidor terá uma cópia atualizada e consistente com a do líder. Se o líder falhar, existe uma cópia no seguidor. Uma desvantagem é se o seguidor falha e não responde rapidamente, a escrita não pode ser processada. O líder bloqueia todos as operações de escrita e espera até que a réplica esteja disponível novamente.

Replicação Síncrona versus Assíncrona Normalmente uma das réplicas é síncrona, as demais são assíncronas. Se a síncrona falha, uma das outras se torna síncrona. Assim se garante cópia atualizada dos dados em pelo menos dois nós: no líder e na réplica síncrona.

Replicação Síncrona versus Assíncrona Mas é comum a replicação ser configurada como completamente assíncrona quando se tem muitas réplicas ou as mesmas estão geograficamente distribuídas. Neste caso se o líder falha, todas as operações de escrita não enviadas às réplicas são perdidas. A vantagem é que o líder continua processando operações de escrita, mesmo que todas as réplicas falhem.

Configurar novas réplicas Fazer um snapshot da base de dados do líder Copiar os dados para a nova réplica Nova réplica conecta-se ao líder e requisita todas as mudanças ocorridas desde que foi feito o snapshot.

Quando um seguidor falha Todas as réplicas possuem em seu disco local um log de alterações. Quando volta a operar, consulta qual foi a última transação ocorrida antes da falha. Conecta-se ao líder e requisita as últimas mudanças desde a falha.

Falha no líder (failover) Quando o líder falha, uma das réplicas é promovida a líder. Clientes e seguidores precisam ser reconfigurados para reconhecer o novo líder. Esse processo pode ser manual ou automático

Failover automático Reconhecer a falha no líder: Clientes e seguidores precisam ser reconfigurados para reconhecer o novo líder. Esse processo pode ser manual ou automático

Replicação com vários líderes (multi-leader) Os clientes enviam as requisições de escrita a vários nós líderes Qualquer um deles pode aceitar Os líderes enviam alterações para os demais líderes e para os nós seguidores.

Replicação com vários líderes (multi-leader) Exemplo de replicação multi-leader entre múltiplos datacenters.

Replicação com vários líderes - uso Operações entre vários datacenter Clientes com operação offline (ex. agenda) Edição colaborativa (ex. google docs, etherpad)

Replicação com vários líderes - desvantagens O mesmo dado pode ser modificado concorrentemente por dois datacenter diferentes Necessidade de mecanismos para resolução de conflitos

Resolução de conflitos Exemplo de conflito: dois líderes atualizam concorrentemente o mesmo registro

Resolução de conflitos Evitar o conflito: garantir que as requisições de um determinado usuário sejam enviadas a um mesmo datacenter/líder. Cada escrita recebe um ID único (ex.: timestamp, hash, chave-valor, etc.) e cada réplica também recebe um ID único. Escritas vindas da réplica com maior ID têm preferência

Resolução de conflitos Ordenar de alguma maneira e então concatenar. No exemplo da figura ficaria B/C. Gravar o conflito em alguma estrutura de dados e perguntar ao usuário qual a ordem correta

Resolução de conflitos Ordenar de alguma maneira e então concatenar. No exemplo da figura ficaria B/C. Gravar o conflito em alguma estrutura de dados e perguntar ao usuário qual a ordem correta

Resolução de conflitos Como a resolução de conflitos depende da aplicação, muitas soluções multi-leader permitem resolução de conflitos via código: Na escrita: sem interação com o usuário. Processo roda em background pra resolver os conflitos. Na leitura: os conflitos são identificados e armazenados. Na próxima leitura, a aplicação pode interagir com usuário ou resolver automaticamente o conflito.

Topologias de replicação multi-leader

Topologias de replicação multi-leader A mais comum é a topologia todos-para-todos. MySQL usa topologia circular, onde a operação de escrita vai passando de um nó para outro até atingir todos os nós. Na topologia estrela um nó raiz repassa as operações de escrita aos demais nós.

Topologias de replicação multi-leader A mais comum é a topologia todos-para-todos. MySQL usa topologia circular, onde a operação de escrita vai passando de um nó para outro até atingir todos os nós. Na topologia estrela um nó raiz repassa as operações de escrita aos demais nós.

Replicação leaderless Os clientes enviam cada requisição de escrita para vários nós e lêem de vários nós em paralelo de forma a detectar e corrigir nós com dados obsoletos. Em alguns casos, um nó coordenador envia as requisições de escrita, mas não força uma ordem de escrita. Conhecida como Dynamo Style é utilizada no Riak, Cassanda e Voldermort.

Replicação leaderless Não existe failover Exemplo de quorum write, quorum read e read repair depois de uma interrupção

Replicação leaderless Não existe failover A requisição é enviada para todas as 3 réplicas Mesmo que uma falhe e não realize a escrita, se duas responderem OK, a que falhou é ignorada.

Read repair e anti-entropia Depois de uma falha, quando volta ao aor a réplica fica com dados obsoletos. Para corrigir: Read repair: O cliente percebe que o dado é obsoleto e corrige naquela réplica. Anti-entropia: um processo em background procura dados obsoletos e faltantes nas réplicas

Quórum para leitura e escrita Como saber se a quantidade de réplicas que respondeu OK é suficiente? No exemplo n=3, w=2, r=2. Como w + r > n. w e r são o número mínimo de respostas necessárias.

Quórum para leitura e escrita Número tolerado de falhas: Se w < n = tolera-se um nó indisponível Se r < n = tolera-se um nó indisponível Se n=3, w=2, r=2, tolera-se um nó indisponível Se n=5, w=3, r=3, tolera-se dois nós indisponíveis

Exercícios 1) Descreva a diferença entre replicação síncrona e assíncrona, quando utilizar e as vantagens e desvantagens de cada uma.

Exercícios 2) Analise a situação apresentada na figura abaixo e descreva que tipo de abordagem pode ser adotada pra resolver o conflito