Top Banner
© Marcelo Bezerra de Alcântara Banco de Dados II – Controle de Concorrência - 1 Disciplina Disciplina Banco de Dados II Banco de Dados II Introdução ao Controle Introdução ao Controle de Concorrência de Concorrência Msc, Marcelo Bezerra de Alcântara [email protected]
42

© Marcelo Bezerra de AlcântaraBanco de Dados II – Controle de Concorrência - 1 Disciplina Banco de Dados II Introdução ao Controle de Concorrência Msc,

Apr 17, 2015

Download

Documents

Internet User
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: © Marcelo Bezerra de AlcântaraBanco de Dados II – Controle de Concorrência - 1 Disciplina Banco de Dados II Introdução ao Controle de Concorrência Msc,

© Marcelo Bezerra de Alcântara Banco de Dados II – Controle de Concorrência - 1

Disciplina Disciplina Banco de Dados IIBanco de Dados II

Introdução ao Controle Introdução ao Controle de Concorrênciade Concorrência

Msc, Marcelo Bezerra de Alcâ[email protected]

Page 2: © Marcelo Bezerra de AlcântaraBanco de Dados II – Controle de Concorrência - 1 Disciplina Banco de Dados II Introdução ao Controle de Concorrência Msc,

© Marcelo Bezerra de Alcântara Banco de Dados II – Controle de Concorrência - 2

SumárioSumário

1. Motivação2. Scheduler3. Teoria da Serializabilidade

1. Equivalência de Conflito2. História

4. Scheduler X Recovery5. Equivalência de Visão

Page 3: © Marcelo Bezerra de AlcântaraBanco de Dados II – Controle de Concorrência - 1 Disciplina Banco de Dados II Introdução ao Controle de Concorrência Msc,

© Marcelo Bezerra de Alcântara Banco de Dados II – Controle de Concorrência - 3

MotivaçãoMotivação

• SGBD– sistema multiusuário em geral

• diversas transações executando simultaneamente

• Garantia de isolamento de Transações– 1a solução: uma transação executa por vez

• escalonamento serial de transações• solução bastante ineficiente!

– várias transações podem esperar muito tempo para serem executadas

– CPU pode ficar muito tempo ociosa» enquanto uma transação faz I/O, por exemplo, outras

transações poderiam ser executadas

Page 4: © Marcelo Bezerra de AlcântaraBanco de Dados II – Controle de Concorrência - 1 Disciplina Banco de Dados II Introdução ao Controle de Concorrência Msc,

© Marcelo Bezerra de Alcântara Banco de Dados II – Controle de Concorrência - 4

MotivaçãoMotivação

write(X)

X = X + 10

read(X)

write(Y)

Y = Y + 20

read(Y)

write(X)

X = X – 20

read(X)

T2T1

execuçãoserial

Page 5: © Marcelo Bezerra de AlcântaraBanco de Dados II – Controle de Concorrência - 1 Disciplina Banco de Dados II Introdução ao Controle de Concorrência Msc,

© Marcelo Bezerra de Alcântara Banco de Dados II – Controle de Concorrência - 5

MotivaçãoMotivação

• Solução mais eficiente– execução concorrente de transações de modo a

preservar o isolamento• escalonamento (schedule) não-serial e íntegro

– responsabilidade do subsistema de controle de concorrência ou scheduler

Page 6: © Marcelo Bezerra de AlcântaraBanco de Dados II – Controle de Concorrência - 1 Disciplina Banco de Dados II Introdução ao Controle de Concorrência Msc,

© Marcelo Bezerra de Alcântara Banco de Dados II – Controle de Concorrência - 6

MotivaçãoMotivação

write(X)

X = X + 10

read(X)

write(Y)

Y = Y + 20

read(Y)

write(X)

X = X – 20

read(X)

T2T1

write(Y)

Y = Y + 20

read(Y)

write(X)

X = X + 10

read(X)

