Scheduler Lo scheduler stabilisce l ordine di esecuzione delle operazioni. Le azioni che svolge sono: execute: l operazione può essere eseguita immediatamente, per cui viene passata al data manager reject: l operazione viene rifiutata, determinando il rollback della transazione delay: l operazione viene ritardata Compito dello scheduler è garantire l isolamento: l esecuzione concorrente di diverse transazioni deve essere equivalente all esecuzione seriale delle stesse. Come soddisfare a priori questo vincolo? Esiste uno strumento matematico atto a validare le strategie operate dallo scheduler, noto come teoria della serializzabilità.
Serializzabilità Notazione: o i [x], dove o {r,w}, denota una operazione di lettura/scrittura sul i dato x da parte della transazione T i o i, dove o {c,a}, denota il commit o l abort della transazione T i o i [x] o i [y] denota che l operazione o su x deve precedere l operazione o su y se tra due operazioni non viene specificata alcuna relazione di se tra due operazioni non viene specificata alcuna relazione di precedenza, allora l ordine di esecuzione è arbitrario e non influenza il risultato ( èunordine parziale)
Serializzabilità Definizione Una transazione T i è un ordinamento parziale con relazione d ordine parziale < i tale che: 1. T i x DB {r i [x], w i [x]} {a i, c i } definizione del dominio di operazioni per una transazione 2. a i T i se e solo se c i T i commit e abort non possono essere entrambi presenti 3. se t {a i, c i } e t T i allora per ogni t T i : t t, vale t < i t 4. se o i[x], w i[x] T i allora o i [x] < i w i [x] oppure w i [x] < i o i [x] l ultima operazione di una transazione è commit o abort deve esistere un ordinamento delle operazioni in conflitto
Serializzabilità Definizione Il grafo aciclico diretto di T i è un grafo orientato i cui vertici sono operazioni di T i e i cui archi rappresentano le relazioni d ordine tra coppie di operazioni. i Esempio T i : r i i[ [x] w i i[ [x] w i [y] c i Gli archi che si possono ottenere per transitività si possono omettere. w i [z]
Serializzabilità Definizione Una storia completa H su un insieme di transazioni T = {T 1,,T n }èun ordinamento parziale conrelazione d ordinedi parziale < H tale che: n 1. H = T i n i = 1 2. < i < H i = 1 3. se o i [x], w j[x] H allora o i [x] < H w j [x] oppure w j [x] < H o i [x] H comprende tutte le operazioni di T 1,, T n H rispetta l ordine parziale di ogni transazione T 1,, T n H deve definire un ordinamento delle operazioni i in conflitto effettuate da diverse transazioni di {T 1,, T n }
Serializzabilità Definizione Unastoriaèunprefisso di una storia completa. w 1 [y] Esempio r 1 [x] w 1 [x] c 1 T 1 : r 1 1[ [x] w 1 1[ [x] T 2 : w 2 [z] w 1 [y] w 1 [z] c 1 H : completa H : incompleta w 1 [z] w 2 [z] r 2 [x] w 2 [x] c 2 r 1 [x] w 1 [x] w 1 [z] w 2 [z] r 2 [x] w 2 [x] c 2 r 2 [x] w 2 [x] c 2
Serializzabilità Definizione Unastoriaèunprefisso di una storia completa. w 1 [y] Esempio r 1 [x] w 1 [x] c 1 T 1 : r 1 1[ [x] w 1 1[ [x] T 2 : w 2 [z] w 1 [y] w 1 [z] c 1 H : completa H : non è una storia! w 1 [z] w 2 [z] r 2 [x] w 2 [x] c 2 r 1 [x] w 1 [x] w 1 [z] w 2 [z] r 2 [x] w 2 [x] c 2 r 2 [x] w 2 [x] c 2
Serializzabilità Definizione Una transazione T i è committed in una storia H se c i H, mentre è aborted se a i H. La committed projection di H, chiamata C(H), si ottiene da H rimuovendo tutte le operazioni di transazioni uncommitted in H. Proposizione C(H) è una storia completa delle transazioni committed. Perchè prendere in considerazione storie non complete e committed projections e non limitarsi invece ad analizzare storie complete?
Serializzabilità Obiettivo dello scheduler Creare storie serializzabili. Intuizione: H è serializzabile se equivale ad una storia seriale. In dettaglio definire una nozione di equivalenza tra storie definire il concetto di storia seriale determinare le caratteristiche di tutte e sole le storie serializzabili
Serializzabilità Conflict equivalence DuestorieHeH sono conflict equivalent, denotato H H, se: sono definite sullo stesso insieme di transazioni e contengono esattamente lo stesso insieme di operazioni l ordine delle operazioni in conflitto appartenenti a transazioni non abortite è lo stesso: se o i [x], w j [x] H, H, con a i, a j H, H allora o i [x] < H w j [x] se e solo se o i [x] < H w j [x]
Serializzabilità w 1 [y] H: r 1 [x] r 1 [y] w 1 [x] c 1 r 2 [z] w 2 [y] w 2 [x] c 2 H e H sono conflict equivalent H : r 1 [x] r 1 [y] w 1 [x] w 1 [y] c 1 r 2 [z] w 2 [y] w 2 [x] c 2
Serializzabilità w 1 [y] H: r 1 [x] r 1 [y] w 1 [x] c 1 r 2 [z] w 2 [y] w 2 [x] c 2 w 1 1[ [x] H e H non sono conflict equivalent H : r 1 [x] r 1 [y] w 1 [y] c 1 r 2 [z] w 2 [y] w 2 [x] c 2
Serializzabilità Storie seriali Una storia completa H è seriale se per ogni coppia di transazioni T i,t j H, c i precede tutte le operazioni di T j, oppure c j precede tutte le operazioni di T i. In una storia seriale l unica transazione correntemente attiva deve terminare prima che un altra transazione possa essere attivata. Una storia seriale su {T 1,, T n } si denota con l elenco l (in ordine temporale) delle transazioni che la compongono, che altro non è se non una permutazione di {T 1,,T n }. La classe delle storie seriali viene chiamata S.
Serializzabilità Storie serializzabili Una storia H è serializzabile se C(H) è equivalente ad una storia seriale. La classe delle storie serializzabili viene chiamata SR.
Serializzabilità Definizione Sia H una storia su{t 1,,T n }. Il grafo di serializzazione i di H, chiamato SG(H), è un grafo orientato i cui nodi sono le transazioni di C(H) ed esiste un arco T i T j (con i j) se una delle operazioni di T i precede ed è in conflitto con una delle operazioni di T j. Teorema di serializzabilità Una storia H è serializzabile se e solo se SG(H) è aciclico.
Esempio w 1 [y] H: r 1 [x] w 1 [x] w 1 [z] w 2 [z] c 1 r 2 [x] w 2 [x] c 2 SG(H): T 1 T 2 H è serializzabile ed una storia seriale equivalente è T 1, T 2 ottenuta ordinando topologicamente SG(H)
Esempio w 1 [y] H: r 1 [x] w 1 [x] w 1 [z] w 2 [z] c 1 r 2 [x] w 2 [x] c 2 SG(H): T 1 H è serializzabile ed una storia seriale equivalente è T 2 T 3 r 3 [u] w 3 [x] c 3 T 1, T 2, T 3 ottenuta ordinando topologicamente SG(H)
Esempio w 1 [y] r 1 [x] w 1 [x] c 1 w 3 [y] c 3 H: w 1 [z] w 2 [u] r 3 [u] r 2 [x] w 2 [x] c 2 SG(H): T 1 T 2 T 3 H non è serializzabile
Classi di storie La serializzabilità da sola non basta a garantire l assenza di problemi derivanti dall esecuzione concorrente di diverse transazioni. Riprendiamo nell ambito della teoria della serializzabilità le stesse idee proposte per evitare possibili anomalie: ripristinabilità, cascading abort, strettezza.
Classi di storie Definizione T j legge x da T i in H, con T j,t i H, se: w i [x] r j [x] a i r j [x] sew i [x] w k [x] r j [x] allora a k r j [x] Definizione Una storia H è ripristinabile se quando T j legge un qualche dato da T i in H, con i j e c j H, allora: c i < H c j. La classe delle storie ripristinabili si chiama RC.
Classi di storie Definizione Una storia H evita il cascading abort se quando T j legge un qualche dato x da T i in H, coni j, allora: c i < H r j [x]. Laclasse delle storie che evitano il cascading abort si chiama ACA. Definizione Una storia H è stretta se quando w i [x] < H o j [x] inh,coni j, allora: c i (a i )< H o j [x]. La classe delle storie strette viene chiamata ST.
Classi di storie Teorema S ST ACA RC. S SR. RC ACA ST S SR
Classi di storie w 1 [a] H 1 H 1 : r 2 [g] w 2 [a] w 1 [b] r 2 [b] RC w 2 [b] ACA ST S c 2 w 1 [f] c 1 SR
Classi di storie w 1 [a] H 2 : r 2 [g] w 2 [a] w 1 [b] w 1 [f] RC H 2 c 1 ACA ST S r 2 [b] w 2 [b] c 2 SR
Classi di storie w 1 [x] H 3 : c 1 r 2 [x] w 1 [y] r 2 [y] c 2 RC ACA H 3 ST S SR
Classi di storie Definizione Una proprietà P è prefix commit-closed se quando P vale per una storia H allora P vale per ogni C(H ), dove H è un qualunque prefisso di H. Teorema SR, ST, ACA, erc sono prefix commit-closed. Perchè è importante definire scheduler che soddisfano proprietà prefix commit-closed?
Equivalenza View equivalence DuestorieHeH sono view equivalent se producono gli stessi effetti visibili ibili sul database. Questa nozione di equivalenza risulta essere più intuitiva e semplice della nozione di conflict equivalence. Sulla base della view equivalence è possibile ridefinire le classi di storie. Denotiamo con CSR la classe SR basata sulla conflict equivalence e con VSR la classe SR basata sulla view equivalence. Teorema Se H è CSR allora H è VSR.
Equivalenza La conflict equivalence è più restrittiva della view equivalence, in quanto esistono storie che producono gli stessi effetti sulla base di dati ma che non soddisfano la conflict equivalence. Determinare l appartenenza a VSR è un problema NP-completo, mentre determinare l appartenenza a CSR è un problema risolvibile in tempo polinomiale (vedi teorema di serializzabilità).