42
© 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]

© 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,

Embed Size (px)

Citation preview

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