write(X)

X = X – 20

read(X)

T2T1

Execução serial Execução não-serialou concorrente

Page 7: © Marcelo Bezerra de AlcântaraBanco de Dados II – Controle de Concorrência - 1 Disciplina Banco de Dados II Introdução ao Controle de Concorrência Msc,

© Marcelo Bezerra de Alcântara Banco de Dados II – Controle de Concorrência - 7

SumárioSumário

1. Motivação2. Scheduler3. Teoria da Serializabilidade

1. Equivalência de Conflito2. História

4. Scheduler X Recovery5. Equivalência de Visão

Page 8: © Marcelo Bezerra de AlcântaraBanco de Dados II – Controle de Concorrência - 1 Disciplina Banco de Dados II Introdução ao Controle de Concorrência Msc,

© Marcelo Bezerra de Alcântara Banco de Dados II – Controle de Concorrência - 8

SchedulerScheduler

• Responsável pela definição de escalonamentos não-seriais de transações

• “Um escalonamento E define uma ordem de execução das operações de várias transações, sendo que a ordem das operações de uma transação Tx em E aparece na mesma ordem na qual elas ocorrem isoladamente em Tx”

• Problemas de um escalonamento não-serial mal definido (inválido)– atualização perdida (lost-update)– leitura suja (dirty-read)

Page 9: © Marcelo Bezerra de AlcântaraBanco de Dados II – Controle de Concorrência - 1 Disciplina Banco de Dados II Introdução ao Controle de Concorrência Msc,

© Marcelo Bezerra de Alcântara Banco de Dados II – Controle de Concorrência - 9

Atualização PerdidaAtualização Perdida

• Uma transação Ty grava em um dado atualizado por uma transação Tx

write(Y)

Y = X + 30

write(X)

read(Y)

write(X)

X = Z + 10

read(Z)

X = X – 20

read(X)

T2T1

a atualização de X por T1 foi perdida!

Page 10: © Marcelo Bezerra de AlcântaraBanco de Dados II – Controle de Concorrência - 1 Disciplina Banco de Dados II Introdução ao Controle de Concorrência Msc,

© Marcelo Bezerra de Alcântara Banco de Dados II – Controle de Concorrência - 10

Leitura SujaLeitura Suja

• Tx atualiza um dado X, outras transações posteriormente lêem X, e depois Tx falha

abort( )

read(Y)

write(X)

X = X + 10

read(X)

write(X)

X = X – 20

read(X)

T2T1

T2 leu um valor de X que não será mais válido!

Page 11: © Marcelo Bezerra de AlcântaraBanco de Dados II – Controle de Concorrência - 1 Disciplina Banco de Dados II Introdução ao Controle de Concorrência Msc,

© Marcelo Bezerra de Alcântara Banco de Dados II – Controle de Concorrência - 11

SchedulerScheduler

• Deve evitar escalonamentos inválidos– exige análise de operações em conflito

• operações que pertencem a transações diferentes• transações acessam o mesmo dado• pelo menos uma das operações é write

– tabela de situações de conflito de transações• podem gerar um estado inconsistente no BD

write(X)

read(X)

write(X)read(X)

Tx

Ty

Page 12: © Marcelo Bezerra de AlcântaraBanco de Dados II – Controle de Concorrência - 1 Disciplina Banco de Dados II Introdução ao Controle de Concorrência Msc,

© Marcelo Bezerra de Alcântara Banco de Dados II – Controle de Concorrência - 12

Operações ConflitantesOperações Conflitantes

write(X)

X = X + 10

read(X)

write(Y)

Y = Y + 20

read(Y)

write(X)

X = X – 20

read(X)

T2T1 T2T1

Execução serial Execução não-serialou concorrente

Page 13: © Marcelo Bezerra de AlcântaraBanco de Dados II – Controle de Concorrência - 1 Disciplina Banco de Dados II Introdução ao Controle de Concorrência Msc,

