Gerência de Transações Distribuídas

Documentos relacionados
Revisão e Introdução 23/05/12. Controle Distribuído da Concorrência. Revisão de Conceitos. Revisão de Conceitos. Transação Operação

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

Banco de Dados. Controle de Concorrência e Recuperação de Transação. Prof. João Eduardo Ferreira Prof. Osvaldo Kotaro Takai

23/05/12. Conteúdo. Introdução ao gerenciamento de transações. Motivação. Motivação. Motivação. Motivação

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

Gerenciamento de Transações em Banco de Dados

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

Processamento de Transações. Banco de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri

revisão Controle de Concorrência com Locks Bancos de Dados I 2015/02

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

BD II (SI 587) Transações em Banco de Dados. Prof. Josenildo Silva

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

Roteiro. Noções de Controle de Concorrência. BCC321 - Banco de Dados I. Ementa. Finalidade do Controle de Concorrência.

Controle de Transação

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

Processamento de Transações

PCS3413. Engenharia de So-ware e Banco de Dados. Aula 21. Escola Politécnica da Universidade de São Paulo

Processamento de Transações. Laboratório de Bases de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri

BANCO DE DADOS 2 TRANSAÇÃO

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

Banco de Dados I. Aula 18 - Prof. Bruno Moreno 22/11/2011

Contato. professorluisleite.wordpress.com

Controle de Concorrência

Processamento de Transações

Desenvolvimento de Aplicações Distribuídas

Processamento de Transações

Processamento de Transações

Sistemas Distribuídos Transações Distribuídas. Vinícius Fernandes Soares Mota

Aula 03. Evandro Deliberal

Sistemas de Informação e Bases de Dados 2012/2013. Transações. Alberto Sardinha

Controle de Transações. Banco de Dados André Luiz do Vale Soares

Sistemas Distribuídos. Ricardo Ribeiro dos Santos

Conceitos. Gestão de Transacções. Transacção. Conceitos e Propriedades. Controlo de Concorrência. Recuperação. Transacções no SGBD Oracle

Sumário. Controle de Concorrência

Avisos. Processamento de Transações Controle de Concorrência. Roteiro da aula. Tipos de bloqueio: Binários. Protocolos baseados em bloqueio

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

BDII SQL TRANSAÇÃO Revisão 2

6.1 Resumo das Características do Modelo Proposto

Principais Desafios dos SGBDDs. Processamento Distribuído de Consultas. Processamento de Consultas. Componentes do Processamento de Consultas

Sistemas Distribuídos Transações

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

BD II (SI 587) Controle de Concorrência. Josenildo Silva.

Sistemas de Gerência de Bancos de Dados. 5 - Controle de Concorrência Tópicos Adicionais

Controle de Concorrência

Processamento de Transações II

ANÁLISE E PROJETO DE BANCO DE DADOS

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

e c d o o r B s s n i : l e F s

Sistemas Distribuídos

Técnicas de Controle de Concorrência

se a transação falhar entre os 3 passos 4 6, os passos 1 3 ficam sem efeito 4 read(b) Consistência

PROCESSAMENTO DE TRANSAÇÕES

Técnicas de Controle de Concorrência

Sumário. Recuperação de Falhas

Banco de Dados II. Transações. Segurança: Introdução; Controle de Acesso; Criptografia; Recursos de SQL.

TRANSAÇÕES: SISTEMA DE RECUPERAÇÃO E CONTROLE DE CONCORRÊNCIA

BCD29008 Banco de dados

Introdução. Processamento de Transações. Introdução. Introdução. Transações. Transações

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

de Bases de Dados Exame 1

Introdução. Processamento de Transações. Introdução. Introdução. Transações. Transações. Transação

BCD29008 Banco de dados

Top. Esp em Banco de Dados

Sistemas de Bancos de Dados Distribuídos

Sistemas de Bancos de Dados Distribuídos

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

Concorrência. Prof. Márcio Bueno. Material do Prof. Paulo Pires

Sincronização e Concorrência

Banco de dados. Prof. Emiliano S. Monteiro

Sistemas de Gerência de Bancos de Dados

Administração e Optimização de BDs

Lock. Administração de Banco de Dados

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

Formação de DBAs SQL Server 2008

Bases de Dados 2013/2014 Transações. Helena Galhardas. Sumário!

Técnicas de Controle de Concorrência. Laboratório de Bancos de Dados

Sumário. Motivação. Aplicações precisam acessar o BD Linguagens BD X Linguagens Programação. paradigmas diferentes (impedance mismatch)

