Replicação. Modelos de Consistência.

Documentos relacionados
Consistência e Replicação

Consistência e Replicação

O que é? É uma aplicação que consiste em 2 ou mais processos que executam em diferentes processadores que não partilham memória.

Concorrência. Sistemas Distribuídos e Tolerância a Falhas. Lia Ribeiro 1

Sistemas Distribuídos. Capítulo 7 - Aula 16

MEMÓRIA COMPARTILHADA DISTRIBUÍDA

Canais de Comunicação

Relógios Lógicos. Sumário. November 27, Relação Happened-Before. Relógios de Lamport. Relógios Vectoriais

Consistência e replicação. capítulo

Memória Compartilhada e Distribuída. _ Notas de Aula _ Prof. Tiago Garcia de Senna Carneiro DECOM/UFOP

Message Oriented Middleware (MOM)

Sistema de Software Distribuído

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

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

Sistemas Distribuídos

Arquiteturas. capítulo

Sistemas Distribuídos

Sistemas de arquivos distribuídos. ECO036 - Sistemas Paralelos e Distribuídos

Sistemas Distribuídos

Sistema de arquivos Distribuidos

Programação concorrente (processos e threads)

Sistemas de Ficheiros Distribuídos. Pedro Ferreira DI - FCUL

Eleição de leader e Exclusão Mútua

Visão do Usuário da DSM

Linguagem de Programação II

Modelos de Consistência e Replicação de Dados

Processos e Threads e em sistemas distribuídos. Prof. Me. Hélio Esperidião

Consistência. ncia. Sistemas Distribuídos e Tolerância a Falhas. Trabalho realizado por:

Arquitetura de Sistemas Operativos

Sumário. Message Oriented Middleware (MOM) Sincronização na Comunicação. Comunicação Assíncrona

Sistemas Distribuídos

TÓPICOS EM COMPUTAÇÃO APLICADA

SISTEMAS DISTRIBUÍDOS

Exclusão Mútua Distribuída. Algoritmos para eleição de um coordenador ou líder. UBI, DI, Paula Prata SDTF T04 1

Exclusão Mútua Distribuída. Algoritmos para eleição de um coordenador ou líder. UBI, DI, Paula Prata SDTF T04 1

SISTEMAS DISTRIBUÍDOS

Sistemas Distribuídos. Plano de Curso. Plano de Curso 04/03/12 ! EMENTA:

SISTEMAS DISTRIBUÍDOS PROCESSOS. Slides cedidos pela professora Aline Nascimento

Multiprocessamento. Escalonamento de Processos: Algoritmos. Escalonamento em POSIX. Escalonamento de Threads. Padrão de Execução dum Processo

Sistemas distribuídos. Prof. Emiliano Monteiro

Processos O conceito de processos é fundamental para a implementação de um sistema multiprogramável. De uma maneira geral, um processo pode ser entend

Sistemas Operativos: Concorrência

Curso de Sistemas Distribuídos

Processos ca 3 pítulo

Sistemas Operativos: Implementação de Processos

Sistemas Distribuídos

Estruturas de Sistemas Operacionais

Sistemas Distribuídos

Sistemas Distribuídos

Sistemas Distribuídos

Hierarquia de Memória

Programação de Alto Desempenho - 2. Prof: Carla Osthoff

Universidade Estadual de Mato Grosso do Sul UEMS Curso de Ciência da Computação Disciplina de Algoritmos Paralelos e Distribuídos

Cliente-servidor Código móvel Agentes de software Processos pares. Prof a Ana Cristina B. Kochem Vendramin DAINF / UTFPR

Transcrição:

Replicação. Modelos de Consistência. December 1, 2009 Sumário Introdução Questões Centrais da Replicação Modelos de Consistência