© Marcelo Bezerra de Alcântara Banco de Dados II – Controle de Concorrência - 13

SumárioSumário

1. Motivação2. Scheduler3. Teoria da Serializabilidade

1. Equivalência de Conflito2. História

4. Scheduler X Recovery5. Equivalência de Visão

Page 14: © Marcelo Bezerra de AlcântaraBanco de Dados II – Controle de Concorrência - 1 Disciplina Banco de Dados II Introdução ao Controle de Concorrência Msc,

© Marcelo Bezerra de Alcântara Banco de Dados II – Controle de Concorrência - 14

Teoria da Teoria da SerializabilidadeSerializabilidade

• Garantia de escalonamentos não-seriais válidos• Premissa

– “um escalonamento não-serial de um conjunto de transações deve produzir resultado equivalente a alguma execução serial destas transações”

Page 15: © Marcelo Bezerra de AlcântaraBanco de Dados II – Controle de Concorrência - 1 Disciplina Banco de Dados II Introdução ao Controle de Concorrência Msc,

© Marcelo Bezerra de Alcântara Banco de Dados II – Controle de Concorrência - 15

Teoria da Teoria da SerializabilidadeSerializabilidade

write(X)

X = X + 10

read(X)

write(Y)

Y = Y + 20

read(Y)

write(X)

X = X – 20

read(X)

T2T1

write(Y)

Y = Y + 20

read(Y)

write(X)

X = X + 10

read(X)

write(X)

X = X – 20

read(X)

T2T1

execuçãoserial

execuçãonão-serial

serializável

entrada:X = 50Y = 40

entrada:X = 50Y = 40

saída:X = 40Y = 60

saída:X = 40Y = 60

Page 16: © Marcelo Bezerra de AlcântaraBanco de Dados II – Controle de Concorrência - 1 Disciplina Banco de Dados II Introdução ao Controle de Concorrência Msc,

© Marcelo Bezerra de Alcântara Banco de Dados II – Controle de Concorrência - 16

Verificação de SerializabilidadeVerificação de Serializabilidade

• Duas principais técnicas – equivalência de conflito– equivalência de visão

Page 17: © Marcelo Bezerra de AlcântaraBanco de Dados II – Controle de Concorrência - 1 Disciplina Banco de Dados II Introdução ao Controle de Concorrência Msc,

© Marcelo Bezerra de Alcântara Banco de Dados II – Controle de Concorrência - 17

SumárioSumário

1. Motivação2. Scheduler3. Teoria da Serializabilidade

1. Equivalência de Conflito2. História

4. Scheduler X Recovery5. Equivalência de Visão

Page 18: © Marcelo Bezerra de AlcântaraBanco de Dados II – Controle de Concorrência - 1 Disciplina Banco de Dados II Introdução ao Controle de Concorrência Msc,

© Marcelo Bezerra de Alcântara Banco de Dados II – Controle de Concorrência - 18

Equivalência de ConflitoEquivalência de Conflito

• Equivalência de Conflito– “dado um escalonamento não-serial E’ para um

conjunto de Transações T, E’ é serializável em conflito se E’ for equivalente em conflito a algum escalonamento serial E para T, ou seja, a ordem de quaisquer 2 operações em conflito é a mesma em E’ e E.”

Page 19: © Marcelo Bezerra de AlcântaraBanco de Dados II – Controle de Concorrência - 1 Disciplina Banco de Dados II Introdução ao Controle de Concorrência Msc,

© Marcelo Bezerra de Alcântara Banco de Dados II – Controle de Concorrência - 19

Equivalência de Conflito - ExemploEquivalência de Conflito - Exemplo

write(X)

X = X + 10

read(X)

write(Y)

Y = Y + 20

read(Y)

write(X)

X = X – 20

read(X)

T2T1

write(Y)

Y = Y + 20

read(Y)

write(X)

X = X + 10

read(X)

