Controllo di concorrenza Teoria

Transcript

Controllo di concorrenza Teoria
Controllo di concorrenza
Esercitazioni - Basi di dati (complementi)
Autore: Dr. Simone Grega
Teoria
• Schedule: Una sequenza di esecuzione di un insieme
di transazioni e’ detta schedule.
• Seriale: Una schedule e’ seriale se una transazione
termina prima che la successiva inizi.
• Serializzibilità: Uno schedule e’ serializzabile se l’esito
della sua esecuzione e’ lo stesso che si avrebbe se le
transazioni in esso contenute fossero eseguite in una
(qualsiasi) sequenza seriale
1
Teoria (2)
• Equivalenza: Una schedule e’ serializzabile se e solo se
esso e’ equivalente ad uno schedule seriale.
• View equivalent: Le schedules S1, S2 sono View
equivalent se: possiedono la stessa relazione “legge-da”
e le stesse scritture finali.
• Conflict equivalent: Le schedules S1, S2 sono conflict
equivalent se: S1 puo’ essere trasformato in S2 mediante
una sequenza di scambi (swaps) tra azioni non in conflitto
tra loro
Teoria (3)
CSR
VSR
2PL
TS
2
Esercizio 1 - Anomalie
• Esercizio sull'analisi delle possibili anomalie
derivanti da non isolamento che si possono
verificare durante un’esecuzione concorrente.
1) Update loss (perdita dell’aggiornamento)
2) Dirty read/Dirty data (lettura sporca)
3) Non-repeateable read (lettura non ripetibile)
4) Ghost update (aggiornamento fantasma)
Es 1.1
Indicare se i seguenti schedule possono
produrre anomalie.
r1(x),w1(x),r2(x),w2(y),a1,c2
(1) E' uno schedule seriale
(2) Non basta perchè T2 usa un valore che non
esiste nello stato finale.
(3) Tipo anomalia dirty data
3
Es 1.2
Indicare se i seguenti schedule possono
produrre anomalie.
r1(x),w1(x),r2(y),w2(y),a1,c2
(1) E' uno schedule seriale
(2) Nessuna anomalia
Es 1.3
Indicare se i seguenti schedule possono
produrre anomalie.
r1(x),r2(x),r2(y),w2(y),r1(z),a1,c2
r1(x),r1(z),r2(x),r2(y),w2(y),a1,c2
(1) E' uno schedule View serializzabile, perchè
stesse relazione “legge-da” e le stesse scritture
finali di uno schedule seriale.
(2) Nessun tipo di anomalia
4
Es 1.3-2
Indicare se i seguenti schedule possono
produrre anomalie.
Variazione
r1(x),r2(x),r2(y),w2(y),r1(y),a1,c2
Non stessa
legge-da
SI
rispetto
esercizio
precedente
r1(x),r1(y),r2(x),r2(y),w2(y),a1,c2
r2(x),r2(y),w2(y), r1(x),r1(y),a1,c2
(1) E' uno schedule View serializzabile, perchè
stesse relazione “legge-da” e le stesse scritture
finali di uno schedule seriale.
(2) Nessun tipo di anomalia
Es 1.3-3
Indicare se i seguenti schedule possono
produrre anomalie.
Variazione
rispetto
esercizio
1.3-2
r1(y),r2(x),r2(y),w2(y),r1(y),c1,c2
r1(y),r1(y),r2(x),r2(y),w2(y),c1,c2
SI
r2(x),r2(y),w2(y), r1(y),r1(y),c1,c2
(1) E' uno schedule View serializzabile, perchè
stesse relazione “legge-da” e le stesse scritture
finali di uno schedule seriale.
(2)Anomalia Non-repeateable read perchè ho
r1(y)…w2(y)…r1(y)
NO
5
Es 1.4
Indicare se i seguenti schedule possono
produrre anomalie.
r1(x),r2(x),w2(x),w1(x),c1,c2
1
2
(1) Ho un ciclo quindi non Conflict serializzabile
(2)Tipo di anomalia (Ghost Update).
Es 1.5
Indicare se i seguenti schedule possono
produrre anomalie.
r1(x),r2(x),w2(x),r1(y),c1,c2
1
2
(1) Lo schedule è Conflict serializzabile.
(2) Nessun tipo di anomalia.
6
Es 1.6
Indicare se i seguenti schedule possono
produrre anomalie.
r1(x),w1(x),r2(x),w2(x),c1,c2
r1(x),w1(x),r2(x),w2(x),c1,c2
(1)E' uno schedule View serializzabile, perchè stesse
relazione “legge-da” e le stesse scritture finali di
uno schedule seriale.
(2) Nessun tipo di anomalia
Esercizio 2 - Serializzabilità
• Classificazione schedule in:
– NonSR: Non serializzabile
– VSR: View serializzabile
– CSR: Conflict serializzabile
• Testo:
Classificare i seguenti schedule (come: NonSR,
VSR,CSR); nel caso uno schedule sia VSR oppure CSR,
indicare tutti gli schedule seriali ad esso equivalenti
Note: CSR < VSR
7
Es 2.1
r1(x),w1(x),r2(z),r1(y),w1(y),r2(x),w2(x),w2(z)
1
2
CSR?
Si perché non ho cicli
Es 2.1 Trovo uno schedule
seriale
r1(x),w1(x),r2(z),r1(y),w1(y),r2(x),w2(x),w2(z)
r1(x),w1(x),r1(y),r2(z),w1(y),r2(x),w2(x),w2(z)
r1(x),w1(x),r1(y),r2(z),w1(y),r2(x),w2(x),w2(z)
r1(x),w1(x),r1(y),w1(y),r2(z),r2(x),w2(x),w2(z)
Es a casa: Indicare se possibile altri scheduli seriali
8
Es 2.2- CSR?
r1(x),w1(x),w3(x),r2(y),r3(y),w3(y),w1(y),r2(x)
2
1
3
CSR?
No perchè ho cicli
Es 2.2 - VSR?
r1(x),w1(x),w3(x),r2(y),r3(y),w3(y),w1(y),r2(x)
r2(y),r2(x),w3(x),r3(y),w3(y),r1(x),w1(x),w1(y)
r2(y),r2(x),r1(x),w1(x),w1(y),w3(x),r3(y),w3(y)
Stesse Scritture finali?
Non è possibile perchè sia T1 sia T3 scrivono
entrambi su X e Y, mentre nel mio schedule le
scritture finali sono di T1 per Y e T3 per X.
VSR? No, perchè non esiste uno schedule seriale
con le stesse scritture finali.
9