Write-only, read-only.

Slides:



Advertisements
Presentazioni simili
BDE-TRANS 1 Gestione di transazioni concorrenti. BDE-TRANS 2 Lock Principio: –Tutte le letture sono precedute da r_lock (lock condiviso) e seguite da.
Advertisements

BDE-TRANS 1 Gestione di transazioni concorrenti. BDE-TRANS 2 Controllo di concorrenza La concorrenza è fondamentale: decine o centinaia di transazioni.
Controllo della concorrenza basato sui timestamp.
Diagramma degli Stati. Diagramma degli Stati … Definizione è un grafico con nodi ed archi in cui i nodi rappresentano gli stati di una classe e gli archi,
Anno Architetture dati DBMS Centralizzati Controllo di concorrenza Carlo Batini.
Unità di apprendimento 6 Dal problema al programma.
PRIMI CONCETTI ESEMPI INTRODUTTIVI DEFINIZIONI INTRODUZIONE ALLE FUNZIONI.
Prof.ssa Rossella Petreschi Lezione del 3/12/2013 del Corso di Algoritmica GRAFI e PLANARITA’ Lezione n°15.
CONTROLLO DELLA CONCORRENZA
Algoritmi Avanzati a.a.2014/2015 Prof.ssa Rossella Petreschi
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning C
CONTRATTO PRELIMINARE art c.c.
Cammini minimi in grafi:
Definizione di logaritmo
CRITTOGRAFIA Per crittografia si intende la protezione delle informazioni mediante l'utilizzo di codici e cifre. La crittografia è un componente fondamentale.
Insiemi e logica Insiemi e operazioni insiemistiche
Protocollo di locking a due fasi stretto
I DIAGRAMMI DI FLUSSO Vantaggi e svantaggi.
1 La lunghezza della circonferenza
PERMUTAZIONI Consideriamo i primi cinque numeri naturali 1,2,3,4,5
Algoritmi Avanzati a.a.2013/2014 Prof.ssa Rossella Petreschi
Definizione e caratteristiche
4 < 12 5 > −3 a < b a > b a ≤ b a ≥ b
Alberi binari Definizione Sottoalberi Padre, figli
Algoritmi Avanzati Prof.ssa Rossella Petreschi
TEORIA EQUAZIONI.
I PERMESSI IN LINUX.
Unità di apprendimento 7
Equazioni differenziali
Equazioni e disequazioni
Algoritmi Avanzati a.a.2014/2015 Prof.ssa Rossella Petreschi
Deadlock e livelock.
Lezione n°14 Reti di flusso Prof.ssa Rossella Petreschi
Algoritmi Avanzati a.a.2011/2012 Prof.ssa Rossella Petreschi
Macchine sequenziali Capitolo 4.
Algoritmi Avanzati Prof.ssa Rossella Petreschi
Algoritmi Avanzati a.a.2011/2012 Prof.ssa Rossella Petreschi
I FILES AD ACCESSO SEQUENZIALE
Lock a tre valori.
Algoritmi Avanzati a.a.2014/2015 Prof.ssa Rossella Petreschi
Usi (meno scontati) della visita DFS
ATOMICITÀ Il tipo di atomicità di un programma PL/SQL è stabilito dall’ambiente chiamante oppure dal programma Gestione atomicità: COMMIT SAVEPOINT nome_punto.
Lock binario.
Tecnologia di un Database Server
Le proposizioni DEFINIZIONE. La logica è un ramo della matematica che studia le regole per effettuare ragionamenti rigorosi e corretti. DEFINIZIONE. Una.
Lock.
K4 è planare? E K3,3 e K5 sono planari? Sì!
Lezione n°12 Prof.ssa Rossella Petreschi
Codicfiche Interi Complemento alla base.
I numeri relativi DEFINIZIONE. Si dicono numeri relativi tutti i numeri interi, razionali e irrazionali dotati di segno (positivo o negativo). ESEMPI Numeri.
ABBINAMENTO Lezione n°13
La misura della circonferenza e del cerchio
Algoritmi per il flusso nelle reti
Algoritmi e Strutture Dati
Ricorsione 16/01/2019 package.
Schema generale, visita in ampiezza e profondità.
Usi (meno scontati) della visita DFS
Algoritmi Avanzati Prof.ssa Rossella Petreschi
Algoritmi e Strutture dati a.a.2010/2011 Prof.ssa Rossella Petreschi
Variazione percentuale di una grandezza
APPUNTI SUL LINGUAGGIO C Esercizi su File e Alberi Binari
Cammini minimi in grafi:
Unità 1 Programmi base.
Grafi e problem solving
Matrici e determinanti
Relazione tra due insiemi:
Il problema del flusso nelle reti
La programmazione strutturata
Definizione e caratteristiche
La retta Esercitazioni Dott.ssa Badiglio S..
Transcript della presentazione:

Write-only, read-only