write(X)

X = X – 20

read(X)

T2T1

escalonamento serial E escalonamento não-serial E1

write(Y)

Y = Y + 20

write(X)

read(Y)

write(X)

X = X + 10

read(X)

X = X – 20

read(X)

T2T1

escalonamento não-serial E2

• E1 equivale em conflito a E• E2 não equivale em conflito a nenhum escalonamento serial para T1 e T2• E1 é serializável e E2 não é serializável

Page 20: © Marcelo Bezerra de AlcântaraBanco de Dados II – Controle de Concorrência - 1 Disciplina Banco de Dados II Introdução ao Controle de Concorrência Msc,

© Marcelo Bezerra de Alcântara Banco de Dados II – Controle de Concorrência - 20

Verificação de Equivalência em ConflitoVerificação de Equivalência em Conflito

• Construção de um grafo direcionado de precedência– nodos são IDs de transações– arestas rotuladas são definidas entre 2

transações T1 e T2 se existirem operações em conflito entre elas

• direção indica a ordem de precedência da operação– origem indica onde ocorre primeiro a operação

• Um grafo com ciclos indica um escalonamento não-serializável em conflito!

Page 21: © Marcelo Bezerra de AlcântaraBanco de Dados II – Controle de Concorrência - 1 Disciplina Banco de Dados II Introdução ao Controle de Concorrência Msc,

© Marcelo Bezerra de Alcântara Banco de Dados II – Controle de Concorrência - 21

Grafo de PrecedênciaGrafo de Precedência

write(Y)

Y = Y + 20

read(Y)

write(X)

X = X + 10

read(X)

write(X)

X = X – 20

read(X)

T2T1

escalonamento serializável E1

write(Y)

Y = Y + 20

write(X)

read(Y)

write(X)

X = X + 10

read(X)

X = X – 20

read(X)

T2T1

escalonamento não-serializável E2

T1 T2 T1 T2

Page 22: © Marcelo Bezerra de AlcântaraBanco de Dados II – Controle de Concorrência - 1 Disciplina Banco de Dados II Introdução ao Controle de Concorrência Msc,

© Marcelo Bezerra de Alcântara Banco de Dados II – Controle de Concorrência - 22

SumárioSumário

1. Motivação2. Scheduler3. Teoria da Serializabilidade

1. Equivalência de Conflito2. História

4. Scheduler X Recovery5. Equivalência de Visão

Page 23: © Marcelo Bezerra de AlcântaraBanco de Dados II – Controle de Concorrência - 1 Disciplina Banco de Dados II Introdução ao Controle de Concorrência Msc,

© Marcelo Bezerra de Alcântara Banco de Dados II – Controle de Concorrência - 23

HistóriaHistória

escalonamento não-serializável E2

• Representação seqüencial da execução entrelaçada de um conjunto de transações concorrentes– operações consideradas

• read (r), write (w), commit (c), abort (a)

• ExemploHE2 = r1(x) r2(x) w1(x) w2(x) w1(y) c1 c2

commit( )

write(Y)

commit( )

Y = Y + 20

write(X)

read(Y)

write(X)

X = X + 10

read(X)

X = X – 20

read(X)

T2T1

Page 24: © Marcelo Bezerra de AlcântaraBanco de Dados II – Controle de Concorrência - 1 Disciplina Banco de Dados II Introdução ao Controle de Concorrência Msc,

© Marcelo Bezerra de Alcântara Banco de Dados II – Controle de Concorrência - 24

SumárioSumário

1. Motivação2. Scheduler3. Teoria da Serializabilidade

1. Equivalência de Conflito2. História

4. Scheduler X Recovery5. Equivalência de Visão

Page 25: © Marcelo Bezerra de AlcântaraBanco de Dados II – Controle de Concorrência - 1 Disciplina Banco de Dados II Introdução ao Controle de Concorrência Msc,

