BDE-TRANS 1 Gestione di transazioni concorrenti. BDE-TRANS 2 Controllo di concorrenza La concorrenza è fondamentale: decine o centinaia di transazioni.

Slides:



Advertisements
Presentazioni simili
Programmazione ad oggetti
Advertisements

Algoritmi e Strutture dati Mod B
Algoritmi e Strutture Dati
Algoritmi e Strutture Dati
Il raffinamento dello schema e la normalizzazione nei database relazionali Eugenio Di Sciascio.
Algoritmi e Strutture Dati (Mod. B)
Capitolo 3 Risorse e Stallo 3.1. Risorse 3.2. Introduzione
© 2007 SEI-Società Editrice Internazionale, Apogeo Unità D3 Sicurezza e concorrenza nelle basi di dati.
I DATI LE ISTRUZIONI LE STRUTTURE FONDAMENTALI
Problemi di soddisfacimento di vincoli Maria Simi a.a. 2005/2006.
G. Mecca – – Università della Basilicata Basi di Dati Tecnologia di un DBMS: Concorrenza e Affidabilità Concetti Avanzati versione 2.0.
Introduzione Cosa sono le reti di Petri?
1 Il punto di vista Un sistema è una parte del mondo che una persona o un gruppo di persone, durante un certo intervallo di tempo, sceglie di considerare.
Interfaccia del file system
Deadlock Modello del sistema Caratterizzazione dei deadlock
La Modifica dei Dati in una Base Dati La modifica dei dati contenuti allinterno di una base dati è unoperazione delicata Infatti, ogni potenziale problema.
Algoritmi e Strutture Dati
SCHEDA INFORMATIVA DI UNITÀ
Macchine non completamente specificate
Computational Learning Theory and PAC learning
Algoritmi Paralleli e Distribuiti a.a. 2008/09 Lezione del 19/05/2009 Prof. ssa ROSSELLA PETRESCHI a cura del Dott. SAVERIO CAMINITI.
Algoritmo di Ford-Fulkerson
Tecnologia di un data base server: Controllo della Concorrenza
Il problema del minimo albero ricoprente in un grafo con archi privati
Algoritmi e Strutture Dati
Cammini minimi Algoritmo SPT.Acyclic
GEOMETRIA RELAZIONALE NEI CAD. In un CAD ogni oggetto è creato in sequenza: eseguendo un comando dellutente; leggendo dati da un file. Tutti gli oggetti.
Algoritmi e Strutture Dati (Mod. B)
Algoritmi e Strutture Dati (Mod. B)
Algoritmi e Strutture Dati (Mod. B)
Algoritmi e Strutture Dati (Mod. B)
Risorse e Stallo.
Tecnologie di un database server: la gestione della concorrenza
Algoritmi e Strutture Dati 20 aprile 2001
Algoritmi e Strutture Dati
Analisi e Sintesi di circuiti sequenziali. Definizione Una macchina sequenziale é un sistema nel quale, detto I(t) l'insieme degli ingressi in t, O(t)
Le transazioni Itis Max Planck.
Normalizzazione Le forme normali certificano che la base di dati soddisfa criteri di qualità che mirano ad evitare le ridondanze e i conseguenti effetti.
Concorrenza e Sincronizzazione di Thread e Processi
Esempi di modellazione di situazioni particolari.
Logica Matematica Seconda lezione.
Algoritmi e Strutture Dati
Basi di Dati e Sistemi Informativi
due parole sull’interpolazione
Informatica e Algoritmi
Università degli studi di Parma Dipartimento di Ingegneria dell’Informazione Politecnico di Milano Reti Logiche A Macchine non completamente specificate.
Implementazione di dizionari Problema del dizionario dinamico Scegliere una struttura dati in cui memorizzare dei record con un campo key e alcuni altri.
R 255 G 211 B 8 R 255 G 175 B 0 R 127 G 16 B 162 R 163 G 166 B 173 R 104 G 113 B 122 R 234 G 234 B 234 R 175 G 0 B 51 R 0 G 0 B 0 R 255 G 255 B 255 Supporting.
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.
ATOMICITÀ Il tipo di atomicità di un programma PL/SQL è stabilito dall’ambiente chiamante oppure dal programma Gestione atomicità: –COMMIT –SAVEPOINT nome_punto.
Capitolo 9 Il problema della gestione di insiemi disgiunti (Union-find) Algoritmi e Strutture Dati.
Capitolo 13 Cammini minimi: Ordinamento topologico Algoritmi e Strutture Dati.
Tipo Documento: unità didattica 4 Modulo 14 Compilatore: Antonella Bolzoni Supervisore: Data emissione: Release: Indice: A.Scheda informativa B.Introduzione.
algoritmi approssimati
Ordinamento topologico
Capitolo 12 Minimo albero ricoprente: Algoritmo di Kruskal Algoritmi e Strutture Dati.
Capitolo 13 Cammini minimi Algoritmi e Strutture Dati.
Codici prefissi Un codice prefisso è un codice in cui nessuna parola codice è prefisso (parte iniziale) di un’altra Ogni codice a lunghezza fissa è ovviamente.
1 Risorse e Stallo 2 Risorse (1) Esempi di risorse –stampanti –nastri –tabelle I processi devono accedere alle risorse in un ordine ragionevole Supponiamo.
Automi temporizzati.
Algoritmi approssimati. Algoritmi approssimati Per qualche problema NP-completo esistono algoritmi polinomiali che ritornano soluzioni “quasi ottime”.
Algoritmi e Strutture Dati
Capitolo 12 Minimo albero ricoprente: Algoritmo di Kruskal Algoritmi e Strutture Dati.
Algoritmi e Strutture Dati Luciano Gualà
Controllo della concorrenza basato sui timestamp.
Anno Architetture dati DBMS Centralizzati Controllo di concorrenza Carlo Batini.
Algoritmi Avanzati a.a.2010/2011 Prof.ssa Rossella Petreschi Complessità e Trasportabilità Lezione n°3.
Logica Lezione 11, Annuncio Non si terrà la lezione di Lunedì 16 Marzo.
Write-only, read-only.
ATOMICITÀ Il tipo di atomicità di un programma PL/SQL è stabilito dall’ambiente chiamante oppure dal programma Gestione atomicità: COMMIT SAVEPOINT nome_punto.
Transcript della presentazione:

BDE-TRANS 1 Gestione di transazioni concorrenti

BDE-TRANS 2 Controllo di concorrenza La concorrenza è fondamentale: decine o centinaia di transazioni al secondo, non possono essere seriali Esempi: banche, prenotazioni aeree Modello di riferimento Operazioni di input-output su oggetti astratti x, y, z Problema Anomalie causate dall'esecuzione concorrente, che quindi va governata

BDE-TRANS 3 Perdita di aggiornamento Due transazioni identiche: –t 1 : r(x), x = x + 1, w(x) –t 2 : r(x), x = x + 1, w(x) Inizialmente x=2; dopo un'esecuzione seriale x=4 Un'esecuzione concorrente: t 1 t 2 bot r 1 (x) x = x + 1 bot r 2 (x) x = x + 1 w 1 (x) commit w 2 (x) commit Un aggiornamento viene perso: x=3 (scrittura w1)

BDE-TRANS 4 Lettura sporca t 1 t 2 bot r 1 (x) x = x + 1 w 1 (x) bot r 2 (x) abort commit Aspetto critico: t 2 ha letto uno stato intermedio ("sporco") e lo può comunicare all'esterno (t1 abortisce)

BDE-TRANS 5 Letture inconsistenti t 1 legge due volte: t 1 t 2 bot r 1 (x) bot r 2 (x) x = x + 1 w 2 (x) commit r 1 (x) commit t 1 legge due volte x, valori diversi per x !

BDE-TRANS 6 Aggiornamento fantasma Assumere ci sia un vincolo y + z = 1000; t 1 t 2 bot r 1 (y) bot r 2 (y) y = y r 2 (z) z = z w 2 (y) w 2 (z) commit r 1 (z) s = y + z commit s = 1100: il vincolo non soddisfatto, t 1 non vede aggiornamento di z

BDE-TRANS 7 Schedule Sequenza di operazioni di transazioni concorrenti Esempio: S 1 : r 1 (x) r 2 (z) w 1 (x) w 2 (z) Ipotesi semplificativa (che rimuoveremo in futuro, in quanto non accettabile in pratica): –consideriamo la commit-proiezione e ignoriamo le transazioni che vanno in abort, rimuovendo tutte le loro azioni dallo schedule

