teoria

Transcript

teoria
La gestione della concorrenza:
teoria
Basi di dati: Architetture
e linee di evoluzione Seconda edizione
Capitolo 2
Appunti dalle lezioni
Isolamento
Per migliorare i tempi medi di risposta (TpS), è
necessario eseguire più transazioni in maniera
concorrente.
La proprietà di isolamento garantisce che:
–
–
il risultato di un insieme di transazioni eseguite in maniera
concorrente è in qualche modo equivalente (?) a quello che si
otterrebbe se le transazioni fossero eseguite una dopo l’altra.
venga evitato il Rollback a catena
l’abort di una transazione provoca l’abort di un’altra transazione e
così via;
il Rollback a catena sarebbe particolarmente pericoloso qualora
coinvolgesse transazioni che hanno già effettuato il commit.
Basi di Dati 2 – Prof. Antonio d’Acierno
Isolation: teoria
2
Anomalie delle Transazioni Concorrenti
Perdita di Update
Letture sporche
Letture inconsistenti
Update fantasma
Insert fantasma
Le illustreremo con riferimento ad un oggetto che può
essere
–
–
–
–
–
Un attributo di una tupla
Una tupla
Un blocco di disco
Una tabella
L’intera base dati
Basi di Dati 2 – Prof. Antonio d’Acierno
Isolation: teoria
3
Anomalie delle Transazioni Concorrenti
Perdita di Update
T1
BoT
r(x)
x = x+1
T2
BoT
r(x)
x = x+1
w(x)
commit
EoT
w(x)
commit
EoT
Basi di Dati 2 – Prof. Antonio d’Acierno
Letture Sporche
T1
T2
BoT
r(x)
x=x+1
w(x)
BoT
r(x)
x = x+1
w(x)
commit
EoT
abort
EoT
Isolation: teoria
4
Anomalie delle Transazioni Concorrenti
Letture Inconsistenti
T1
BoT
r(x)
T2
BoT
r(y)
r(y)
BoT
r(x)
x = x+1
w(x)
commit
EoT
r(x)
commit
EoT
Basi di Dati 2 – Prof. Antonio d’Acierno
Update Fantasma
T2
T1
BoT
r(x)
y = y-500
r(z)
z = z+500
w(y)
w(z)
commit
EoT
r(z)
somma=x+y+z
commit
EoT
Isolation: teoria
5
Insert fantasma
T1
bot
legge gli stipendi degli
impiegati del dip A e
calcola la media
T2
bot
inserisce un impiegato
in A
commit
legge gli stipendi degli
impiegati del dip A e
calcola la media
commit
Basi di Dati 2 – Prof. Antonio d’Acierno
Isolation: teoria
6
Teoria del controllo della concorrenza
In questo ambito una transazione è definita come una
sequenza di read e write su oggetti generici
T1 : r1(x)r1 (y)w1 (x)w1 (y)
Le transazioni sono eseguite in modo concorrente le
operazioni sono “MISCHIATE”
–
Ovviamente senza alterare l’ordine interno alla generica
transazione
Schedule sequenza di operazioni di ingresso uscita
s1 :
r1(x) r2 (y) w1 (x) w2 (y)
s2 :
r1(x) r2 (x) w1 (x) w2 (x) → Non va bene!
Basi di Dati 2 – Prof. Antonio d’Acierno
Isolation: teoria
7
Teoria del controllo della concorrenza
Il controllore della concorrenza scheduler
–
rifiuta quegli schedule “pericolosi” che possono dare
luogo ad anomalie
La teoria del controllo di concorrenza si basa su
tre ipotesi
–
–
Nessuna transazione legga o scriva lo stesso dato
più volte
commit-proiezione
–
Tutte le transazioni vanno a buon fine
Sappiamo ogni transazione cosa farà
Sarà ovviamente necessario rimuovere queste
ipotesi
Basi di Dati 2 – Prof. Antonio d’Acierno
Isolation: teoria
8
Teoria del controllo della concorrenza
Schedule seriale
–
Le azioni di ciascuna transazione non sono
inframmezzate dalle operazioni di altre transazioni
S1
:
r1(x) w1 (x) r2 (y) w2 (y)
Ovviamente, un schedule seriale non presenta
anomalie
Un schedule concorrente si dice serializzabile
se è EQUIVALENTE ad uno schedule seriale
Basi di Dati 2 – Prof. Antonio d’Acierno
Isolation: teoria
9
Equivalenza di scheduling
Concetto complesso
Equivalenza rispetto al risultato
–
Due schedule sono equivalenti se producono lo stesso risultato
qualunque sia lo stato della base di dati.
Producono lo stesso risultato se e sole se il valore
iniziale di X è pari a 10 non sono equivalenti
T1
Read(x)
T2
T1
Read(x)
Read(X)
T2
Read(X)
X=X*1.5
X= X + 5
X=X*1.5
X= X + 5
Write(X)
Write(X)
Write(X)
Write(X)
Basi di Dati 2 – Prof. Antonio d’Acierno
Isolation: teoria
10
Equivalenza di Scheduling
Due scheduling corretti (senza anomalie) non è detto
producano lo stesso risultato.
Esistono 2 scheduling sequenziali:
–
–
–
–
T1 T2
T2 T1
Sono ovviamente entrambi corretti (in quanto seriali)
Non forniscono lo stesso risultato.
T1
BoT
Update CC set saldo = 0
Commit
EoT
Basi di Dati 2 – Prof. Antonio d’Acierno
T2
BoT
Update CC set saldo = saldo + 30
Commit
EoT
Isolation: teoria
11
Problema
Individuare classi di schedule serializzabili
la proprietà di serializzabilità deve essere verificabile a costo basso
–
Equivalenti a schedule seriali e per forza di cose privi di anomalie
Schedule
Serializzabili
Basi di Dati 2 – Prof. Antonio d’Acierno
Schedule
Schedule
Seriali
Isolation: teoria
12
View serializzabilità
In uno schedule S:
–
ri(x) legge da wj (y)
–
i≠j
x=y
wj(y) precede ri(x) e non ci sono altre scritture su x tra ri(x) e wj(y)
wj(y) è un scrittura finale
se è l’ultima scrittura su x in S
R2(x) legge da W0(x)
R1(x) legge da W0(x)
S:
W0(x) R2(x) R1(x) W2(x) W2(z)
W2(x) scrittura finale
W2(z) scrittura finale
Basi di Dati 2 – Prof. Antonio d’Acierno
Isolation: teoria
13
View serializzabilità
Due schedule S1 ed S2 sono view equivalenti (S1≈VS2)
sse
–
–
–
Se S1 ≈VS2 ⇒ S1 ed S2 producono lo stesso risultato
–
Includono le stesse operazioni
hanno le stesse relazioni legge-da
hanno le stesse relazioni finali
indipendentemente dallo stato della base dati
Uno schedule S si dice view serializzabile se è view
equivalente ad un schedule seriale
L’insieme degli schedule view serializzabili si indica con
VSR.
Basi di Dati 2 – Prof. Antonio d’Acierno
Isolation: teoria
14
In pratica ….
la verifica della view-equivalenza di due dati
schedule è a complessità lineare.
Ma
–
–
Decidere sulla View serializzabilità di uno schedule è
problema NP-completo.
Le ipotesi a monte non sono in alcun modo
eliminabili
⇒
Devo cercare altre soluzioni
Basi di Dati 2 – Prof. Antonio d’Acierno
Isolation: teoria
15
Conflict serializzabilità
Conflitto:
–
In uno schedule S due azioni ai e aj sono in conflitto sse
–
Conflitti read-write
–
Conflitti write-write
i≠j
Operano sullo stesso oggetto
Almeno una delle due è un write
(r1(x),w2(x)) ≠(w2(x),r1(x))
(w1(x),w2(x)) ≠(w2(x),w1(x))
Due schedule sono conflict equivalenti sse
–
Hanno le stesse operazioni
⇒ hanno gli stessi conflitti
Attenzione all’ordine!!!!
Basi di Dati 2 – Prof. Antonio d’Acierno
Isolation: teoria
16
Conflict serializzabilità
Uno schedule conflict equivalente ad un
shedule seriale si dice conflict serializzabile.
L’insieme degli schedule conflict serializzabili si
indica con CSR.
(w0(x), r1(x))
(w0(x), r2(x))
w0(x) r1(x) w0(z) r1(z) r2(x) r3(z) w3(z) w1(x)
S1:
(w0(x), w1(x))
(w0(z), r1(z))
S2: w0(x) w0(z) r2(x) r1(x) w1(x) r1(z) r3(z) w3(z)
(w0(z), r3(z))
(w0(z), w3(z))
(r1(z), w3(z))
(r2(x), w1(x))
Basi di Dati 2 – Prof. Antonio d’Acierno
Isolation: teoria
17
Verifica di conflict serializzabilità
Grafo dei conflitti:
–
–
un nodo per ogni transazione ti
un arco (orientato) da ti a tj se c'è almeno un conflitto
fra un'azione ai e un'azione aj tale che ai precede aj
S1: w0(x) r1(x) w0(z) r1(z) r2(x) r3(z) w3(z) w1(x)
T0
T1
T2
•w0(x) r1(x)
•w0(x) r2(x)
•w0(x) w1(x)
•w0(z) r1(z)
•w0(z) r3(z)
•w0(z) w3(z)
•r1(z) w3(z)
•r2(x) w1(x)
T3
Basi di Dati 2 – Prof. Antonio d’Acierno
Isolation: teoria
18
Teorema
Uno schedule è in CSR se e solo se il grafo è aciclico
Verifica
–
–
–
–
–
–
–
S1 è CSR
⇒ è ≈C ad uno schedule seriale S2.
S2 :
t1 t2 t3 t4 ….. tn
S1 ed S2 hanno gli stessi conflitti e nello stesso ordine
I grafi di S1 e S2 hanno gli stessi nodi e gli stessi archi
Nel grafo di S2 ci possono essere solo archi (i,j) con i<j
⇒ non ci sono cicli (richiede almeno un arco (i,j) con i>j
Nel grafo di S1 non ci sono cicli
Basi di Dati 2 – Prof. Antonio d’Acierno
Isolation: teoria
19
Verifica
Grafo di S1 aciclico
⇒ Fra i nodi esiste almeno un
ordinamento topologico
–
T2
–
–
T1
cioè una numerazione dei nodi tale che il
grafo contiene solo archi (i,j) con i<j.
Sia S2 lo schedule le cui transazioni
sono ordinate secondo l’ordinamento
topologico
S2 è seriale per costruzione
S2 è equivalente a S1
T3
S2: T1 T2 T3
T2
Ha gli stessi conflitti
per tutti i conflitti (i,j) si ha sempre i<j.
T3
T1
S2’: T1 T2 T3
S2’’: T1 T3 T2
Basi di Dati 2 – Prof. Antonio d’Acierno
Isolation: teoria
20
≈c ⇒ ≈v (1/2)
S1 ≈c S2 ⇒ S1 e S2 hanno le stesse relazioni “leggeda” ?
Per assurdo: r1(x) legge-da w2(x) in S1 e non in S2
S1: …. w2(x) …. r1(x) ....
–
–
S2: ….. r1(x) … w2(x) …
–
Nessuna scrittura su x tra w2(x) e r1(x)
In S1 avrò il conflitto (w2(x),r1(x))
⇒ in S2 ho Il conflitto (r1(x),w2(x)) diverso da (w2(x),r1(x))
⇒ contraddice l’ipotesi!
S2: …. r1(x) … w3(x) …. w2(x) …
–
S1 …. W3(x) …. w2(x) …. r1(x) ....
–
S1 …. w2(x) …. r1(x) .... W3(x)….
In S1 (w3(x),r1(x)) in s2 (r1(x),w3(x)) ⇒ contraddice l’ipotesi!
In S1 (w2(x),w3(x)) in s2 (w3(x),w2(x)) ⇒ contraddice l’ipotesi!
Basi di Dati 2 – Prof. Antonio d’Acierno
Isolation: teoria
21
≈c ⇒ ≈v (2/2)
Se S1 ≈c S2 ⇒ S1 e S2 hanno le stesse
scritture finali?
Per assurdo:
–
⇒ ci sono almeno due scritture su x
⇒ esistono conflitti scrittura-scrittura che
coinvolgono x
–
wi(x) scrittura finale in S1 e non in S2
In S1 sono del tipo (wj(x),wi(x))
⇒ S2: ….. wi(x) … wj(x) …
⇒ in s2 (wi(x),wj(x)) che contraddice l’ipotesi
S1 ≈c S2
Basi di Dati 2 – Prof. Antonio d’Acierno
Isolation: teoria
22
CSR ⊂ VSR
∀ S ∈ CSR ⇒ S ∈ VSR
S ∈ CSR ∃ S1 :
–
–
S1 è uno scheduling seriale
S ≈c S1
Poiché ≈c ⇒ ≈v
–
S ≈v S1 S ∈ VSR
Basi di Dati 2 – Prof. Antonio d’Acierno
Isolation: teoria
23
VSR ⊄ CSR
S: r1(x) w2(x) w1(x) w3(x)
∈ VSR?
–
–
∈ CSR?
conflitti
–
Non ha relazioni legge-da
Una scrittura finale: w3(x)
–
–
S1: r1(x) w1(x)w2(x)w3(x)
S ≈v S1
⇒ S ∈ VSR
–
–
–
r1(x),w2(x)
r1(x),w1(x)
r1(x),w3(x)
w2(x),w1(x)
w2(x),w3(x)
w1(x),w3(x)
S ∉ CSR
T1
T2
Basi di Dati 2 – Prof. Antonio d’Acierno
T3
Isolation: teoria
24
Quindi …
Schedule
VSR
Basi di Dati 2 – Prof. Antonio d’Acierno
Schedule
CSR
Schedule
Seriali
Schedule
Isolation: teoria
25
In pratica?
Verificare l’aciclicità di un grafo richiede tempo lineare
La tecnica sarebbe efficiente se potessimo conoscere il
grafo dall’inizio, ma così non è
–
uno scheduler deve operare incrementalmente
–
Decidere ad ogni richiesta di operazione se eseguirla subito
oppure fare qualcos’altro;
non è praticabile mantenere il grafo, aggiornarlo e verificarne
l’aciclicità ad ogni richiesta di operazione
Inoltre, la tecnica si basa sull’ipotesi di commitproiezione
In pratica, si utilizzano tecniche
–
–
Che garantiscono la conflict serializzabilità senza dover
costruire il grafo
che non richiedono l’ipotesi della commit-proiezione
Basi di Dati 2 – Prof. Antonio d’Acierno
Isolation: teoria
26