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
Documenti analoghi
Controllo di concorrenza Teoria
transazioni in esso contenute fossero eseguite in una
(qualsiasi) sequenza seriale