© Marcelo Bezerra de Alcântara Banco de Dados II – Controle de Concorrência - 25

Scheduler Scheduler XX Recovery Recovery

• Scheduler deve cooperar com o Recovery!• Categorias de escalonamentos

considerando o grau de cooperação com o Recovery– recuperáveis X não-recuperáveis– permitem aborto em cascata X evitam aborto

em cascata– estritos X não-estritos

Page 26: © Marcelo Bezerra de AlcântaraBanco de Dados II – Controle de Concorrência - 1 Disciplina Banco de Dados II Introdução ao Controle de Concorrência Msc,

© Marcelo Bezerra de Alcântara Banco de Dados II – Controle de Concorrência - 26

Escalonamento RecuperávelEscalonamento Recuperável

• Garante que, se Tx realizou commit, Tx não irá sofrer UNDO– o recovery espera sempre esse tipo de escalonamento!

• Um escalonamento E é recuperável se nenhuma Tx em E for concluída até que todas as transações que gravaram dados lidos por Tx tenham sido concluídas

Page 27: © Marcelo Bezerra de AlcântaraBanco de Dados II – Controle de Concorrência - 1 Disciplina Banco de Dados II Introdução ao Controle de Concorrência Msc,

© Marcelo Bezerra de Alcântara Banco de Dados II – Controle de Concorrência - 27

Escalonamento RecuperávelEscalonamento Recuperável

abort( )

commit( )

write(X)

X = X + 10

read(X)

write(X)

X = X – 20

read(X)

T2T1

escalonamentonão-recuperável

commit( )

commit( )

write(X)

X = X + 10

read(X)

write(X)

X = X – 20

read(X)

T2T1

escalonamentorecuperável

Page 28: © Marcelo Bezerra de AlcântaraBanco de Dados II – Controle de Concorrência - 1 Disciplina Banco de Dados II Introdução ao Controle de Concorrência Msc,

© Marcelo Bezerra de Alcântara Banco de Dados II – Controle de Concorrência - 28

Escalonamento sem Aborto em CascataEscalonamento sem Aborto em Cascata

• Um escalonamento recuperável pode gerar abortos de transações em cascata– consome muito tempo de recovery!

• Um escalonamento E é recuperável e evita aborto em cascata se uma Tx em E só puder ler dados que tenham sido atualizados por transações que já concluíram

. . .abort( )

write(X)

X = X + 10

read(X)

write(X)

X = X – 20

read(X)

T2T1

escalonamentorecuperável

com aborto emcascata

. . .

write(X)

X = X + 10

read(X)

commit( )

write(X)

X = X – 20

read(X)

T2T1

escalonamentorecuperável

sem aborto emcascata

Page 29: © Marcelo Bezerra de AlcântaraBanco de Dados II – Controle de Concorrência - 1 Disciplina Banco de Dados II Introdução ao Controle de Concorrência Msc,

© Marcelo Bezerra de Alcântara Banco de Dados II – Controle de Concorrência - 29

Escalonamento EstritoEscalonamento Estrito

• Garante que, se Tx deve sofrer UNDO, basta gravar a before image dos dados atualizados por ela

• Um escalonamento E é recuperável, evita aborto em cascata e é estrito se uma Tx em E só puder ler ou atualizar um dado X depois que todas as transações que atualizaram X tenham sido concluídas

abort( )

commit( )

write(X)

X = Y + 10

read(Y)

write(X)

X = X – 20

read(X)

T2T1

escalonamentorecuperável

sem aborto emcascata e

não-estrito

commit( )

write(X)

X = Y + 10

read(Y)

commit( )

write(X)

X = X – 20

read(X)

T2T1

escalonamentorecuperável

sem aborto emcascata e

estrito

Page 30: © Marcelo Bezerra de AlcântaraBanco de Dados II – Controle de Concorrência - 1 Disciplina Banco de Dados II Introdução ao Controle de Concorrência Msc,

