Sistemas Distribuídos Aula 20
|
|
|
- Raphael Bardini Beretta
- 8 Há anos
- Visualizações:
Transcrição
1 Sistemas Distribuídos Aula 20 Aula passada Redes sem fio Coordenando acesso ao meio Eleição de líder Aula de hoje Sistema transacional ACID Exemplos 2-Phase Locking
2 Sistema Transacional Considere sistema com muitos objetos (dados) possivelmente distribuídos em diferentes comp. Valor de todos objetos define estado global Operação de leitura e escrita simultânea dos objetos (multithreaded ou multiprocessed) chamada de transações Transação pode ser complexa, diversas partes ler diversos valores, escrever diversos valores, condicionamente Exemplo canônico: Bando de Dados Como garantir bom funcionamento?
3 Propriedades das Transações Ideia: construir sistema cujas transações oferecem determinadas propriedades facilita uso do sistema, garante corretude ACID: Atomicity, Consistency, Isolation, Durability Atomicity: transação completa por inteiro ou é abortada por inteiro. Em caso de aborto, estado global não é modificado Consistency: cada transação preserva propriedades do estado global (propriedades dependem do sistema) ex. sistema bancário preserva soma dos saldos
4 Propriedades das Transações Isolation: transação executa como se fosse a única no sistema (ao ler/escrever dados). Serializable, thread-safe: transações ocorrem uma depois da outra. Durability: ao concluir uma transação (commit), sistema passa a novo estado global que permanece, independente de eventos externos (ex. falta de energia) Modelo clássico (70s, por Jim Gray) e mais utilizado por SGBDs Como garantir ACID?
5 Exemplo Bancário Três funções: retirada, depósito, e transferência Transferência usa retirada e depósito transação composta de outras transações retirada(conta, valor) { saldo = get_saldo(conta) saldo = saldo valor se (saldo > 0) put_saldo(conta, saldo) retorna saldo deposito(conta, valor) { saldo = get_saldo(conta) saldo = saldo + valor put_saldo(conta, saldo) retorna saldo transferencia(c1, c2, v) { se (retirada(c1,v) >= 0) deposito(c2,v)
6 Exemplo Bancário Considere saldo(x)=100, saldo(y)=saldo(z)=0 Duas transações T1= transf(x,y,60), T2= transf(x,z,70), simultâneas Sobre ACID, qual é o resultado? Temos uma condição de corrida? retirada(conta, valor) { saldo = get_saldo(conta) saldo = saldo valor se (saldo > 0) put_saldo(conta, saldo) retorna saldo deposito(conta, valor) { saldo = get_saldo(conta) saldo = saldo + valor put_saldo(conta, saldo) retorna saldo transferencia(c1, c2, v) { se (retirada(c1,v) >= 0) deposito(c2,v)
7 ACID não Vem de Graça O que acontece se não fizermos nada? Duas retiradas simultâneas (já vimos este filme) saldo(x)=40 ou 30, saldo(y)=60, saldo(z)=70 Viola atomicidade(a) e consistência(c): soma dos saldos deve ser constante retirada(conta, valor) { saldo = get_saldo(conta) saldo = saldo valor se (saldo > 0) put_saldo(conta, saldo) retorna saldo deposito(conta, valor) { saldo = get_saldo(conta) saldo = saldo + valor put_saldo(conta, saldo) retorna saldo transferencia(c1, c2, v) { se (retirada(c1,v) >= 0) deposito(c2,v)
8 Garantindo ACID Como garantir ACID? Locks to the rescue! Locks na função de transferência transferencia(c1, c2, v) { acquire(t) se (retirada(c1,v) >= 0) deposito(c2,v) release(t) release(t) Funciona? Garante ACID? Sim, mas muito ineficiente! Permite apenas uma transferência no sistema de cada vez t é variável global Como melhorar?
9 Tentativa 1 Usar um lock por cada conta! transferencia(c1, c2, v) { acquire(c1) se (retirada(c1,v) >= 0) release(c1) acquire(c2) deposito(c2,v) release(c2) release(c1) Funciona? Garante ACID? Não, não oferece consistência entre release(c1) e acquire(c2), soma dos saldos não está preservada Como fazer funcionar?
10 transferencia(c1, c2, v) { acquire(c1) se (retirada(c1,v) >= 0) acquire(c2) deposito(c2,v) release(c1) release(c2) release(c1) Tentativa 2 Usar um lock por cada conta! Pegar locks em sequência, liberar em sequência, após transação Funciona? Não, podemos ter deadlock saldo(x)=saldo(y)=100 T1= transf(x,y,30), T2= transf(y,x,20) O que pode acontecer? Como fazer funcionar?
11 Tentativa 3 Usar um lock por cada conta! Pegar locks em sequência, liberar em sequência, após transação Pegar locks em alguma ordenação global transferencia(c1, c2, v) { acquire(min(c1,c2)) acquire(max(c1,c2)) se (retirada(c1,v) >= 0) deposito(c2,v) release(c1) release(c2) release(c1) release(c2) saldo(x)=saldo(y)=100 T1= transf(x,y,30), T2= transf(y,x,20) O que vai acontecer? Funciona!
12 Two Phase Locking (2PL) Garantir ACID de forma geral não é fácil 2PL: mecanismo para controle de concorrência garante atomicidade (e outras coisas) Utiliza dois tipos de lock para cada objeto (dado) read locks, write locks read lock permite outro read lock, mas não write lock write lock não permite nenhum outro lock Duas fases, para cada transação: Fase 1 (Expanding): locks são adquiridos, nenhum é liberado Fase 2 (Shrinking): locks são liberados, nenhum é adquirido
13 Two Phase Locking (2PL) Duas variações do 2PL Strict Two Phase Locking (S2PL) fase 1 igual, fase 2: liberar todos os write locks apenas ao final da transação Strong Strict Two Phase Locking (SS2PL) fase 1 igual, fase 2: liberar todos os read e write locks apenas ao final da transação mais comum, oferece melhores propriedades
14 Duas Fases da Transação SS2LP implementado dividindo transação em duas fases Fase 1: Preparação adquirir locks de leitura e determinar tudo que é necessário para alterar estado global gerar lista com mudanças no estado global adquirir locks de escrita Fase 2: Commit ou Abort atualizar estado global, se tudo correu bem abortar a transação sem modificar estado global, se algum imprevisto ocorreu liberar todos os locks
15 Exemplo SS2LP implementado dividindo transação em duas fases Melhor desempenho, facilita gerenciamento transferencia(c1, c2, v) { L={c1,c2 // locks U={ // updates acquire(l) s1 = get_saldo(c1) s2 = get_saldo(c2) se (s1 - v >= 0) s1 = s1 v s2 = s2 + v U ={ put_saldo(c1,s1), put_saldo(c2,s2) commit(u,l) abort(l) acquire(l): obtém todos os locks em L em alguma ordenação global commit(u,l): realiza todas as operações em U e libera todos os locks em L abort(l): libera todos os locks em L
Sistemas Distribuídos Transações
Sistemas Distribuídos Transações Vinícius Fernandes Soares Mota 1 2 Transações Transação: Unidade lógica de trabalho abrange um conjunto de operações de manipulação de dados que executam uma única tarefa
Gerenciamento de Transações em Banco de Dados
Gerenciamento de Transações em Banco de Dados Daniela Barreiro Claro MAT A60 Aula 13 Introdução à Transação 2 Transação É uma coleção de operações que formam uma única unidade lógica As transações acessam
Sistemas Distribuídos
Sistemas Distribuídos Transações atômicas Conteúdo O modelo transacional Armazenamento estável Primitivas transacionais Propriedades das transações Transações aninhadas Implementação Área de trabalho privada
Banco de Dados I 6 Transações e Controle de Concorrência
Banco de Dados I 6 Transações e Controle de Concorrência Grinaldo Lopes de Oliveira (grinaldo( [email protected]) Curso Superior de Tecnologia em Análise e Desenvolvimento de Sistemas * Material com créditos
Controle de Transação
Curso: Ciência da Computação Disciplina: Banco de Dados Campus Lages Controle de Transação Prof. Edjandir C. Costa [email protected] Agenda Conceitos de transação e sistema Propriedades desejáveis
BD II (SI 587) Controle de Concorrência. Josenildo Silva.
BD II (SI 587) Controle de Concorrência Josenildo Silva [email protected] Nota Estes slides são baseados nos slides disponibilizados pelos autores ELMASRI e NAVATHE, para o livro Sistemas de Banco de
revisão Controle de Concorrência com Locks Bancos de Dados I 2015/02
Bancos de Dados I 2015/02 revisão Controle de Concorrência com Locks Transações em SQL Prof. Altigran Soares da Silva Atomico=transaction manager Consistencia=controle concorrencia/commit Isolamento=controle
Sistemas Distribuídos Aula 5
Sistemas Distribuídos Aula 5 Aula passada Sincronização Race condition Região crítica Locks Algoritmo de Peterson Aula de hoje Atomicidade test-and-set Locks revisitado Semáforos Dois problemas Atomicidade
TRANSAÇÕES E CONTROLE DE CONCORRÊNCIA Em resumo: Transações: clientes podem necessitar que um servidor execute uma sequência de requisições de forma a
Transações Transações Uma transação é um conjunto de operações que deve ser executado de forma atômica Atômica : se um erro ocorre no meio da transação, devemos voltar ao estado consistente anterior. Atômica
Sistemas de Informação e Bases de Dados 2012/2013. Transações. Alberto Sardinha
Sistemas de Informação e Bases de Dados 2012/2013 Transações Alberto Sardinha Sumário! Conceito de Transação! Propriedades ACID! Transações em SQL! Referências Raghu Ramakrishnan, Database Management Systems,
Sistemas de Bases de Dados 2.º teste (com consulta limitada: 2 folhas identificadas) - Duração: 2 horas
DI-FCT/UNL 6 de junho de 2018 Sistemas de Bases de Dados 2.º teste (com consulta limitada: 2 folhas identificadas) - Duração: 2 horas Nome: Grupo 1 (7 valores) 1 a) Quais são as 4 propriedades ACID que
Técnicas de Controle de Concorrência
Técnicas de Controle de Concorrência Principais Técnicas bloqueio (locking) timestamp Técnicas Baseadas em Bloqueio Técnicas mais utilizadas pelos SGBDs Princípio de funcionamento controle de operações
Processamento de Transações. Banco de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri
Processamento de Transações Banco de Dados Introdução Ambiente multiusuário vários usuários utilizam o mesmo sistema ao mesmo tempo múltiplos programas (transações) compartilham a mesma CPU Forma de execução
BDII SQL TRANSAÇÃO Revisão 2
exatasfepi.com.br BDII SQL TRANSAÇÃO Revisão 2 André Luís Duarte Honra a teu pai e a tua mãe (que é o primeiro mandamento com promessa), para que te vá bem, e sejas de longa vida sobre a terra.(ef 6:2,3)
Processamento de Transações. Laboratório de Bases de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri
Processamento de Transações Laboratório de Bases de Dados Introdução Ambiente multiusuário vários usuários utilizam o mesmo sistema ao mesmo tempo múltiplos programas (transações) compartilham a mesma
Processamento de Transações
Processamento de Transações Processamento de Transações Transações Atômicas: Unidades lógicas de processamento sobre um banco de dados. Controle de Concorrência: Garantia de que múltiplas transações ativadas
Processamento de Transações
Processamento de Transações Processamento de Transações ) Transações Atômicas: Unidades lógicas de processamento sobre um banco de dados. ) Controle de Concorrência: Garantia de que múltiplas transações
GBC043 - Sistemas de Banco de Dados Lab8 : Transações no PostgreSql
GBC043 - Sistemas de Banco de Dados Lab8 : Transações no PostgreSql Ilmério Reis da Silva [email protected] www.facom.ufu.br/~ilmerio/sbd UFU/FACOM/BCC Transações Ver conjunto de slides na opção Transações
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
Concorrência. Prof. Márcio Bueno. Material do Prof. Paulo Pires
Concorrência Prof. Márcio Bueno {bd2tarde,bd2noite}@marciobueno.com Material do Prof. Paulo Pires Controle de Concorrência SGBD sistema multiusuário em geral diversas transações executando simultaneamente
Processamento de Transações
Arquitetura de Banco de Dados Processamento de Transações Carolina Nogueira Marcelo Eduardo Cardoso Rodrigo Dlugokenski Vítor De Araújo Bancos de dados Single-users versus Multiusers classificação baseada
Técnicas de Controle de Concorrência
Técnicas de Controle de Concorrência Pessimistas supõem que sempre ocorre interferência entre transações e garantem a serializabilidade enquanto a transação está ativa técnicas bloqueio (locking) timestamp
Instituto Federal de Educação, Ciência e Tecnologia de São Paulo - IFSP
Instituto Federal de Educação, Ciência e Tecnologia de São Paulo - IFSP Campus de Caraguatatuba Tecnólogo em Análise e Desenvolvimento de Sistemas 1 0 Semestre de 2013 BD I Prof. Lineu Mialaret Aula 25:
Sistemas Distribuídos Aula 7
Sistemas Distribuídos Aula 7 Aula passada Atomicidade Test-and-set Locks revisitado Semáforos Dois problemas Aula de hoje Limitação dos semáforos Monitores Variáveis de condição Semântica do signal Sincronização
Banco de Dados. Controle de Concorrência e Recuperação de Transação. Prof. João Eduardo Ferreira Prof. Osvaldo Kotaro Takai
Banco de Dados Controle de Concorrência e Recuperação de Transação Última atualização: 20 de janeiro de 2006 Prof. João Eduardo Ferreira Prof. Osvaldo Kotaro Takai Tópicos Modelo Transacional Clássico
Aula 03. Evandro Deliberal
Aula 03 Evandro Deliberal [email protected] https://www.linkedin.com/in/evandrodeliberal Concorrência Método Sincronização Problemas: Perda de consistência Acesso a dados inconsistentes Perda de atualizações
Introdução a Banco de Dados
Introdução a Banco de Dados Prof. Mário A. Nascimento, Ph.D. [email protected] http://www.dcc.unicamp.br/~mario Material de autoria original de Raghu Ramakrishnan. 1 Bibliografia Ramakrishnan R., Database
Controle de Concorrência
Controle de Concorrência Protocolos de Bloqueio Protocolo com base em Timestamps Protocolos Multi-versão Inserção e Remoção de Dados Controle de Concorrência Controle de concorrência é usado para garantir
Processamento de Transações II
UNIVERSIDADE FEDERAL DO MARANHÃO - UFMA Banco de Dados II Processamento de Transações II Carlos Eduardo Portela Serra de Castro * Processamento de Transações II Sumário Definindo Plano de Execução Baseado
Banco de Dados II. Transações. Segurança: Introdução; Controle de Acesso; Criptografia; Recursos de SQL.
Banco de Dados II Prof. Rodrigo Rocha [email protected] http://www.bolinhabolinha.com Apresentação Prof. Rodrigo Rocha [email protected] Ementa Gerenciamento de : Recuperação; Concorrência.
Banco de dados. Prof. Emiliano S. Monteiro
Banco de dados Prof. Emiliano S. Monteiro Processamento de transações Sistema monousuário x multiusuário Um SGBD é monousuário se no máximo um usuário puder utilizá-lo de cada vez. Um SGBD é multiusuário
BCD29008 Banco de dados
BCD29008 Banco de dados Prof. Emerson Ribeiro de Mello Instituto Federal de Santa Catarina IFSC campus São José [email protected] http://docente.ifsc.edu.br/mello/bcd 31 de julho de 2017 1/24 Apresentação
Aula 9. Deadlocks. Caracterização Grafo de dependência Métodos de tratamento Detecção Recuperação. Universidade Federal de Minas Gerais
Aula 9 Deadlocks 1.1 1.2 1.3 1.4 1.5 1.6 O que é Caracterização Grafo de dependência Métodos de tratamento Detecção Recuperação O quê é Deadlock (1) Propriedade indesejável de um conjunto de processos
BCD29008 Banco de dados
BCD29008 Banco de dados Prof. Emerson Ribeiro de Mello Instituto Federal de Santa Catarina IFSC campus São José [email protected] http://docente.ifsc.edu.br/mello/bcd 21 de fevereiro de 2018 1/24 Apresentação
Avisos. Processamento de Transações Controle de Concorrência. Roteiro da aula. Tipos de bloqueio: Binários. Protocolos baseados em bloqueio
Ciência da Computação GBC043 Sistemas de Banco de Dados Processamento de Transações Controle de Concorrência Avisos Lista de exercícios adicionais na página da disciplina Profa. Maria Camila Nardini Barioni
Técnicas de Recuperação em Banco de Dados
Técnicas de Recuperação em Banco de Dados Daniela Barreiro Claro MAT A60 Aula 14 Recuperação em Banco de Dados 2 Falhas podem ocorrer em qualquer Sistema Catastroficas e não-catastroficas SGBD deve garantir
Processamento de Transações
Processamento de Transações Banco de Dados II Prof. Guilherme Tavares de Assis Universidade Federal de Ouro Preto UFOP Instituto de Ciências Exatas e Biológicas ICEB Departamento de Computação DECOM é
Roteiro. Introdução Sincronização de Relógio Físico Sincronização de Relógio Lógico Exclusão Mútua
Sincronização Roteiro Introdução Sincronização de Relógio Físico Sincronização de Relógio Lógico Exclusão Mútua Introdução A comunicação entre processos é importante, mas não é só isso que importa; Uma
Banco de Dados II. Transações (Oracle) Segurança: Introdução; Controle de Acesso; Criptografia; Recursos de SQL.
Banco de Dados II Transações (Oracle) Prof. Rodrigo Rocha [email protected] http://www.bolinhabolinha.com Apresentação Prof. Rodrigo Rocha [email protected] Ementa Gerenciamento de
PROCESSAMENTO DE TRANSAÇÕES
UNINGÁ UNIDADE DE ENSINO SUPERIOR INGÁ FACULDADE INGÁ CIÊNCIA DA COMPUTAÇÃO PROCESSAMENTO DE TRANSAÇÕES Profº Erinaldo Sanches Nascimento Objetivos Discutir a necessidade de controle de concorrência e
DDL). O resultado da compilação dos parâmetros DDLs é
Banco Dados Aula 2 Linguagens de Banco de Dados e Tipos de Usuários 1. Linguagens de Banco de Dados Um sistema de banco de dados proporciona dois tipos de linguagens: uma específica para os esquemas do
BD II (SI 587) Transações em Banco de Dados. Prof. Josenildo Silva
BD II (SI 587) Transações em Banco de Dados Prof. Josenildo Silva [email protected] Nota Estes slides são adaptados de Database System Concepts, 6th Ed. Silberschatz, Korth and Sudarshan distribuídos
Banco de Dados. SGBDs. Professor: Charles Leite
Banco de Dados SGBDs Professor: Charles Leite Sistemas de BD Vimos que um BANCO DE DADOS representa uma coleção de dados com algumas propriedades implícitas Por exemplo, um BD constitui os dados relacionados
CONCORRÊNCIA. Buscando aumentar os níveis de concorrência redução da espera em detrimento do isolamento, a SQL definiu alguns níveis de isolamento.
CONCORRÊNCIA 1. Introdução O termo concorrência se refere ao fato de que os SGBDs em geral permitem que muitas transações tenham acesso ao mesmo banco de dados ao mesmo tempo. Em um sistema desse tipo,
Capítulo 2 Processos e Threads
Capítulo 2 Processos e Threads 2.1 Processos 2.2 Threads 2.3 Comunicação interprocesso 2.4 Problemas clássicos de IPC 2.5 Escalonamento Pearson Education Sistemas Operacionais Modernos 2ª Edição 1 Pearson
Sincronização e Comunicação entre Processos. Adão de Melo Neto
Sincronização e Comunicação entre Processos Adão de Melo Neto 1 INTRODUÇÃO Em um sistema multitarefa os processos alternam sua execução segundo critérios de escalonamento estabelecidos pelo sistema operacional.
Introdução. Processamento de Transações. Introdução. Introdução. Transações. Transações
Ciência da Computação GBC043 Sistemas de Banco de Dados Processamento de Transações Profa. Maria Camila Nardini Barioni [email protected] Bloco B - sala 1B137 Introdução... SGBDs são em geral multi-usuários
Técnicas de Controle de Concorrência. Laboratório de Bancos de Dados
Técnicas de Controle de Concorrência Laboratório de Bancos de Dados João Eduardo Ferreira e José Alcazar Elmasri,, R.; Navathe,, S. B. Sistemas de Banco de Dados, 4ed. Pearson Addison Wesley,, 2005 (Caps.(
BD II (SI 587) Técnicas de Recuperação. Josenildo Silva.
BD II (SI 587) Técnicas de Recuperação Josenildo Silva [email protected] Nota Estes slides são baseados nos slides disponibilizados pelos autores ELMASRI e NAVATHE, para o livro Sistemas de Banco de
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
Lista de Exercícios 12 Transações
UNIVERSIDADE DE SÃO PAULO INSTITUTO DE CIÊNCIAS MATEMÁTICAS E DE COMPUTAÇÃO DEPARTAMENTO DE CIÊNCIAS DE COMPUTAÇÃO SCC0141 - Bancos de Dados e Suas Aplicações Prof. José Fernando Rodrigues Júnior 2º semestre