Replicação O que é? O uso de múltiplas cópias de dados ou serviços (e estado associado). Porquê? Essencialmente por razões de 3 ordens: 1. disponibilidade (availability): se um serviço não estiver acessível, pode-se tentar aceder a uma sua réplica; 2. fiabilidade (reliability): mantendo réplicas em locais distintos, a capacidade de sobrevivência dos dados a acidentes sérios, p.ex. tremores de terra, é maior; 3. desempenho (performance): a carga pode ser distribuída pelas diferentes réplicas, possivelmente mais próximas dos clientes. Replicação: Casos Particulares Caches tipicamente mantidas por clientes; procuram explorar a localidade de referência: posteriores acessos aos mesmos dados usarão a cópia local. Proxy servers mantêm também uma cache, que é partilhada por vários clientes; pressupõem localidade de referência, e principalmente homogeneidade dos clientes; permitem, ou facilitam, por exemplo: reduzir a latência na resposta a pedidos; utilizar mais eficientemente a largura de banda da rede; implementar políticas de segurança globais.

Replicação: Problemas Básicos Transparência. Consistência. Replicação: Transparência O acesso a serviços/dados replicados deverá ser semelhante ao de serviços/dados não replicados: um cliente deverá aceder a um serviço replicado da mesma maneira que a um serviço não-replicado, i.e. não precisa de saber que o serviço é replicado. E se o cliente fôr replicado? i.e. transparência é também um problema do servidor. Client replicates invocation request B1 Object receives the same invocation three times A B2 C All replicas see the same invocation B3 Replicated object

Replicação: Consistência Idealmente, a semântica dum serviço replicado deveria ser idêntica à dum serviço não-replicado. Process Process Process Local copy Distributed data store No mínimo, o valor das réplicas deverá convergir, se não se aplicar qualquer operação à variável replicada. Mas, Qual o valor final? Quais os valores (intermédios) visíveis? Consistência e Concorrência São problemas ortogonais: Problemas de concorrência são independentes da existência de múltiplas cópias. Problemas de consistência podem ocorrer mesmo que não haja concorrência i.e. mesmo que exista um único thread de execução: Répl. 1 Répl. 2 (5) // valor inicial (5) // valor inicial x = 2; (2) // valor final x += 3; (8) // valor final

Modelos de Consistência: O que são? Definição Um modelo de consistência é um contrato entre um sistema e os seus utilizadores: especificando resultado das operações que suporta na presença de replicação; assumindo que os utilizadores seguem determinadas regras. Conceptores de sistemas têm que escolher/conceber um modelo de consistência fácil de usar e com bom desempenho. Utilizadores de sistemas têm que conhecer o modelo de consistência suportado pelo sistema para evitar surpresas desagradáveis. Modelos de Consistência Consistência Estrita (Strict Consistency) Consistência Sequencial (Sequential Consistency) Consistência Fraca (Weak Consistency) One-copy Serializability Client-centric Consisteny Models Obs. Há muitos outros modelos de consistência.

Modelo de Consistência Estrita Definição Qualquer operação sobre uma variável x é aplicada ao valor mais recente dessa variável. x pode ser uma posição de memória ou um serviço. É irrealizável em sistemas distribuídos: Pressupõe que as alterações de x são totalmente ordenadas de acordo com um relógio global. É um problema semelhante ao que acontece no mundo real, quando consideramos que a velocidade de propagação de eventos é finita. Modelo de Consistência Sequencial (Lamport79) Definição Se o resultado duma execução fôr idêntico ao de uma execução sequencial das operações que constituem essa execução sendo as operações invocadas por qualquer thread executadas na ordem em que foram invocadas. Este é o modelo suportado por um sistema multithreaded executando num computador com um único processador. Contra-exemplo Sejam as seguintes operações executadas em 2 cópias distintas de 2 variáveis x e y, com valores iniciais 2 e 3: Répl. 1 Répl. 2 (2,3) (2,3) /* Valores iniciais */ x = y + 2; y = x + 3; (5,5) (5,5) /* Valores finais */ Qualquer que seja a sequência destas 2 operações, o resultado final não pode ser (5,5).