© Marcelo Bezerra de Alcântara Banco de Dados II – Controle de Concorrência - 30

Exercícios 1Exercícios 11. Dadas as transações abaixo, diga se o escalonamento é

serializável com base na equivalência de conflito!

T1 = r(x) w(x)w(y) c1 T2 = r(u) w(x) r(y) w(y) c2

HE1 = r(x)r(u)w(x)w(x)w(y) c1r(y) w(y) c2 ( )

HE2 = r(x)r(u)w(x)w(y) w(x)c1r(y) w(y) c2 ( )

HE3 = r(x)r(u)w(x)w(x)w(y)c1r(y) w(y) c2 ( )

HE4 = r(x)r(u)w(x)r(y) w(y)c1 w(x) w(y) c2 ( )

HE5 = r(u)w(x)r(x)r(y)w(x)w(y)w(y)c1c2 ( )

2. Dadas as transações ao lado, dê um exemplode uma história:a) não-serializávelb) serializável

read(X)X = X + 10write(X)Y = Y + 20write(Y)

T1

read(X)Y = X + 10write(Y)

T2

read(X)X = X * 2write(X)

T3

Page 31: © Marcelo Bezerra de AlcântaraBanco de Dados II – Controle de Concorrência - 1 Disciplina Banco de Dados II Introdução ao Controle de Concorrência Msc,

© Marcelo Bezerra de Alcântara Banco de Dados II – Controle de Concorrência - 31

Exercícios 2Exercícios 21. Dadas as transações abaixo, associe corretamente a história com o

tipo de escalonamento (SR-Seralizável, R - Recuperável, SAC – Sem Aborto em Cascata, E - Estrito, S - Serial)

T1 = w(x) w(y) w(z) c1 T2 = r(u) w(x) r(y) w(y) c2

HE1 = w1(x) w1(y) r2(u) w2(x) r2(y) w2(y) c2 w1(z) c1 ( )

HE2 = w1(x) w1(y) w1(z) c1 r2(u) w2(x) r2(y) w2(y) c2 ( )

HE3 = w1(x) w1(y) r2(u) w2(x) w1(z) c1 r2(y) w2(y) c2 ( )

HE4 = w1(x) w1(y) r2(u) w1(z) c1 w2(x) r2(y) w2(y) c2 ( )

HE5 = w1(x) w1(y) r2(u) w2(x) r2(y) w2(y) w1(z) c1 c2 ( )

2. Dadas as transações ao lado, dê um exemplode uma história:a) serializável e não-recuperávelb) sem aborto em cascatac) Estrito

read(X)X = X + 10write(X)Y = Y + 20write(Y)

T1

read(X)Y = X + 10write(Y)

T2

read(X)X = X * 2write(X)

T3

Page 32: © Marcelo Bezerra de AlcântaraBanco de Dados II – Controle de Concorrência - 1 Disciplina Banco de Dados II Introdução ao Controle de Concorrência Msc,

© Marcelo Bezerra de Alcântara Banco de Dados II – Controle de Concorrência - 32

Exercícios 3Exercícios 3

1. Dadas as transações abaixo, associe corretamente a história com o tipo de escalonamento (SR, R, SAC, E, S, NS)

T1 = r(x) w(x) w(y) c1 T2 = r(x) w(y) c2 T3 = r(x) w(x) c3

HE1 = r1(x) w1(x)r2(x) w1(y)c1r3(x)w(y) w3(x)c3 c2 ( )

HE2 = r1(x) w1(x) w1(y)c1r2(x)w2(y)r3(x) w3(x)c3c2 ( )

HE3 = r2(x)w2(y)r1(x) w1(x) w1(y)c1r3(x) w3(x)c3c2 ( )

HE4 = r3(x) w3(x)r2(x)w2(y)r1(x) w1(x) w1(y)c1c2c3 ( )

HE5 = r3(x) w3(x)r2(x)w2(y)r1(x) w1(x) w1(y)c3c2c1 ( )