Oracle Comandos para Processamento de Transações

Bancos de Dados Distribuídos. Lucas Henrique Samuel Queiroz

BD II (SI 587) Técnicas de Recuperação. Josenildo Silva.

Banco de Dados II. PL/SQL - Procedures -Cursor - Funções. Segurança: Introdução; Controle de Acesso; Criptografia; Recursos de SQL.

Scheduler Baseado em Timestamp

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

Transações, Controle de Concorrência e o Hibernate. Clodis Boscarioli

se a transacção falhar entre os passos 4 6, os passos 1 3 ficam sem efeito

Sistemas da Informação. Banco de Dados I. Edson Thizon

Bases de Dados 2013/2014 Controlo de Concorrência

Sistemas de Gerência de Bancos de Dados

Sincronização e Comunicação entre Processos. Adão de Melo Neto

GBC043 - Sistemas de Banco de Dados Lab8 : Transações no PostgreSql

SUMÁRIO... 6 ÍNDICE DE FIGURAS ÍNDICE DE TABELAS INTRODUÇÃO CAPÍTULO BANCO DE DADOS... 20

Aula 4 TECNOLOGIA EM JOGOS DIGITAIS JOGOS MASSIVOS DISTRIBUÍDOS. Marcelo Henrique dos Santos

Transcrição:

Transação Gerência de Transações Distribuídas Uma é uma unidade de computação consistente e confiável Transparência de concorrência Transparência de falhas Fernanda Baião baiao@cos.ufrj.br Banco de dados em um estado consistente Banco de dados pode estar em um estado inconsistente durante a execução Banco de dados em um estado consistente Outubro de 2003 Begin Transaction execução da End Transaction 1998 M. Tamer Özsu e Patrick Valduriez (tradução livre e adaptações Fernanda Baião) 2 Transação Exemplo Consulta SQL Simples Transaction BUDGET_UPDATE EXEC SQL UPDATE PROJ SET BUDGET = BUDGET * 1.1 WHERE PNAME = CAD/CAM end. Banco de Dados exemplo Considere uma base de reservas aéreas com as relações FLIGHT(FNO, DATE, SRC, DEST, STSOLD, CAP) CUST(CNAME, ADDR, BAL) FC(FNO, DATE, CNAME,SPECIAL) 1998 M. Tamer Özsu e Patrick Valduriez (tradução livre e adaptações Fernanda Baião) 3 1998 M. Tamer Özsu e Patrick Valduriez (tradução livre e adaptações Fernanda Baião) 4 Transação exemplo Versão SQL EXEC SQL UPDATE FLIGHT SET STSOLD = STSOLD + 1 EXEC SQL INSERT INTO FC(FNO, DATE, CNAME, SPECIAL); VALUES (flight_no, date, customer_name, null); end. {Reservation} 1998 M. Tamer Özsu e Patrick Valduriez (tradução livre e adaptações Fernanda Baião) 5 Terminação de Transações EXEC SQL SELECT STSOLD,CAP INTO temp1,temp2 FROM FLIGHT if temp1 = temp2 then output( no free seats ); Abort else EXEC SQL UPDATEFLIGHT SET STSOLD = STSOLD + 1 EXEC SQL INSERT INTO FC(FNO, DATE, CNAME, SPECIAL); VALUES (flight_no, date, customer_name, null); endif end. {Reservation} 1998 M. Tamer Özsu e Patrick Valduriez (tradução livre e adaptações Fernanda Baião) 6 1