Una transazione può accedere ad un item solo per leggerlo, senza modificarlo Se una transazione desidera solo leggere un item X effettua una rlock(X) che impedisce a qualsiasi altra transazione di modificare X, ma non di leggere X Se una transazione desidera solo modificare un item X effettua un wlock(X); in tal caso nessuna altra transazione può leggere o modificare X Entrambi i lock sono rilasciati mediante una unlock(X)

Modello per le transazioni Una transazione è una sequenza di operazioni di rlock, wlock e unlock ogni rlock(X) implica la lettura di X ogni unlock(X) associato a una wlock(X) implica la scrittura di X

Modello per le transazioni Il nuovo valore viene calcolato da una funzione che è associata in modo univoco ad ogni coppia wlock-unlock ed ha per argomenti tutti gli item letti (rlocked) dalla transazione prima dell’operazione di unlock T1 rlock(X) unlock(X) wlock(Y) unlock(Y) f1(X)

Equivalenza Due schedule sono equivalenti se producono lo stesso valore per ogni item su cui viene effettuato un wlock (le formule che danno i valori finali per ciascun item sono le stesse) NOTA non si assume che il valore di un item letto da una transazione sia significativo indipendentemente dal fatto che abbia influenza sul valore finale di qualche item prodotto dalla transazione.

Serializzabilità (view serializability) Uno schedule è serializzabile se esiste uno schedule seriale che produce lo stesso valore per ogni item su cui lo schedule effettua operazioni di scrittura

Consideriamo il seguente schedule di tre transazioni: I valori finali degli item sono evidenziati in rosso…

… e coincidono con i valori finali degli item prodotti dallo schedule seriale: Quindi in base alla definizione di serializzabilità data, lo schedule è serializzabile!

Ma se T3 non viene eseguita i valori finali degli item …

…non coincidono nè con quelli prodotti dallo schedule seriale T1 T2

…nè con quelli prodotti dallo schedule seriale T2 T1 e quindi non è serializzabile!!!

Conclusione Occorre una diversa definizione di equivalenza di schedule e quindi una diversa definizione di serializzabilità

Serializzabilità (conflict serializability) Uno schedule seriale S’ è equivalente ad uno schedule S se soddisfa i seguenti vincoli: se in S una transazione T2 legge il valore di un item X scritto da una transazione T1 allora in S’ T1 deve precedere T2 se T3 è una terza transazione che scrive X allora in S’ T3 deve precedere T1 o seguire T2

Serializzabilità (conflict serializability) Inoltre se una transazione legge il valore iniziale di un item X allora in S’ deve precedere qualsiasi transazione che scriva X se una transazione scrive il valore finale di un item X allora in S’ deve seguire qualsiasi transazione che scriva X.

Serializzabilità (conflict serializability) I vincoli 3 e 4 sono riassorbiti dai vincoli 1 e 2 se postuliamo l’esistenza di una transazione iniziale T0 che scrive i valori iniziali di tutti gli item (senza leggerne nessuno) e una transazione finale Tf che legge i valori finali di tutti gli item (senza scriverne nessuno)

Testare la serializzabilità Algoritmo 2 Dato uno schedule S Passo 1 crea un poligrafo diretto P nodi: transazioni+T0+Tf archi vengono creati gli archi in accordo al vincolo 1: se una transazione T2 legge il valore di un item X scritto da una transazione T1 viene aggiunto l’arco T1 -->T2 vengono eliminati tutti gli archi entranti in transazioni inutili (una transazione inutile T può essere individuata facilmente perché non c’è nessun cammino in P da T a Tf)

Testare la serializzabilità vengono creati gli archi in accordo al vincolo 2: per ogni arco T1 -->T2 se T3 è transazione distinta da quella iniziale che scrive un item che ha imposto l’esistenza dell’arco T1 -->T2, si aggiunge: l’arco T2 -->T3 se T1= T0 e T2  Tf l’arco T3 -->T1 se T2= Tf e T1  T0 la coppia di archi alternativi T3 -->T1 e T2 -->T3 se T1  T0 e T2  Tf

Testare la serializzabilità Passo 2 Se almeno un dei grafi ottenuti prendendo un solo arco da ogni coppia di archi alternativi è aciclico allora lo schedule è serializzabile e uno schedule seriale equivalente si ottiene mediante sorting topologico del grafo di serializzazione

T2 A D T0 Tf T4 A B B B C C A C T3 T1

Lo schedule è serializzabile. Uno schedule seriale equivalente è Tf T4 A B B B C C A C T3 T1 Lo schedule è serializzabile. Uno schedule seriale equivalente è T1 T2 T3 T4

T2 T0 Tf T1 T3 Lo schedule non è serializzabile T1 T2 T3 wlock(A) unlock(A) wlock(C) unlock(C) rlock(A) wlock(B) unlock(B) rlock(C) wlock(D) unlock(D) T2 C A T0 C Tf T1 A B D T3 Lo schedule non è serializzabile