HE5 = r3(x) r2(x))w2(y)w3(xr1(x) w1(x) w1(y)c3c2c1 ( )

Page 33: © Marcelo Bezerra de AlcântaraBanco de Dados II – Controle de Concorrência - 1 Disciplina Banco de Dados II Introdução ao Controle de Concorrência Msc,

© Marcelo Bezerra de Alcântara Banco de Dados II – Controle de Concorrência - 33

Relação entre EscalonamentosRelação entre Escalonamentos

• SR = escalonamento serializável• R = escalonamento recuperável• SAC = escalonamento sem aborto em cascata• E = escalonamento estrito• S = escalonamento serial

SR – Equivalência de Conflito

RSAC

ES

Page 34: © Marcelo Bezerra de AlcântaraBanco de Dados II – Controle de Concorrência - 1 Disciplina Banco de Dados II Introdução ao Controle de Concorrência Msc,

© Marcelo Bezerra de Alcântara Banco de Dados II – Controle de Concorrência - 34

SumárioSumário

1. Motivação2. Scheduler3. Teoria da Serializabilidade

1. Equivalência de Conflito2. História

4. Scheduler X Recovery5. Equivalência de Visão

Page 35: © Marcelo Bezerra de AlcântaraBanco de Dados II – Controle de Concorrência - 1 Disciplina Banco de Dados II Introdução ao Controle de Concorrência Msc,

© Marcelo Bezerra de Alcântara Banco de Dados II – Controle de Concorrência - 35

Equivalência de VisãoEquivalência de Visão

• “Dado um escalonamento não-serial E’ para um conjunto de Transações T, E’ é serializável em visão se E’ for equivalente em visão a algum escalonamento serial E para T, ou seja:– para toda operação read(X) de uma Tx em E’, se X é

lido após um write(X) de uma Ty em E’ (ou originalmente lido do BD), então essa mesma seqüência deve ocorrer em E;

– se uma operação write(X) de uma Tk for a última operação a atualizar X em E’, então Tk também deve ser a última transação a atualizar X em E’.”

Page 36: © Marcelo Bezerra de AlcântaraBanco de Dados II – Controle de Concorrência - 1 Disciplina Banco de Dados II Introdução ao Controle de Concorrência Msc,

© Marcelo Bezerra de Alcântara Banco de Dados II – Controle de Concorrência - 36

Serializabilidade de VisãoSerializabilidade de Visão

• Idéia básica– enquanto cada read(X) de uma Tx ler o resultado de

uma mesmo write(X) em E’ e E, em ambos os escalonamentos, Tx tem a mesma visão do resultado

– se o último write(X) é feito pela mesma transação em E’ e E, então o estado final do BD será o mesmo em ambos os escalonamentos

• ExemploHserial = r1(X) w1(X) c1 w2(X) c2 w3(X) c3

Hexemplo = r1(X) w2(X) w1(X) w3(X) c1 c2 c3

– Hexemplo não é serializável em conflito, mas é serializável em visão

Page 37: © Marcelo Bezerra de AlcântaraBanco de Dados II – Controle de Concorrência - 1 Disciplina Banco de Dados II Introdução ao Controle de Concorrência Msc,

© Marcelo Bezerra de Alcântara Banco de Dados II – Controle de Concorrência - 37

Exercícios 1Exercícios 11. Dadas as transações abaixo, diga se o escalonamento é

serializável com base visão!

T1 = r(x) w(x)w(y) c1 T2 = r(u) w(x) r(y) w(y) c2

HE1 = r(x)r(u)w(x)w(x)w(y) c1r(y) w(y) c2 ( )

HE2 = r(x)r(u)w(x)w(y) w(x)c1r(y) w(y) c2 ( )

HE3 = r(x)r(u)w(x)w(x)w(y)c1r(y) w(y) c2 ( )

HE4 = r(x)r(u)w(x)r(y) w(y)c1 w(x) w(y) c2 ( )

HE5 = r(u)w(x)r(x)r(y)w(x)w(y)w(y)c1c2 ( )

2. Dadas as transações ao lado, dê um exemplode uma história:a) não-serializávelb) serializável

