Sie sind auf Seite 1von 50

MC536

Processamento de Transaes

Sumrio
Noes bsicas Propriedades Estados Mecanismos no processamento de transaes
Recuperao de falhas Controle de concorrncia

Sumrio
Noes bsicas Propriedades Estados Mecanismos no processamento de transaes
Recuperao de falhas Controle de concorrncia

Transaes
Unidade lgica de processamento em um BD que inclui uma ou mais operaes de acesso:
leitura recuperao escrita insero, atualizao, remoo

Motivao
Origem
aplicaes comerciais e financeiras

Caractersticas das aplicaes-alvo


curta durao tipos de dados restritos tipos de operaes restritos

Problemas
compartilhamento de dados ocorrncia de falhas

Exemplo de aplicao
Transferncia de fundos
1. 2. 3.

obter n. contas origem e destino, quantidade obter saldo conta origem se saldo >= quantidade ento
1.

atualizar saldo das contas origem e destino

Objetivos
Transparncia
Compartilhamento de dados Recuperao de falhas

Simplificao da programao

Operaes de transaes
Operaes bsicas: read_item(X): L um item do banco de dados chamado X colocando o valor em uma varivel de programa write_item(X): Escreve o valor de uma varivel de programa X em um item de banco de dados chamado X Operaes delimitadoras:
Begin transaction End transaction

Execuo de transaes
(a) Estado consistente 1 (b) Estado consistente 1 transao Estado consistente 2 Estados intermedirios inconsistentes

transao Mecanismo de recuperao FALHA

Estado consistente 1 Estado consistente 2

(c) Transao 1 Mecanismo de controle de concorrncia Transao 2

Sumrio
Noes bsicas Propriedades Estados Mecanismos no processamento de transaes
Recuperao de falhas Controle de concorrncia

Propriedades de transaes - ACID


Atomicidade: uma transao uma unidade atmica de processamento; ou todas suas operaes so executadas ou nenhuma executada. Consistncia: a execuo de uma transao deve levar o BD de um estado consistente para outro.

Propriedades de transaes - ACID


Isolamento: as atualizaes de uma transao em execuo no so visveis para outras transaes. Durabilidade: atualizaes de transaes efetivadas nunca devem ser perdidas em caso de falha.

Sumrio
Noes bsicas Propriedades Estados Mecanismos no processamento de transaes
Recuperao de falhas Controle de concorrncia

Estados de uma transao

Sumrio
Noes bsicas Propriedades Estados Mecanismos no processamento de transaes
Recuperao de falhas Controle de concorrncia

Recuperao de falhas
Tipos de falha
falhas de transao
sem perda de informao

falhas de sistema
com perda de informao da memria voltil

falhas de memria secundria


com perda de informao da memria secundria

falhas de comunicao
perda de mensagem, corrupo, duplicao, mensagens fora de ordem particionamento de rede

Recuperao de falhas de transao e de sistema


manuteno de dois estados
estado do sistema antes de a transao iniciar estado contendo as atualizaes da transao em execuo

mecanismos para recuperao


verses logs

Verses
Histrico de verses Verso shadow

Log
mantm registro de todas as operaes de transaes que afetam os valores de itens do BD. Estas informaes podem ser necessrias para recuperao mantido no disco; no afetado por falhas

Log
1. 2.

3. 4.

5.

[start_transaction,T]: registra que a transao T comeou a executar [write_item,T,X,old_value,new_value]: registra que a transao T mudou o valor do item do BD X de old_value para new_value [read_item,T,X]: registra que a transao T leu o valor do item X do BD [commit,T]: registra que a transao T completou com sucesso e efeitos foram registrados no BD [abort,T]: registro que a transao T foi abortada

Ponto de Efetivao (commit point)


Uma transao alcana seu ponto de efetivao quando todas as operaes desta transao foram registradas no log Alm deste ponto, a transao dita efetivada (committed), e seu efeito foi registrado permanentemente no BD. A transao escreve, ento, uma entrada do tipo [commit,T] no log. Cancelamento de transaes: necessrio para transaes que tenham uma entrada [start_transaction,T] no log mas nenhuma entrada [commit,T]

Sumrio
Noes bsicas Propriedades Estados Mecanismos no processamento de transaes
Recuperao de falhas Controle de concorrncia

Controle de concorrncia
transaes sequenciais
garantia de consistncia compromete desempenho

transaes concorrentes
entrelaamento de interferncia melhora desempenho operaes provoca

Controle de concorrncia
Tipos de interferncia
Atualizao perdida (lost update) Atualizao temporria (dirty read) Sumrio incorreto

Objetivos
evitar interferncia produzir histricos corretos

Exemplos de interferncia

Atualizao perdida
X=80, N=5, M=4

X=84

Atualizao temporria (dirty read)

Sumrio incorreto

Histricos (Schedules)
Ordem de execuo de operaes de vrias transaes Dado um histrico S de n transaes T1, T2, ..., Tn:
a ordem das operaes de uma transao Ti em S deve ser a mesma em que ocorrem em Ti As operaes de uma transao podem ser intercaladas com outras transaes de S

Tipos de histricos:
seriais - consistncia serializveis - consistncia e concorrncia

Histricos - conflitos
Duas operaes em um histrico conflitam se:
elas pertencem a duas transaes diferentes, acessam o mesmo item de dado e uma das operaes de escrita

Exemplo:
r1(X); r2(X); w1(X); r1(Y); w2(X); c2; w1(Y); c1

Histricos - conflitos
Duas operaes em um histrico conflitam se:
elas pertencem a duas transaes diferentes, acessam o mesmo item de dado e uma das operaes de escrita