Transação exemplo Leituras e Escritas temp Read(flight_no(date).stsold); if temp = flight(date).cap then output( no free seats ); Abort end else Write(flight(date).stsold, temp + 1); Write(flight(date).cname, customer_name); Write(flight(date).special, null); ; end end. {Reservation} Caracterização Conjunto leitura (RS) Conjunto de itens de dados lidos por uma Conjunto escrita (WS) Conjunto de itens de dados modificados por uma Conjunto base (BS) RS WS 1998 M. Tamer Özsu e Patrick Valduriez (tradução livre e adaptações Fernanda Baião) 7 1998 M. Tamer Özsu e Patrick Valduriez (tradução livre e adaptações Fernanda Baião) 8 Representação DAG Considere a Read(x) Read(y) x x + y 1998 M. Tamer Özsu e Patrick Valduriez (tradução livre e adaptações Fernanda Baião) 9 Propriedades das Transações ATOMICIDADE Tudo ou nada Em caso de falha, resultados parciais são desfeitos Recuperação de x recuperação de falha CONSISTÊNCIA Não viola restrições de integridade (programa correto) Vários graus : T não sobrescreve dados ainda em atualização por outra ( sujos ), T não efetiva nenhuma escrita entes do EOT, T não lê dados sujos, dados lidos por T não são sujos antes do seu término ISOLAMENTO Atualizações concorrentes são invisíveis Se várias transações são executadas concorrentemente, os resultados devem ser os mesmos como se elas fossem executadas serialmente em alguma ordem DURABILIDADE Atualizações completadas com sucesso (commit) são persistentes 1998 M. Tamer Özsu e Patrick Valduriez (tradução livre e adaptações Fernanda Baião) 10 Isolamento - Exemplo Tipos de Transações Considere as 2 transações T1: Read(x) T2: Read(x) x x+1 x x+1 Sequências de execução possíveis T1: Read(x) T1: Read(x) T1: x x+1 T1: x x+1 T1: T2: Read(x) T1: T1: T2: Read(x) T2: x x+1 T2: x x+1 T2: T2: T1: T2: T2: Dados sujos e atualização perdida! Baseados em Áreas das aplicações não distribuídas x distribuídas transações compensatórias transações heterogêneas Duração da on-line (curta duração) x batch (longa duração) Organização das ações de leitura e atualização duas etapas (primeiro leituras, depois escritas) restrita (toda atualização é precedida de uma leitura) modelo de ação (restrita, cada par <leitura, escrita> é executado de forma atômica) Estrutura transações planas transações aninhadas workflows 1998 M. Tamer Özsu e Patrick Valduriez (tradução livre e adaptações Fernanda Baião) 11 1998 M. Tamer Özsu e Patrick Valduriez (tradução livre e adaptações Fernanda Baião) 12 2

Workflow - Exemplo Modelo de Arquitetura 1998 M. Tamer Özsu e Patrick Valduriez (tradução livre e adaptações Fernanda Baião) 13 1998 M. Tamer Özsu e Patrick Valduriez (tradução livre e adaptações Fernanda Baião) 14 Execução de Transações Centralizadas Execução de Transações Distribuídas 1998 M. Tamer Özsu e Patrick Valduriez (tradução livre e adaptações Fernanda Baião) 15 1998 M. Tamer Özsu e Patrick Valduriez (tradução livre e adaptações Fernanda Baião) 16 Controle Distribuído da O problema de sincronizar transações concorrentes de forma a manter a consistência do banco de dados e atingir, ao mesmo tempo, nível elevado de concorrência Anomalias: Atualizações perdidas Os efeitos de algumas transações não são refletidos no banco Leituras inconsistentes Se uma lê um mesmo item de dado mais de uma vez, deve sempre encontrar o mesmo valor Escalonamento (Schedule, ou History) de Execução A ordem na qual as operações de um conjunto de transações são executadas, intercaladamente T1: Read(x) T2: T3: Read(x) Write(y) Read(y) Read(z) Read(z) H1={W2(x),R1(x), R3(x),W1(x),C1,W2(y),R3(y),R2(z),C2,R3(z),C3} 1998 M. Tamer Özsu e Patrick Valduriez (tradução livre e adaptações Fernanda Baião) 17 1998 M. Tamer Özsu e Patrick Valduriez (tradução livre e adaptações Fernanda Baião) 18 3