read(X)X = X + 10write(X)Y = Y + 20write(Y)

T1

read(X)Y = X + 10write(Y)

T2

read(X)X = X * 2write(X)

T3

Page 38: © Marcelo Bezerra de AlcântaraBanco de Dados II – Controle de Concorrência - 1 Disciplina Banco de Dados II Introdução ao Controle de Concorrência Msc,

© Marcelo Bezerra de Alcântara Banco de Dados II – Controle de Concorrência - 38

Serializabilidade em Conflito e de VisãoSerializabilidade em Conflito e de Visão

• A serializabilidade de visão é menos restritiva que a serializabilidade em conflito– um escalonamento E’ serializável em conflito

também é serializável em visão, porém o contrário nem sempre é verdadeiro

• A serializabilidade de visão é muito mais complexa de verificar que a serializabilidade em conflito– problema NP-completo!

• difícil a sua utilização na prática...

Page 39: © Marcelo Bezerra de AlcântaraBanco de Dados II – Controle de Concorrência - 1 Disciplina Banco de Dados II Introdução ao Controle de Concorrência Msc,

© Marcelo Bezerra de Alcântara Banco de Dados II – Controle de Concorrência - 39

Verificação de SerializabilidadeVerificação de Serializabilidade

• Técnicas propostas (em conflito e de visão) são difíceis de serem testadas– exige que se tenha um conjunto fechado de

transações para fins de verificação• Na prática

– conjunto de transações executando concorrentemente é muito dinâmico!

• novas transações estão sendo constantemente submetidas ao SGBD para execução

– logo, a serializabilidade é garantida através de técnicas (ou protocolos) de controle de concorrência que não precisam testar os escalonamentos

Page 40: © Marcelo Bezerra de AlcântaraBanco de Dados II – Controle de Concorrência - 1 Disciplina Banco de Dados II Introdução ao Controle de Concorrência Msc,

© Marcelo Bezerra de Alcântara Banco de Dados II – Controle de Concorrência - 40

ConclusãoConclusão

• O controle de concorrência existe para garantir a propriedade do isolamento;

• O scheduler é o componente do SGBD para garantir um escalonamento de transação que garanta a propriedade do isolamento;

• Um forma de garantir o isolamento é executar as transações de forma serial. Porém é uma solução ineficiente;

Page 41: © Marcelo Bezerra de AlcântaraBanco de Dados II – Controle de Concorrência - 1 Disciplina Banco de Dados II Introdução ao Controle de Concorrência Msc,

© Marcelo Bezerra de Alcântara Banco de Dados II – Controle de Concorrência - 41

ConclusãoConclusão

• História é a representação seqüencial da execução entrelaçada de um conjunto de transações concorrentes– HE2 = r1(x) r2(x) w1(x) w2(x) w1(y) c1 c2;

• A teoria da seriabilidade garante um escalonamento não-serial de um conjunto de transações deve produzir resultado equivalente a alguma execução serial destas transações”

• Existem duas principais técnicas de equivalência– equivalência de conflito– equivalência de visão

Page 42: © Marcelo Bezerra de AlcântaraBanco de Dados II – Controle de Concorrência - 1 Disciplina Banco de Dados II Introdução ao Controle de Concorrência Msc,

© Marcelo Bezerra de Alcântara Banco de Dados II – Controle de Concorrência - 42

ConclusãoConclusão

• SRV = escalonamento serializável na visão• SRC = escalonamento serializável no conflito• R = escalonamento recuperável• SAC = escalonamento sem aborto em cascata• E = escalonamento estrito• S = escalonamento serial

SRC

R

SACES

SRV