bd ii – proce ssamento de transações · um plano vai tem a lista de ações das transações....

49
BD II – Processamento de Transações Professor: Luis Felipe Leite

Upload: duongtuyen

Post on 01-Aug-2018

244 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: BD II – Proce ssamento de Transações · Um plano vai tem a lista de ações das transações. ... Todos os planos devem agir como se fossem seriais, mesmo não sendo. (Lá pra

BD II – Processamento de

Transações

Professor: Luis Felipe Leite

Page 2: BD II – Proce ssamento de Transações · Um plano vai tem a lista de ações das transações. ... Todos os planos devem agir como se fossem seriais, mesmo não sendo. (Lá pra

Contato

[email protected]

Page 3: BD II – Proce ssamento de Transações · Um plano vai tem a lista de ações das transações. ... Todos os planos devem agir como se fossem seriais, mesmo não sendo. (Lá pra

Ciclo de três aulas

Processamento de transações.

Controle de Concorrência.

Recuperação de Falhas.

Page 4: BD II – Proce ssamento de Transações · Um plano vai tem a lista de ações das transações. ... Todos os planos devem agir como se fossem seriais, mesmo não sendo. (Lá pra

Ciclo de três aulas

Essa tríade é uma das coisas que mais dá confiabilidade nos bancos de dados modernos.

É uma evolução.

Page 5: BD II – Proce ssamento de Transações · Um plano vai tem a lista de ações das transações. ... Todos os planos devem agir como se fossem seriais, mesmo não sendo. (Lá pra

Vamos começar pensando...

Essa tríade é uma das coisas que mais dá confiabilidade e consistência nos bancos de dados modernos.

É uma evolução que ainda não atingiu todos os Bds.● NoSQL.

Page 6: BD II – Proce ssamento de Transações · Um plano vai tem a lista de ações das transações. ... Todos os planos devem agir como se fossem seriais, mesmo não sendo. (Lá pra

Vantagens e desvantagens de transações concorrentes?

Page 7: BD II – Proce ssamento de Transações · Um plano vai tem a lista de ações das transações. ... Todos os planos devem agir como se fossem seriais, mesmo não sendo. (Lá pra

Tudo começa com a performance do SGBD...

Execução concomitante de programas é essencial para sistemas computacionais.● CPU● SGBD não é diferente!!

Page 8: BD II – Proce ssamento de Transações · Um plano vai tem a lista de ações das transações. ... Todos os planos devem agir como se fossem seriais, mesmo não sendo. (Lá pra

Transações - Conceito

Visão abstrata do SGBD sobre um programa ou processo do usuário.● Ex: Compra de passagens aéreas

Isso gera visões diferentes do que é uma transação.

Para o banco, interessa apenas Leitura e gravação, Leitura e gravação, Leitura e gravação.● Se isso for feito concorrentemente. Melhor!!

Page 9: BD II – Proce ssamento de Transações · Um plano vai tem a lista de ações das transações. ... Todos os planos devem agir como se fossem seriais, mesmo não sendo. (Lá pra

Transações – Estados de Execução

Existem alguns estados necessários para que uma transação seja reconhecida pelo banco, além de lida, gravada, e salva definitivamente (excetuando se a transação der errado).

Os estados de execução são:● BEGIN_TRANSACTION;● READ OU WRITE;● END_TRANSACTION;● COMMIT_TRANSACTION; (Se comprometeu, já era.)● ROLLBACK (OU ABORT). (Semântica)

Page 10: BD II – Proce ssamento de Transações · Um plano vai tem a lista de ações das transações. ... Todos os planos devem agir como se fossem seriais, mesmo não sendo. (Lá pra

Transações – Estados de Execução

Page 11: BD II – Proce ssamento de Transações · Um plano vai tem a lista de ações das transações. ... Todos os planos devem agir como se fossem seriais, mesmo não sendo. (Lá pra

Vamos criar um cenário...

Imaginemos essas operações:● ler(x): Ler item X do banco de dados e armazena na

variável X do programa.● gravar(x): Grava variável X do programa no item X do

banco.● Possível outros itens...y, N, M, T

Vamos abstrair a questão da memória.

Consideremos as prateleiras de um supermercado.

Page 12: BD II – Proce ssamento de Transações · Um plano vai tem a lista de ações das transações. ... Todos os planos devem agir como se fossem seriais, mesmo não sendo. (Lá pra

Nosso mercado.

● Operação de transferência.

● Entenda N como o número de bebidas que foram retiradas da prateleira X e serão transferidas para a prateleira Y.

Prateleira X Prateleira Y

N

Page 13: BD II – Proce ssamento de Transações · Um plano vai tem a lista de ações das transações. ... Todos os planos devem agir como se fossem seriais, mesmo não sendo. (Lá pra

E esse cenário funciona?

Page 14: BD II – Proce ssamento de Transações · Um plano vai tem a lista de ações das transações. ... Todos os planos devem agir como se fossem seriais, mesmo não sendo. (Lá pra

Chegou mais refrigerante.

● Agora temos duas operações concorrentes.

● Enquanto uma está retirando refrigerantes do tipo N da prateleira X e transportando para a prateleira Y, a outra transação está adicionando os novos refrigerantes do tipo M na prateleira X já mexida.

Prateleira X

M

Page 15: BD II – Proce ssamento de Transações · Um plano vai tem a lista de ações das transações. ... Todos os planos devem agir como se fossem seriais, mesmo não sendo. (Lá pra

Transações concorrentes

● Transações concorrentes podem ser vistas como algo paralelo.● Essa forma de processar as coisas geralmente cria problemas.● Necessidade de um plano de execução.

Page 16: BD II – Proce ssamento de Transações · Um plano vai tem a lista de ações das transações. ... Todos os planos devem agir como se fossem seriais, mesmo não sendo. (Lá pra

Transações concorrentes

Page 17: BD II – Proce ssamento de Transações · Um plano vai tem a lista de ações das transações. ... Todos os planos devem agir como se fossem seriais, mesmo não sendo. (Lá pra

Plano de execução

Plano de execução também é conhecido por “Schedule”.

Um plano vai tem a lista de ações das transações.● READ, COMMIT, WRITE, ABORT

Em um plano de execução a ordem das transações “locais” nunca será alterada.

● S para transações T1, T2...Tn.● Ordem de ações no plano Ti = ordem das açoes em

S

Page 18: BD II – Proce ssamento de Transações · Um plano vai tem a lista de ações das transações. ... Todos os planos devem agir como se fossem seriais, mesmo não sendo. (Lá pra

Transações em série

Page 19: BD II – Proce ssamento de Transações · Um plano vai tem a lista de ações das transações. ... Todos os planos devem agir como se fossem seriais, mesmo não sendo. (Lá pra

Plano de execução - Serial

Visto como o plano que nunca dá errado.

Parte do princípio que uma transação só sera realizada depois que outra for finalizada.

No mundo real, isso é difícil de acontecer.

Todos os planos devem agir como se fossem seriais, mesmo não sendo. (Lá pra frente veremos mais sobre isso).

Page 20: BD II – Proce ssamento de Transações · Um plano vai tem a lista de ações das transações. ... Todos os planos devem agir como se fossem seriais, mesmo não sendo. (Lá pra

Plano de execução - Serial

Independente da ordem das transações, o resultado será consistente.

O banco pode decidir a ordem de execução das transações em caso de concorrência.

Caso o admin queira uma ordem na coisas é necessário algumas opções extras.● Ordem interna.● Realização sempre depois de commit.

Page 21: BD II – Proce ssamento de Transações · Um plano vai tem a lista de ações das transações. ... Todos os planos devem agir como se fossem seriais, mesmo não sendo. (Lá pra

Plano de execução serial

Page 22: BD II – Proce ssamento de Transações · Um plano vai tem a lista de ações das transações. ... Todos os planos devem agir como se fossem seriais, mesmo não sendo. (Lá pra

Transações intercaladas

Page 23: BD II – Proce ssamento de Transações · Um plano vai tem a lista de ações das transações. ... Todos os planos devem agir como se fossem seriais, mesmo não sendo. (Lá pra

Plano de execução - Intercalado

Page 24: BD II – Proce ssamento de Transações · Um plano vai tem a lista de ações das transações. ... Todos os planos devem agir como se fossem seriais, mesmo não sendo. (Lá pra

Transações intercaladas – Problemas??

Page 25: BD II – Proce ssamento de Transações · Um plano vai tem a lista de ações das transações. ... Todos os planos devem agir como se fossem seriais, mesmo não sendo. (Lá pra

Transações intercaladas – Problemas??

● Atualização perdida. (Elmasri)

● Sobrescrita de dados alterados sem commit. (Ramakrishnam)– Conflito Write/Write

Page 26: BD II – Proce ssamento de Transações · Um plano vai tem a lista de ações das transações. ... Todos os planos devem agir como se fossem seriais, mesmo não sendo. (Lá pra

Transações intercaladas – Problemas??

● Dirty Read

● Atualização temporária. (Elmasri)

● Leitura de dados alterados sem commit (Ramakrishnam)

– Conflito Write/Read

Page 27: BD II – Proce ssamento de Transações · Um plano vai tem a lista de ações das transações. ... Todos os planos devem agir como se fossem seriais, mesmo não sendo. (Lá pra

Transações intercaladas – Problemas??

Page 28: BD II – Proce ssamento de Transações · Um plano vai tem a lista de ações das transações. ... Todos os planos devem agir como se fossem seriais, mesmo não sendo. (Lá pra

Transações intercaladas – Problemas??

● Leitura repetitiva.

● Leitura não repetitiva. (Elmasri)

● Leitura não repetitiva. (Ramakrishnan)

– Conflito read/write

Page 29: BD II – Proce ssamento de Transações · Um plano vai tem a lista de ações das transações. ... Todos os planos devem agir como se fossem seriais, mesmo não sendo. (Lá pra

Problemas em transações concorrentes - Resumo

Elmasri:● Atualização perdida.● Atualização temporária.● Resumo incorreto.● Leitura não repetitiva.

Ramakrishnam:● Conflito WR = Leitura de dados alterados sem commit.● Conflito RW = Leitura não repetível.● Conflito WW = Sobrescrita de dados alterados sem

commit.

Page 30: BD II – Proce ssamento de Transações · Um plano vai tem a lista de ações das transações. ... Todos os planos devem agir como se fossem seriais, mesmo não sendo. (Lá pra

ACID

Atomicidade.ConsistênciaIsolamentoDurabilidade

Page 31: BD II – Proce ssamento de Transações · Um plano vai tem a lista de ações das transações. ... Todos os planos devem agir como se fossem seriais, mesmo não sendo. (Lá pra

Planos Restauráveis

Plano restaurável:● A transação T só realizará commit depois que todas as transações cujo

valores T leu realizarem commit.● É permitido Dirty Read, porém não será feito commit.● Pode gerar efeito cascata.

Plano cascadeless:● T só irá ler algum valor que foi alterado por transações que já

realizaram commit.● Não permite dirty reading.● Mais restrito, custa bem caro em transações longas.

Plano estrito:● T só lê e/ou grava valores que foram alterados por transações que já

realizaram commit.● Mesma coisa que o anterior, mas mais fácil de implementar.

Page 32: BD II – Proce ssamento de Transações · Um plano vai tem a lista de ações das transações. ... Todos os planos devem agir como se fossem seriais, mesmo não sendo. (Lá pra

Planos Serializável

Plano serial é visto como o plano correto. Plano que nunca dá problema.

Na prática, isto não acontece.

O plano serializável é um plano equivalente ao plano serial.Dizer que um plano não serial é um plano seriálizavel quer dizer que ele é correto.

Page 33: BD II – Proce ssamento de Transações · Um plano vai tem a lista de ações das transações. ... Todos os planos devem agir como se fossem seriais, mesmo não sendo. (Lá pra

Plano Serial

Page 34: BD II – Proce ssamento de Transações · Um plano vai tem a lista de ações das transações. ... Todos os planos devem agir como se fossem seriais, mesmo não sendo. (Lá pra

Plano Serializável?

● A questão é: Como eu sei se é serializável ou não?

Page 35: BD II – Proce ssamento de Transações · Um plano vai tem a lista de ações das transações. ... Todos os planos devem agir como se fossem seriais, mesmo não sendo. (Lá pra

E este??

● A questão é: Como eu sei se é serializável ou não?

Page 36: BD II – Proce ssamento de Transações · Um plano vai tem a lista de ações das transações. ... Todos os planos devem agir como se fossem seriais, mesmo não sendo. (Lá pra

Grafos de precedência

O banco não monta seu plano de transações antes. Este é feito em tempo quase real.

O esforço computacional para se fazer o plano antes é quase impossível.

O uso de grafos de precedência, é uma forma de montar seu plano com o intuito de saber os conflitos causadores de problema.

Page 37: BD II – Proce ssamento de Transações · Um plano vai tem a lista de ações das transações. ... Todos os planos devem agir como se fossem seriais, mesmo não sendo. (Lá pra

Grafos de precedência

Até agora, nós sabemos só vamos saber se o plano é correto ou não, depois que executamos as transações.

Se o plano deu problema, como podemos identificar o problema logo de cara?

Page 38: BD II – Proce ssamento de Transações · Um plano vai tem a lista de ações das transações. ... Todos os planos devem agir como se fossem seriais, mesmo não sendo. (Lá pra

Grafos de precedência - Algoritmo

Para cada transação será criada uma aresta no grafo.

Para cada caso em S temos três casos possíveis:● Tj leu (x) depois de Ti gravar (x).

● Aresta Ti → Tj● Tj gravou (x) depois de Ti ler (x).

● Aresta Ti → Tj● Tj gravou (x) depois de Ti gravar (x).

● Aresta Ti → Tj

O plano serializável é o plano que não tem ciclos!!

Page 39: BD II – Proce ssamento de Transações · Um plano vai tem a lista de ações das transações. ... Todos os planos devem agir como se fossem seriais, mesmo não sendo. (Lá pra

Grafos de precedência - Algoritmo

Vamos começar com um plano serial.

Page 40: BD II – Proce ssamento de Transações · Um plano vai tem a lista de ações das transações. ... Todos os planos devem agir como se fossem seriais, mesmo não sendo. (Lá pra

Grafos de precedência - Algoritmo

E este?

Page 41: BD II – Proce ssamento de Transações · Um plano vai tem a lista de ações das transações. ... Todos os planos devem agir como se fossem seriais, mesmo não sendo. (Lá pra

Grafos de precedência - Algoritmo

E este terceiro caso??

Page 42: BD II – Proce ssamento de Transações · Um plano vai tem a lista de ações das transações. ... Todos os planos devem agir como se fossem seriais, mesmo não sendo. (Lá pra

Equivalência

Método de detecção da efetividade de um plano antes que o processamento de suas transações dê problema.

Em geral, pode ser visto como um conjunto de características de um plano que façam ele equivalente a um plano correto.

Page 43: BD II – Proce ssamento de Transações · Um plano vai tem a lista de ações das transações. ... Todos os planos devem agir como se fossem seriais, mesmo não sendo. (Lá pra

Equivalência

Planos Conflito Equivalentes

Equivalência de visão

Essas duas formas criam classes importantes de equivalência entre planos.

Page 44: BD II – Proce ssamento de Transações · Um plano vai tem a lista de ações das transações. ... Todos os planos devem agir como se fossem seriais, mesmo não sendo. (Lá pra

Equivalência – Plano Conflitos Equivalentes

A ordem das operações conflitantes deve ser a mesma em ambos.● O grafo de precedência ajuda a observar essas

operações.

As operações conflitantes podem ser vistas como operações que:● Pertencem a diferentes transações;● Acessam o mesmo item;● Pelo menos uma dela for gravar.

Page 45: BD II – Proce ssamento de Transações · Um plano vai tem a lista de ações das transações. ... Todos os planos devem agir como se fossem seriais, mesmo não sendo. (Lá pra

Equivalência – Plano Conflitos Equivalentes

Imagine um exemplo onde temos um plano A e um plano B. Caso a ordem das operações, de ambos os planos for a mesma, é certo dizer que esses planos são conflito equivalentes.

A questão é que o objetivo da equivalência, não é fazer para qualquer plano, mas sim para um plano que eu considero correto. Um plano serial.

Um plano conflito serializável é um plano que é conflito equivalente a um plano Serial.

Page 46: BD II – Proce ssamento de Transações · Um plano vai tem a lista de ações das transações. ... Todos os planos devem agir como se fossem seriais, mesmo não sendo. (Lá pra

Equivalência – Plano Conflitos Equivalentes

● Quais são as operações conflitantes?

Page 47: BD II – Proce ssamento de Transações · Um plano vai tem a lista de ações das transações. ... Todos os planos devem agir como se fossem seriais, mesmo não sendo. (Lá pra

Equivalência – Plano Conflitos Equivalentes

● Não são conflito equivalentes e S2 não é conflito serializável.

Page 48: BD II – Proce ssamento de Transações · Um plano vai tem a lista de ações das transações. ... Todos os planos devem agir como se fossem seriais, mesmo não sendo. (Lá pra

Equivalência – Plano Conflitos Equivalentes

Dois planos A e B só possuem equivalência por visão se:● Possuírem as mesmas transações e operações.● No plano A, se há um read (x) em Ti que seja valor

original ou gravado por um write (x) em Tj, o mesmo acontece em B.

Page 49: BD II – Proce ssamento de Transações · Um plano vai tem a lista de ações das transações. ... Todos os planos devem agir como se fossem seriais, mesmo não sendo. (Lá pra

Até aula que vem – Controle de Concorrência