BDE-TRANS 8 Controllo di concorrenza Obiettivo: evitare le anomalie Scheduler: un sistema che accetta o rifiuta (o riordina) le operazioni richieste dalle transazioni Schedule seriale: le transazioni sono separate, una alla volta S 2 : r 0 (x) r 0 (y) w 0 (x) r 1 (y) r 1 (x) w 1 (y) r 2 (x) r 2 (y) r 2 (z) w 2 (z) Schedule serializzabile: produce lo stesso risultato di uno schedule seriale sulle stesse transazioni –Richiede una nozione di equivalenza fra schedule

BDE-TRANS 9 Idea base Individuare classi di schedule serializzabili che siano sottoclassi degli schedule possibili, siano serializzabili e la cui proprietà di serializzabilità sia verificabile a costo basso Schedule Seriali Schedule Serializzabili

BDE-TRANS 10 View-Serializzabilità Definizioni preliminari: –r i (x) legge-da w j (x) in uno schedule S se w j (x) precede r i (x) in S e non c'è w k (x) fra r i (x) e w j (x) in S –w i (x) in uno schedule S è scrittura finale se è l'ultima scrittura dell'oggetto x in S Schedule view-equivalenti (S i  V S j ): hanno la stessa relazione legge-da e le stesse scritture finali Uno schedule è view-serializzabile se è view-equivalente ad un qualche schedule seriale L'insieme degli schedule view-serializzabili è indicato con VSR

BDE-TRANS 11 View serializzabilità: esempi S 3 : w 0 (x) r 2 (x) r 1 (x) w 2 (x) w 2 (z) S 4 : w 0 (x) r 1 (x) r 2 (x) w 2 (x) w 2 (z) S 5 : w 0 (x) r 1 (x) w 1 (x) r 2 (x) w 1 (z) S 6 : w 0 (x) r 1 (x) w 1 (x) w 1 (z) r 2 (x) –S 3 è view-equivalente allo schedule seriale S 4 (e quindi è view-serializzabile) –S 5 non è view-equivalente a S 4, ma è view-equivalente allo schedule seriale S 6, e quindi è view-serializzabile S 7 : r 1 (x) w 1 (x) r 2 (x) w 2 (x) S 8 : r 1 (x) r 2 (x) w 1 (x) w 2 (x) (es. perdita di aggiornamento) –S 8 non view-serializzabile

BDE-TRANS 12 View serializzabilità Complessità: –la verifica della view-equivalenza di due dati schedule: polinomiale –decidere sulla view serializzabilità di uno schedule: problema NP-completo Non è utilizzabile in pratica

BDE-TRANS 13 Conflict-serializzabilità Definizione preliminare: –Un'azione a i è in conflitto con a j (i  j), se operano sullo stesso oggetto e almeno una di esse è una scrittura. Due casi: conflitto read-write (rw o wr) conflitto write-write (ww). Schedule conflict-equivalenti (S i  C S j ): includono le stesse operazioni e ogni coppia di operazioni in conflitto compare nello stesso ordine in entrambi Uno schedule è conflict-serializable se è conflict-equivalente ad un qualche schedule seriale L'insieme degli schedule conflict-serializzabili è indicato con CSR

BDE-TRANS 14 Conflict-equivalenza: esempio S 10 è conflict-equivalente allo schedule seriale S 11 S 10 è perciò conflict-serializzabile

BDE-TRANS 15 Verifica di conflict-serializzabilità Per mezzo del grafo dei conflitti: –un nodo per ogni transazione t i –un arco (orientato) da t i a t j se c'è almeno un conflitto fra un'azione a i e un'azione a j tale che a i precede a j Teorema –Uno schedule è in CSR se e solo se il grafo è aciclico

BDE-TRANS 16 Verifica di conflict-serializzabilità: esempio

BDE-TRANS 17 Controllo della concorrenza in pratica Anche la conflict-serializzabilità, pur più rapidamente verificabile (l'algoritmo, con opportune strutture dati richiede tempo lineare), è inutilizzabile in pratica La tecnica sarebbe efficiente se potessimo conoscere il grafo dall’inizio, ma così non è: uno scheduler deve operare “incrementalmente”, cioè ad ogni richiesta di operazione decidere 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 commit-proiezione In pratica, si utilizzano tecniche che –garantiscono la conflict-serializzabilità senza dover costruire il grafo –non richiedono l’ipotesi della commit-proiezione