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