Replicação. Modelos de Consistência.
|
|
|
- Sofia de Sintra Palmeira
- 8 Há anos
- Visualizações:
Transcrição
1 Replicação. Modelos de Consistência. December 1, 2009 Sumário Introdução Questões Centrais da Replicação Modelos de Consistência
2 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.
3 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
4 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
5 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.
6 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).
7 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).
8 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.
9 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.
10 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.
11 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
Consistência e Replicação
Consistência e Replicação Fernando Silva DCC-FCUP Fernando Silva (DCC-FCUP) Consistência e Replicação 1 / 33 Agenda Slides baseados nos slides de Maarten van Steen e no cap. 7 do seu livro com Andrew Tanenbaum.
Consistência e Replicação
Consistência e Replicação - Razões para a replicação - Replicação para obter escalabilidade - Modelos de consistência centrados nos dados 1 Razões para a replicação Fiabilidade - Enquanto pelo menos um
O que é? É uma aplicação que consiste em 2 ou mais processos que executam em diferentes processadores que não partilham memória.
Sumário: Introdução aos SD (Uma) Definição dum sistema distribuído (SD). Exemplos de SDs. Potenciais vantagens de SDs. Objectivos no desenvolvimento de SDs. Dificuldades/obstáculos no desenvolvimento de
Concorrência. Sistemas Distribuídos e Tolerância a Falhas. Lia Ribeiro 1
Concorrência Sistemas Distribuídos e Tolerância a Falhas Lia Ribeiro 1 Índice Consistência Atómica e sequencial Serializability Controle de concorrência One copy Serializability 2 Exclusão Mútua Técnica
Sistemas Distribuídos. Capítulo 7 - Aula 16
Sistemas Distribuídos Aula Passada Capítulo 7 - Aula 16 Comunicação Confiável de Grupo Multicast Atômico Sincronia Virtual Ordenação de Mensagens Recuperação Aula de hoje Modelos de Consistência Protocolos
MEMÓRIA COMPARTILHADA DISTRIBUÍDA
MEMÓRIA COMPARTILHADA DISTRIBUÍDA Sistemas Distribuídos 290 Formas de comunicação entre processos (IPC) Troca de mensagens originador: send(destinatário, dados) receptor receive(dados) Memória compartilhada
Canais de Comunicação
Canais de Comunicação February 24, 2010 Sumário Comunicação via Mensagens Propriedades dum Canal de Comunicação Protocolos da Internet UDP TCP Aplicação Distribuída O que é? É uma aplicação que consiste
Relógios Lógicos. Sumário. November 27, Relação Happened-Before. Relógios de Lamport. Relógios Vectoriais
Relógios Lógicos November 27, 29 Sumário Relação Happened-Before Relógios de Lamport Relógios Vectoriais Eventos Nem sempre é necessário ter relógios sincronizados: Muitas vezes, é suficiente estabelecer
Consistência e replicação. capítulo
Consistência e replicação capítulo 7 (i) Razões para replicação Confiança: Se um sistema de arquivos foi replicado, caso uma replica deixe de funcionar, é esperado que ele continue trabalhando normalmente
Memória Compartilhada e Distribuída. _ Notas de Aula _ Prof. Tiago Garcia de Senna Carneiro DECOM/UFOP
Introdução Memória Compartilhada e Distribuída _ Notas de Aula _ Prof. Tiago Garcia de Senna Carneiro DECOM/UFOP Um sistema de memória compartilhada faz a memória física global de um sistema igualmente
Message Oriented Middleware (MOM)
Message Oriented Middleware (MOM) November 1, 2009 Sumário Comunicação Assíncrona (MOM) Conceito Java Message Service Implementação Comunicação Assíncrona Problema: Nem sempre as entidades comunicantes
Sistema de Software Distribuído
Sistema de Software Distribuído É composto por uma sequência de instruções, que é interpretada e executada por um processador É composto por instruções concorrentes ou paralelas, que são interpretadas
Sistemas Distribuídos. Professora: Ana Paula Couto DCC 064
Sistemas Distribuídos Professora: Ana Paula Couto DCC 064 Consistência e Replicação Capítulo 7 Agenda Distribuição de Conteúdo Estado versus operações Protocolos de recuperação de atualizações versus protocolos
Sistemas Distribuídos. Professora: Ana Paula Couto DCC 064
Sistemas Distribuídos Professora: Ana Paula Couto DCC 064 Consistência Causal(3) Neste exemplo temos uma sequência de eventos permitida quando o depósito é consistente por causalidade, mas proibida quando
Sistemas Distribuídos
Sistemas Distribuídos Definição Sistema Distribuído é aquele onde os componentes de software e hardware localizados em redes de computadores comunicam-se e coordenam suas ações apenas por passagem de mensagens.
Arquiteturas. capítulo
Arquiteturas capítulo 2 Modelos de arquitetura de sistemas distribuídos Clientes realizam pedidos a servidores Client invocation invocation Server result Server result Client Key: Process: Computer: Modelos
Sistemas Distribuídos
Sistemas Distribuídos 2016.1 PROF. MARCIAL PORTO FERNANDEZ [email protected] PROF. ANDRÉ RIBEIRO CARDOSO [email protected] 1 5. Consistência e Replicação em SD 2 Sumário Introdução Modelos de
Sistemas de arquivos distribuídos. ECO036 - Sistemas Paralelos e Distribuídos
Sistemas de arquivos distribuídos ECO036 - Sistemas Paralelos e Distribuídos Sistemas de arquivos distribuídos - Daniel Nogueira 20938 - Felipe Castro Simões 21525 Sumário 1. Introdução 2. Sistemas de
Sistemas Distribuídos
UERN Sistemas Distribuídos Prof. André Gustavo [email protected] Sistemas Distribuídos Ementa: Conceitos relacionados com Sistemas Distribuídos. Mecanismos dos Sistemas Operacionais para suporte a distribuição.
Sistema de arquivos Distribuidos
Sistema de arquivos Distribuidos Luiz Carlos, Rafael Tavares, Aline Universidade Estacio de Sá 4 de novembro de 2013 (Universidade Estacio de Sá) Arquitetura de Sistemas 4 de novembro de 2013 1 / 16 Introdução
Programação concorrente (processos e threads)
Programação concorrente (processos e threads) Programação concorrente Por que precisamos dela? Para utilizar o processador completamente Paralelismo entre CPU e dispositivos de I/O Para modelar o paralelismo
Sistemas de Ficheiros Distribuídos. Pedro Ferreira DI - FCUL
Sistemas de Ficheiros Distribuídos Pedro Ferreira DI - FCUL Serviços do Sistema de Ficheiros Revisão de alguns aspectos do serviço de ficheiros O que é um ficheiro? uma sequência não interpretada de bytes
Eleição de leader e Exclusão Mútua
Eleição de leader e Exclusão Mútua November, 9 Sumário Leader Exclusão Mútua Leader O problema muitos algoritmos distribuídos pressupõem que um determinado processo desempenha um papel especial Por exemplo,
Visão do Usuário da DSM
Memória Compartilhada Distribuída Visão Geral Mecanismos tradicionais de comunicação via RPC/RMI ou mensagens deixam explícitas as interações entre processos Processos interagem para trocar dados de modo
Linguagem de Programação II
Linguagem de Programação II Carlos Eduardo Ba6sta Centro de Informá6ca - UFPB [email protected] Mo6vação Adaptar a estrutura lógica de um problema (Ex.: Servidores Web). Lidar com disposi6vos independentes
Modelos de Consistência e Replicação de Dados
Modelos de Consistência e Replicação de Dados Prof. Raul Ceretta Nunes Curso de Ciência da Computação ELC1018 - Sistemas Distribuídos 1 Introdução SD é adequado para replicação de dados Replicas devem
Processos e Threads e em sistemas distribuídos. Prof. Me. Hélio Esperidião
Processos e Threads e em sistemas distribuídos. Prof. Me. Hélio Esperidião Processos Sistemas operacionais modernos criam vários processadores virtuais, cada um para executar um programa. Para monitorar
Consistência. ncia. Sistemas Distribuídos e Tolerância a Falhas. Trabalho realizado por:
Sistemas Distribuídos e Tolerâ a Falhas Consistê Trabalho realizado por: Gonçalo Dias, Nº. 14638 João Tavares, Nº 14888 Rui Brás, Nº 14820 Consistê Índice Consistent Global States; Distributed Consensus;
Arquitetura de Sistemas Operativos
Arquitetura de Sistemas Operativos Sistemas Operativos 2011/2012 1 Threads Conceito Um processo é um programa em execução. A execução de um processo é sequencial: pode-se caracterizar um processo pelo
Sumário. Message Oriented Middleware (MOM) Sincronização na Comunicação. Comunicação Assíncrona
Sumário Message Oriented Middleware (MOM) October 16, 2008 Comunicação Assíncrona (MOM) Conceito Java Message Service Implementação Comunicação Assíncrona Problema: Nem sempre as entidades comunicantes
Sistemas Distribuídos
Sistemas Distribuídos Motivação Aplicações Motivam Possibilita Engenharia Motivação! Aplicações cada vez mais complexas! Qual a técnica mais comum para redução de complexidade? " Modularização Dividir
TÓPICOS EM COMPUTAÇÃO APLICADA
TÓPICOS EM COMPUTAÇÃO APLICADA Aula 6 Tecnologias para Sistemas Distribuídos Bacharelado em Ciência da Computação Professor MSc. Ariel da Silva Dias Complexo Educacional FMU Filosofia Computadores estão
SISTEMAS DISTRIBUÍDOS
SISTEMAS DISTRIBUÍDOS Capítulo 7 - Tempo e ordenação de eventos Material de suporte às aulas de Sistemas Distribuídos Copyright DI FCT/ UNL / 1 NOTA PRÉVIA A estrutura da apresentação é semelhante e utiliza
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 1 Suponhamos N processos, pi, i=1,2,,n que não partilham variáveis, mas que partilham algum recurso partilhado ao qual devem
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 1 Há situações em que os processos de um sistema distribuído necessitam de coordenar as suas ações: - quando há recursos partilhados,
SISTEMAS DISTRIBUÍDOS
SISTEMAS DISTRIBUÍDOS Capítulo 7 - Tempo e ordenação de eventos Material de suporte às aulas de Sistemas Distribuídos Copyright DI FCT/ UNL / 1 NOTA PRÉVIA A estrutura da apresentação é semelhante e utiliza
Sistemas Distribuídos. Plano de Curso. Plano de Curso 04/03/12 ! EMENTA:
Sistemas Distribuídos Prof. Msc. André Luiz Nasserala Pires [email protected]! EMENTA: Plano de Curso! Conceitos. Comunicação entre processos (IPC). Programação de aplicações cliente- servidor. Sincronização
SISTEMAS DISTRIBUÍDOS PROCESSOS. Slides cedidos pela professora Aline Nascimento
SISTEMAS DISTRIBUÍDOS PROCESSOS Slides cedidos pela professora Aline Nascimento INTRODUÇÃO Diferentes tipos de processos desempenham papel crucial em sistemas distribuídos. O conceito de um processo é
Multiprocessamento. Escalonamento de Processos: Algoritmos. Escalonamento em POSIX. Escalonamento de Threads. Padrão de Execução dum Processo
Sumário Multiprocessamento. Escalonamento de Processos: Algoritmos. Escalonamento em POSIX. Escalonamento de Threads. 1 Padrão de Execução dum Processo Processos (e threads) alternam: execução de instruções;
Sistemas distribuídos. Prof. Emiliano Monteiro
Sistemas distribuídos Prof. Emiliano Monteiro Múltiplos processadores São arquiteturas que possuem duas ou mais CPU interligadas e que funcionam em conjunto na execução de tarefas independentes ou no processamento
Processos O conceito de processos é fundamental para a implementação de um sistema multiprogramável. De uma maneira geral, um processo pode ser entend
Concorrência Nos sistemas Monoprogramáveis somente um programa pode estar em execução por vez, permanecendo o processador dedicado a esta única tarefa. Os recursos como memória, processador e dispositivos
Sistemas Operativos: Concorrência
Sistemas Operativos: Concorrência Pedro F. Souto ([email protected]) March 16, 2012 Sumário Race Conditions e Secções Críticas Exclusão Mútua via Programação Exclusão Mútua via Inibição de Interrupções. Locks
Curso de Sistemas Distribuídos
Curso de Sistemas Distribuídos Sistemas de Arquivos Distribuídos: DFS Estudo de Caso: NFS Sistemas Distribuidos Sistema de Arquivos Distribuídos - NFS 1 Autoria Autoria 1a versão C. Geyer Obs.: uso de
Processos ca 3 pítulo
Processos capítulo 3 Introdução: Threads Para executar um programa, o sistema operacional cria um determinado números de processos virtuais. O sistema operacional mantém uma tabela de processos que contém
Sistemas Operativos: Implementação de Processos
Sistemas Operativos: Implementação de Processos Pedro F. Souto ([email protected]) March 8, 2012 Sumário: Implementação de Processos Contexto (Estado) dum Processo Comutação de Processos Escalonamento de Processos
Sistemas Distribuídos
Sistemas Distribuídos LICENCIATURA EM COMPUTAÇÃO Prof. Adriano Avelar Site: www.adrianoavelar.com Email: [email protected] 1. Que são sistemas abertos? É um sistema que oferece serviços de acordo com
Estruturas de Sistemas Operacionais
Estruturas de Sistemas Operacionais Sistemas Operacionais - Tópicos Componentes do Sistema Serviços de Sistemas Operacionais Chamadas ao Sistema Estrutura do Sistema Máquinas Virtuais Chamadas ao Sistema
Sistemas Distribuídos
Faculdades SENAC Análise e Desenvolvimento de Sistemas 23 de fevereiro de 2011 Histórico Anos 50 - Sistemas Operacionais tipo Lote Aumentar a capacidade de processamento de programas Usuário ia ao computador
Sistemas Distribuídos
Caracterização de Faculdades SENAC Análise e Desenvolvimento de Sistemas 24 de fevereiro de 2010 Caracterização de Histórico Anos 50 - Sistemas Operacionais tipo Lote Aumentar a capacidade de processamento
Sistemas Distribuídos
Faculdades SENAC Análise e Desenvolvimento de Sistemas 1 de agosto de 2009 Introdução Instructor's Guide for Colouris et al. SDs de diferentes tipos compartilham importantes propriedades fundamentais e
Hierarquia de Memória
Hierarquia de Memória Introdução e Análise do Desempenho AC1 Hierarquia da Memória: Análise do Desempenho 1 Hierarquia de Memória A velocidade dos processadores tem aumentado muito mais rapidamente do
Programação de Alto Desempenho - 2. Prof: Carla Osthoff
Programação de Alto Desempenho - 2 Prof: Carla Osthoff E-mail: [email protected] 3- Modelos de programação paralela Shared Memory/Threads Posix Win32 treads OpenMP Message Passing MPI Data Parallel OpenCL/Cuda
Universidade Estadual de Mato Grosso do Sul UEMS Curso de Ciência da Computação Disciplina de Algoritmos Paralelos e Distribuídos
Universidade Estadual de Mato Grosso do Sul UEMS Curso de Ciência da Computação Disciplina de Algoritmos Paralelos e Distribuídos Pensando em Paralelo Pensar em paralelo é uma tarefa que exige disciplina
Cliente-servidor Código móvel Agentes de software Processos pares. Prof a Ana Cristina B. Kochem Vendramin DAINF / UTFPR
n n n n Cliente-servidor Código móvel Agentes de software Processos pares Prof a Ana Cristina B. Kochem Vendramin DAINF / UTFPR Arquiteturas em Sistemas Distribuídos Cliente- Servidor Client invocation