Escalonamento de Execução 2 operações Oij(x) e Okl(x) estão em conflito se pelo menos 1 delas é operação de gravação leitura-gravação, gravação-gravação ordem de execução é importante Escalonamento completo estabelece a ordem de execução de todas as operações em seu domínio Escalonamento Completo - Exemplo Dadas 3 transações T1 : Read(x) T2 : T3 :Read(x) Write(y) Read(y) Read(z) Read(z) Um possível escalonamento completo é dado como o DAG falhas resultam em escalonamentos incompletos... como lidar com eles? 1998 M. Tamer Özsu e Patrick Valduriez (tradução livre e adaptações Fernanda Baião) 19 1998 M. Tamer Özsu e Patrick Valduriez (tradução livre e adaptações Fernanda Baião) 20 Algoritmos de Controle de Sincronizam execução concorrente de transações mais cedo Pessimistas Algoritmos de Controle da Atrasam a sincronização das transações até o seu término Otimistas Algoritmos de Controle de Pessimistas Validate Read Compute Write Bloqueio (2PL) Centralizado Ordenação de timestamp Básicos Híbridos Bloqueio Ordenação de timestamp Otimistas Cópia Primária Distribuídos Várias Versões Conservativos Read Compute Validate Write 1998 M. Tamer Özsu e Patrick Valduriez (tradução livre e adaptações Fernanda Baião) 21 1998 M. Tamer Özsu e Patrick Valduriez (tradução livre e adaptações Fernanda Baião) 22 Algoritmos de Bloqueio Transações indicam suas intenções solicitando bloqueios do escalonador (gerenciador de bloqueios). Bloqueios podem ser de leitura (rl) [bloqueio compartilhado] ou bloqueio de gravação (wl) [bloqueio exclusivo] Bloqueios de leitura e de gravação conflitam (porque operações de leitura e escrita são incompatíveis rl wl rl yes no wl no no Bloqueios funcionam bem ao permitir processamento concorrente de transações 1998 M. Tamer Özsu e Patrick Valduriez (tradução livre e adaptações Fernanda Baião) 23 Bloqueio em 2 fases (2PL) Uma bloqueia um objeto antes de usá-lo Quando um objeto está bloqueado por outra, a solicitante do bloqueio deve aguardar Quando uma libera um bloqueio, não pode solicitar outro bloqueio 1998 M. Tamer Özsu e Patrick Valduriez (tradução livre e adaptações Fernanda Baião) 24 4

Ordenação por timestamp Algoritmos de CC Otimistas É atribuído um timestamp único global ts(ti ) para cada (Ti ) Gerenciador de transações atribui o timestamp a todas as operações da A cada item de dado é atribuído um timestamp de gravação (wts) e um timestamp de leitura (rts) rts(x) = maior timestamp das transações que leram x wts(x) = maior timestamp das transações que gravaram x Operações conflitantes são resolvidas pela ordem do timestamp. Algoritmo básico: for Ri (x) for Wi (x) if ts(ti) < wts(x) if ts(ti)<rts(x) and ts(ti)<wts(x) then reject Ri(x) then reject Wi(x) else accept Ri(x) else accept Wi(x) rts(x) <- ts(ti) wts(x) <- ts(ti) Modelo de execução da : dividir em subtransações, cada uma executando em um nó Tij : Ti que executa no nó j Transações executam independentemente em cada nó até que alcançam o final da sua fase de leitura Todas as subtransações recebem um timestamp no final da sua fase de leitura Teste de Validação realizado durante a fase de validação. Se um falha, todas são rejeitadas Nível mais alto de concorrência Custo de armazenamento mais elevado 1998 M. Tamer Özsu e Patrick Valduriez (tradução livre e adaptações Fernanda Baião) 25 1998 M. Tamer Özsu e Patrick Valduriez (tradução livre e adaptações Fernanda Baião) 26 Teste de Validação de CC Otimistas Ordens possíveis Impasses (Deadlocks) Um impasse pode ocorrer porque as transações esperam uma pela outra Uma está em deadlock se está bloqueada e permanecerá assim até que ocorra uma intervenção externa Algoritmos de CC baseados em bloqueio podem resultar em impasses Algoritmos de ordenação de timestamp que exigem a espera de transações também podem causar impasses Gráfico de espera (Wait-for graph WFG) Existe um arco Ti Tj no WFG se a Ti estiver esperando que outra Tj libere um bloqueio sobre alguma entidade. 1998 M. Tamer Özsu e Patrick Valduriez (tradução livre e adaptações Fernanda Baião) 27 1998 M. Tamer Özsu e Patrick Valduriez (tradução livre e adaptações Fernanda Baião) 28 WFG locais x globais 1998 M. Tamer Özsu e Patrick Valduriez (tradução livre e adaptações Fernanda Baião) 29 Gerência de Impasses Ignorar Deixe que o programador da aplicação lide com ele, ou re-inicie o sistema Prevenção Garantir que os impasses nunca ocorram. Gerenciador de transações verifica uma quando ela é iniciada e não permite que ela prossiga se houver possibilidade de impasse. Não exigem suporte em tempo de execução. Não adequada p/ SGBD Anulação Detectam situações potenciais de impasse com antecedência e asseguram que eles não ocorrerão (ordem pré-definida, timestamp). Exigem suporte em tempo de execução. Detecção e Recuperação (mais popular) Permitem que impasses ocorram, detectam-nos monitorando formação de ciclos no WFG e rompendo-os. Exigem suporte em tempo de execução 1998 M. Tamer Özsu e Patrick Valduriez (tradução livre e adaptações Fernanda Baião) 30 5