Weak Consistency Classe de modelos cujas garantias são pontuais: Procuram tirar vantagem da sincronização necessária para evitar race conditions, para garantirem também que as diferentes réplicas ficam com o mesmo valor. Foram propostos 2 modelos: Entry Consistency que garante que as variáveis usadas numa secção crítica são actualizadas à entrada dessa secção. Release Consistency que garante que as cópias de variáveis alteradas numa secção crítica são actualizadas à saída dessa secção. Presumem que dentro duma secção crítica se acede sempre à mesma réplica duma variável x. Entry Consistency: Exemplo P1: P2: Acq(Lx) W(x)a Acq(Ly) W(y)b Rel(Lx) Rel(Ly) Acq(Lx) R(x)a R(y) NIL P3: Acq(Ly) R(y)b Processos executam em processadores distintos. Cada variável (x, y) tem um lock associado (Lx, Ly).

Weak Consistency e Sequential Consistency Se todos os threads envolvidos sincronizarem de forma adequada, a execução dum sistema implementando qualquer dos modelos de consistência fraca é uma execução consistente sequencial. A vantagem é que a implementação é potencialmente mais eficiente: 1. as operações de sincronização informam o sistema de quando deverá tomar acções para garantir consistência; 2. cada uma destas acções pode reflectir o efeito de várias alterações. One-copy Serializability Definição Se o resultado da execução dum conjunto de transacções fôr idêntico ao de uma execução dessas transacções num sistema com uma única cópia. É o modelo de consistência mais usado em sistemas baseados em transacções. Note-se que este modelo resulta do modelo de consistência sequencial, quando as operações executadas por cada processo são transacções.

Client-centric Consistency Models (Terry et al. 94) Os modelos de consistência apresentados foram especificados assumindo acesso concorrente às réplicas: Em muitos cenários, as réplicas são acedidas por um único processo: Client moves to other location and (transparently) connects to other replica Replicas need to maintain client-centric consistency Wide-area network Portable computer Read and write operations Distributed and replicated database O uso de modelos de consistência mais relaxados oferece o potencial de maior desempenho. Read Your Writes (Terry et al. 94) Read Your Writes O efeito duma operação de escrita duma variável x por um processo é visto sempre numa posterior operação de leitura da mesma variável pelo mesmo processo. Notação x i Valor da variável no servidor i. Write-set de x i (WS(x i )) Conjunto de operações de escrita que conduziram ao valor x i. WS(x i ; x j ) Indica que WS(x i ) WS(x j ), i.e. que a operação de escrita que origina x j é realizada sobre uma cópia que inclui o conjunto de operações de escrita de x i. Exemplo Actualizar uma página Web e garantir que o browser mostra a versão mais recente, e não uma versão préviamente guardada na cache.

Monotonic Reads (Terry et al. 94) Monotonic Reads Se um processo lê o valor duma variável x, qualquer leitura posterior dessa variável pelo mesmo processo deverá retornar x ou um valor mais recente. Exemplo Consultas sucessivas duma caixa de correio replicada em diferentes servidores. A segunda consulta deve apresentar pelo menos as mensagens previamente apresentadas na primeira consulta (assumindo que nenhuma mensagem foi eliminada). Writes Follow Reads (Terry et al. 94) Writes Follow Reads (WFR) Uma operação de escrita duma variável x por um processo, posterior a uma operação de leitura dessa variável, alterará o valor previamente lido ou um valor mais recente. Exemplo Base de dados bibliográfica replicada em diferentes servidores. Um utilizador detecta um erro num elemento dessa base e corrige-o através duma operação de escrita. WFR garante que a correcção é realizada apenas sobre cópias com o elemento errado.

Client-centric Consistency Models (Terry+94) (3/3) Monotonic Writes Uma operação de escrita duma variável x por um processo completa antes da operação de escrita seguinte da mesma variável pelo mesmo processo. Exemplo Alterações sucessivas dum documento replicado. A segunda alteração deve ser realizada sobre uma réplica que inclua a primeira alteração. Leitura Adicional Capítulo 7 de Tanenbaum e van Steen, Distributed Systems, 2nd Ed. Secção 7.1: Introduction Secção 7.2: Data-Centric Consistency Models Secção 7.3: Client-Centric Consistency Models