Exemplo:
r1(X); r2(X); w1(X); r1(Y); w2(X); c2; w1(Y); c1

Histricos - conflitos
Duas operaes em um histrico conflitam se:
elas pertencem a duas transaes diferentes, acessam o mesmo item de dado e uma das operaes de escrita

Exemplo:
r1(X); r2(X); w1(X); r1(Y); w2(X); c2; w1(Y); c1

Histricos - conflitos
Duas operaes em um histrico conflitam se:
elas pertencem a duas transaes diferentes, acessam o mesmo item de dado e uma das operaes de escrita

Exemplo:
r1(X); r2(X); w1(X); r1(Y); w2(X); c2; w1(Y); c1

Classificao de histricos quanto restaurabilidade


Histrico recupervel: Um histrico S
recupervel se nenhuma transao T em S efetivada at que todas as transaes T que tenham escrito um item que T tenha lido tenham efetivado
S1: r1(X); w1(X); r2(X); r1(Y); w2(X); c2; a1; S2: r1(X); w1(X); r2(X); r1(Y); w2(X); w1(y); c1; c2; S1 no recupervel

Classificao de histricos quanto restaurabilidade


Histricos que requerem cancelamento em cascata: um histrico no qual transaes no efetivadas lem um item de uma transao que falhou S1: r1(X); w1(X); r2(X); r1(y); w2(X); w1(Y); a1; T2 deve ser cancelada Histricos sem cascata: transaes s lem itens que tenham sido escritos por transaes efetivadas r2(X) deveria ser atrasado at que T1 efetive Histricos restritos: histrico no qual uma transao no pode ler nem escrever um item X at que a ltima transao que escreveu X tenha efetivado ou abortado Recupervel e evita cancelamento em cascata

Histrico serial
Um histrico S serial se, para cada transao T no histrico S, todas as operaes de T so executadas consecutivamente nesse histrico
Todo histrico serial mantm consistncia Limita concorrncia

Histrico serial
T1 r(X) X:=X-N w(X) r(y) Y:=Y+N w(Y) r(X) X:=X+M w(X) T2

Histrico Serializvel
Um histrico S serializvel se ele equivalente a algum histrico serial das mesmas n transaes Dizer que um histrico no serial serializvel equivalente a dizer que correto, porque equivalente a um histrico serial (que considerado correto) Histrico serializvel um histrico correto:
Deixa o BD em um estado consistente A intercalao apropriada e o resultado o mesmo se caso as transaes tivessem sendo executadas serialmente Porm mais eficiente dada a execuo concorrente

Equivalncia de histricos
Equivalncia quanto ao resultado: dois histricos so equivalentes quanto ao resultado se eles produzem o mesmo estado final no BD
S1: r(X); X:=X+10; w(X) S2: r(X); X:=X*1,1; w(X) Com valor de X inicial igual a 100

Equivalncia quanto ao conflito: dois histricos so equivalentes quanto ao conflito se a ordem de qualquer duas operaes conflitantes a mesma em ambos os histricos Serialidade quanto ao conflito: um histrico S serializvel quanto ao conflito se ele equivalente quanto ao conflito a algum histrico serial S

Equivalncia quanto ao conflito


Algoritmo para testar se um serializvel quanto ao conflito:
1. 2. 3.

histrico

4.

Identifique somente as operaes read_Item (X) e write_Item (X) Construa um grafo de precedncia (grafo de serializao) um grafo com arestas direcionadas Uma aresta criada de Ti para Tj se uma das operaes em Ti aparece antes de uma operao conflitante em Tj Um histrico serializvel se, e somente se, o grafo de precedncia no tem ciclos

Exemplos

Exemplos

Exemplos

Exemplos

Exemplos

Exemplos

Serializao como garantir


Serializao difcil de ser verificada Protocolos que garantem a serializao
2PL Two-Phase Locking

Serializao quanto viso


Dois histricos so equivalentes quanto viso se: 1. O mesmo conjunto de transaes participam em S e S; S e S incluem as mesmas operaes destas transaes 2. Para qualquer operao ri(X) de Ti em S, se o valor de X lido foi escrito por uma operao wj(X) de Tj, a mesma condio deve valer para o valor de X lido por uma operao ri(X) de Ti em S 3. Se a operao wk(Y) de Tk a ltima operao que escreveu um item Y em S, ento wk(Y) de Tk deve ser a ltima operao a escrever Y em S

Serializao quanto viso


Serializao quanto viso:
Um histrico serializvel quanto viso se ele equivalente quanto viso a um histrico serial as operaes de leitura tm a mesma viso em ambos os histricos

Premissa:
Na medida em que a operao de leitura de uma transao l o resultado da mesma operao de escrita em ambos os histricos, as operaes de escrita devem produzir os mesmos resultados

Equivalncia quanto viso equivalncia quanto a conflito

menos

restritiva

que

Qualquer histrico serializvel quanto ao conflito tambm serializvel quanto viso, mas no vice-versa

Serializao quanto viso


T1: r1(X), w1(X); T2: w2(X); T3: w3(X): Sa: r1(X); w2(X); w1(X); w3(X); c1; c2; c3; Em Sa, as operaes w2(X) e w3(X) so escritas cegas, j que T1 e T3 no lem o valor de X Sa serializvel quanto viso, na medida em que ele equivalente quanto viso ao histrico serial T1, T2, T3. Sa no serializvel quanto ao conflito, j que no equivalente quanto ao conflito a nenhum histrico serial

Das könnte Ihnen auch gefallen