Anno 2013-2014 Architetture dati DBMS Centralizzati Controllo di concorrenza Carlo Batini.

Slides:



Advertisements
Presentazioni simili
Tecnologia delle basi di dati: Strutture fisiche di accesso
Advertisements

Gestione della memoria centrale
Architettura MySQL E Motori MySQL L. Vigliano.
Sicurezza e concorrenza nelle basi di dati
© 2007 SEI-Società Editrice Internazionale, Apogeo Unità D3 Sicurezza e concorrenza nelle basi di dati.
Problema e algoritmo Prof. Baldassare Galia 2002.
Type Checking (1° parte)
Java: programmazione concorrente con condivisione di memoria
Algoritmi e Programmazione
Classi ed Oggetti in Java (Cenni). Richiami Ruolo delle Classi in Java Oggetti.
Metodologie di Programmazione = decomposizione basata su astrazioni
Biglietti e Ritardi: schema E/R
Biglietti e Ritardi: schema E/R
Biglietti: schema E/R.
1 Biglietti: schema E/R. 2 Biglietti: albero degli attributi.
Basi di dati attive Dispongono di un sottosistema integrato per definire e gestire regole di produzione (regole attive) Regole di tipo: Evento-Condizione-Azione.
Time Sharing Il termine “Time Sharing” proviene dall'inglese e significa letteralmente “partizione di tempo”. Questa è una tecnica sviluppatasi negli.
Hash Tables Indirizzamento diretto Tabelle Hash Risoluzioni di collisioni Indirizzamento aperto.
Sincronizzazione fra processi
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.
Indirizzi delle variabili A ogni variabile sono associati tre concetti fondamentali: il valore memorizzato; il tipo dati di appartenenza; lindirizzo. Il.
Tecnologia di un data base server: Controllo della Concorrenza
Risorse e Stallo.
Tecnologie di un database server: la gestione della concorrenza
Basi di dati attive Paolo Atzeni.
Struttura dei sistemi operativi (panoramica)
Modelli simulativi per le Scienze Cognitive Paolo Bouquet (Università di Trento) Marco Casarotti (Università di Padova)
Aspetti sistemistici dellSQL. SQL environment Un SQL environment è un framework dove esistono dati e possono aversi istruzioni SQL eseguite su questi.
Cenni sulla gestione delle transazioni in DBMS
Il Linguaggio Macchina
Sincronizzazione fra thread
Le transazioni Itis Max Planck.
Corso di Matematica Discreta cont. 2
Modello Relazionale Definisce tipi attraverso il costruttore relazione, che organizza i dati secondo record a struttura fissa, rappresentabili attraverso.
Vincoli di integrità generici Con i costrutti visti sinora, non è sempre possibile definire tutti i possibili vincoli di integrità. Per questo esiste listruzione.
Progettazione di una base di dati
Transazioni.
Concorrenza e Sincronizzazione di Thread e Processi
Anche la RB-Delete ha due fasi: Nella prima viene tolto un nodo y avente uno dei sottoalberi vuoto sostituendolo con la radice dellaltro sottoalbero. Per.
Metodo della moltiplicazione
Cos’è una transazione? Una transazione è un’unità logica di elaborazione richiesta da un’applicazione che dà luogo a una serie di operazioni fisiche elementari.
Per valutare la complessità ammortizzata scomponiamo ogni Union: nelle due FindSet e nella Link che la costituiscono e valuteremo la complessità in funzione.
Basi di Dati e Sistemi Informativi
Dati e DBMS DBMS relazionali SQL Progettazione di una base di dati Programma del Corso.
Architettura Centralizzata di un DBMS Relazionale
COME RAGIONA UN COMPUTER
I processi.
© 2007 SEI-Società Editrice Internazionale, Apogeo Unità D3 Sicurezza e concorrenza nelle basi di dati.
Progettazione Logica Il prodotto della progettazione logica è uno schema logico che rappresenta le informazioni contenute nello schema E-R in modo corretto.
Implementazione di dizionari Problema del dizionario dinamico Scegliere una struttura dati in cui memorizzare dei record con un campo key e alcuni altri.
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.
Parte 3 Lo stato: variabili, espressioni ed assegnazioni
ATOMICITÀ Il tipo di atomicità di un programma PL/SQL è stabilito dall’ambiente chiamante oppure dal programma Gestione atomicità: –COMMIT –SAVEPOINT nome_punto.
Database Elaborato da: Claudio Ciavarella & Marco Salvati.
Tipo Documento: unità didattica 4 Modulo 14 Compilatore: Antonella Bolzoni Supervisore: Data emissione: Release: Indice: A.Scheda informativa B.Introduzione.
1 Metodologie di Programmazione = decomposizione basata su astrazioni.
Transazioni in MySQL 4 Transazioni in MySQL 4
1 Risorse e Stallo 2 Risorse (1) Esempi di risorse –stampanti –nastri –tabelle I processi devono accedere alle risorse in un ordine ragionevole Supponiamo.
Problemi, algoritmi e programmazione
BDE-TRANS 1 Gestione di transazioni concorrenti. BDE-TRANS 2 Controllo di concorrenza La concorrenza è fondamentale: decine o centinaia di transazioni.
Le basi di dati.
Controllo della concorrenza basato sui timestamp.
Informatica Problemi e algoritmi. una situazione che pone delle domande cui si devono dare risposte. Col termine problema o situazione problematica s’indica.
Linguaggio SQL. Linguaggi per database La diffusione del modello relazionale ha favorito l’uso prevalente di linguaggi non procedurali: in questo modo.
Corso di Architetture C. Batini Architetture Distribuite DDBMS Query Processing, Controllo di concorrenza, Recovery management.
Laurea Magistrale in Informatica Architetture basi di dati A.A Docente: Prof. Carlo Batini Proprieta’ e caratteristiche strutturali dei sistemi.
Il Sistema Operativo Processi e Risorse
Anno Architetture dati - DBMS Centralizzati Recovery management Carlo Batini.
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:

Anno Architetture dati DBMS Centralizzati Controllo di concorrenza Carlo Batini

Complementi di Basi di Dati Controllo di Concorrenza – Carlo Batini e Paolo Missier 2003– 2 Sappiamo gia’ che ….

Complementi di Basi di Dati Controllo di Concorrenza – Carlo Batini e Paolo Missier 2003– 3 Concurrency control

Complementi di Basi di Dati Controllo di Concorrenza – Carlo Batini e Paolo Missier 2003– 4 Concorrenza - 1  Il throughput di un sistema e’ il numero di transazioni per secondo (tps) accettate dal sistema a regime  In un sistema che non prevede esecuzione concorrente, il throughput e’ al massimo pari al tempo di esecuzione di una singola transazione –Puo’ essere dell’ordine dei secondi per una normale applicazione OLTP  In un DBMS, si vuole ottenere un throughput dell’ordine di tps  Questo impone un alto grado di concorrenza tra le transazioni in esecuzione –Es Se una transazione impiega mediamente 0.1 secondi ad eseguire, ad un throughput di 100tps corrispondono mediamente 10 transazioni in esecuzione concorrente  Esempi tipici: applicazioni bancarie, di prenotazione voli

Complementi di Basi di Dati Controllo di Concorrenza – Carlo Batini e Paolo Missier 2003– 5 Concorrenza - esempio Void chooseSeat() { /* codice C che verifica la disponibilita’ di posti su un volo e prenota un posto */ (1) EXEC SQL SELECT occupied INTO :occ FROM flights WHERE fltNum = :flight AND fltDate = :date AND fltSeat = :seat; (2) if (!occ) { EXEC SQL UPDATE Flights SET occupied = TRUE WHERE fltNum = :flight AND fltDate = :date AND fltSeat = :seat; /* notifica posto prenotato */ } else /* notifica volo completo */ }

Complementi di Basi di Dati Controllo di Concorrenza – Carlo Batini e Paolo Missier 2003– 6 Concorrenza - 2  Supponiamo che la funzione chooseSeat() venga eseguita simultaneamente da due o piu’ applicazioni (es due agenzie viaggi), che cercano di prenotare lo stesso posto sullo stesso volo  E’ possibile un’evoluzione temporale come la seguente:  A questo punto, abbiamo una doppia prenotazione  Il DBMS transazionale gestisce questo problema garantendo la proprieta’ di isolamento Appl. 1 Esegue (1), trova posto Esegue (2), alloca il posto Appl. 2 Esegue (1), trova posto Esegue (2), alloca il posto tempo

Complementi di Basi di Dati Controllo di Concorrenza – Carlo Batini e Paolo Missier 2003– 7 Proprieta’ di Isolamento delle transazioni  Scriviamo la funzione precedente come una transazione:  La proprieta’ di isolamento di una transazione garantisce che essa esegua come se non ci fosse concorrenza  Questa proprieta’ e’ garantita facendo in modo che ciascun insieme di transazioni concorrenti sottoposte al sistema sia sempre serializzabile Void chooseSeat() { Begin transaction (1) EXEC SQL SELECT occupied INTO :occ FROM flights WHERE fltNum = :flight AND fltDate = :date AND fltSeat = :seat; (2) if (!occ) { EXEC SQL UPDATE Flights SET occupied = TRUE WHERE fltNum = :flight AND fltDate = :date AND fltSeat = :seat; /* notifica posto prenotato */ } else { /* notifica volo completo */ } commit work; }

Complementi di Basi di Dati Controllo di Concorrenza – Carlo Batini e Paolo Missier 2003– 8 Introduciamo ora un primo insieme di concetti  Schedule  Schedule seriale  Schedule serializzabile e serializzabilita’

Complementi di Basi di Dati Controllo di Concorrenza – Carlo Batini e Paolo Missier 2003– 9 Schedule  Una sequenza di esecuzione di un insieme di transazioni e’ detta schedule  Es e’ uno schedule la sequenza  T1: trova posto, T2: trova posto; T1: alloca posto; T2 alloca posto   Una schedule e’ seriale se una transazione termina prima che la successiva inizi  Lo schedule seguente e’ seriale  T1: trova posto, T1: alloca posto; T2: trova posto; T2 alloca posto  Il precedente non lo e’.

Complementi di Basi di Dati Controllo di Concorrenza – Carlo Batini e Paolo Missier 2003– 10 Osservazione  Date due transazioni T1, T2, in generale  A. eseguire T1 prima di T2  porta ad un risultato (modifica dello stato del DB) diverso che  B. Eseguire T2 prima di T1

Complementi di Basi di Dati Controllo di Concorrenza – Carlo Batini e Paolo Missier 2003– 11 Serializzabilita’  La proprieta’ di isolamento:  Ogni transazione esegue come se non ci fosse concorrenza  coincide con la proprieta’ per cui un insieme di transazioni eseguite concorrentemente produce lo stesso risultato che produrrebbe una (qualsiasi) delle possibili esecuzioni sequenziali delle stesse transazioni.  Ne basta una!  Quella esecuzione e’ proprio la esecuzione che garantisce l’isolamento (… come se fosse eseguita da sola)

Complementi di Basi di Dati Controllo di Concorrenza – Carlo Batini e Paolo Missier 2003– 12 Serializzabilita’  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

Complementi di Basi di Dati Controllo di Concorrenza – Carlo Batini e Paolo Missier 2003– 13 Esempio - 1  Lo schedule  T1: trova posto, T2: trova posto; T1: alloca posto; T2 alloca posto  non e’ serializzabile, perche’ da’ risultato diverso da  A. lo schedule seriale  T1: trova posto, T1: alloca posto; T2: trova posto, T2 alloca posto assegna il posto alla T1, e da  B. lo schedule seriale  T2: trova posto, T2: alloca posto; T1: trova posto, T1 alloca posto assegna il posto alla T2

Complementi di Basi di Dati Controllo di Concorrenza – Carlo Batini e Paolo Missier 2003– 14 Esempio – 2 E’serializzabile il seguente schedule?  T1 (x=x+x; x= x+2) e T2 (x= x**2; x=x+2) concorrenti nel seguente schedule  S = [T1:x= x+x; T2: x= x**2; T1: x= x+2; T2:x=x+2]  Eseguito per x= 5 da come risultato  x=104  Possibili sequenze seriali: Sequenza T1 T2 : Pre: x=5 T1, T2: post: x = 146 Sequenza T2 T1 : Pre: x=5 T2, T1: post: x = 56 Lo schedule non e’ serializzabile

Complementi di Basi di Dati Controllo di Concorrenza – Carlo Batini e Paolo Missier 2003– 15 Esempio di proprieta’ di serializzabilita’  Insieme concorrente  t11 t21 t31 t32 t12 t22 t23 t13  Quante e quali sono le possibili esecuzioni seriali?  t1, t2, t3  t1, t3, t2  t2, t1, t3  t2, t3, t1  t3, t1, t2  t3, t2, t1  Una delle sequenze deve dare lo stesso risultato finale

Complementi di Basi di Dati Controllo di Concorrenza – Carlo Batini e Paolo Missier 2003– 16 Introduciamo ora una notazione semplificata per descrivere transazioni

Complementi di Basi di Dati Controllo di Concorrenza – Carlo Batini e Paolo Missier 2003– 17 Ruolo dello scheduler  Lo scheduler (concurrency controller) –Ha il compito di garantire l’isolamento –Accoglie una transazione e le assegna un identificatore unico –Chiede al buffer manager del DBMS di leggere/scrivere sul DB secondo una particolare sequenza –Quindi,dobbiamo assumere che non sia in grado di interpretare le specifiche operazioni sui dati: – la serializzabilita’ non puo’ dipendere dal tipo di operazioni eseguite ne’ dall’input

Complementi di Basi di Dati Controllo di Concorrenza – Carlo Batini e Paolo Missier 2003– 18 Notazione semplificata per lo schedule  Semplifichiamo quindi la nostra notazione –Le transazioni degli esempi precedenti si scrivono: T1: r(A) r(B) w(A) w(B) c –Un esempio di schedule: r1(A) w1(A) r2 (A) w2(A) r1(B) w1(B) c1 r2(B) w2(B) c2 T1 legge A T2 scrive A T1 commit

Complementi di Basi di Dati Controllo di Concorrenza – Carlo Batini e Paolo Missier 2003– Definizione di diversi livelli di serializzabilita’

Complementi di Basi di Dati Controllo di Concorrenza – Carlo Batini e Paolo Missier 2003– 20 Serializzabilita’ ed equivalenza tra schedules  La definizione generale di serializzabilita’ si basa sulla nozione di equivalenza tra due schedules:  Una schedule e’ serializzabile se e solo se esso e’ equivalente ad uno schedule seriale  A diverse definizioni della relazione di equivalenza corrispondono diversi livelli di serializzabilita’

Complementi di Basi di Dati Controllo di Concorrenza – Carlo Batini e Paolo Missier 2003– 21 Algoritmi per verificare la equivalenza  Interessa definire due tipi di algoritmi: –Algoritmi per il test di equivalenza: date due schedules, determina se esse sono equivalenti (semplice) –Data una schedule, determina se essa e’ equivalente ad una qualunque schedule seriale (complesso)  Nella pratica, definiremo delle regole di comportamento dello scheduler che garantiscono un dato livello di serializzabilita’, senza eseguire alcun test esplicito

Complementi di Basi di Dati Controllo di Concorrenza – Carlo Batini e Paolo Missier 2003– 22 Classi di schedules  Idea base: individuare classi di schedules serializzabili … Schedules Seriali Schedules Schedules Serializzabili  che siano sottoclassi degli schedules possibili, siano serializzabili e la cui proprieta’ di serializzabilita’ sia verificabile con complessita’ ragionevole

Complementi di Basi di Dati Controllo di Concorrenza – Carlo Batini e Paolo Missier 2003– 23 Nel seguito vedremo la classe di schedule in cui il controllo di concorrenza e’ effettuato tramite lock

Complementi di Basi di Dati Controllo di Concorrenza – Carlo Batini e Paolo Missier 2003– 24 Controllo di concorrenza tramite locks  Idea: definizione di un protocollo che garantisca a priori la conflict serializability –Richiede la presenza di uno scheduler nell’architettura del DBMS Scheduler DB T 1 T 2 ……T n

Complementi di Basi di Dati Controllo di Concorrenza – Carlo Batini e Paolo Missier 2003– 25 Primitive di lock  Introduciamo due nuove operazioni, che richiedono l’utilizzo ed il rilascio, per ora, esclusivo di una risorsa: –Lock (esclusivo): l i (A)  Voglio la risorsa –Unlock: u i (A)  Rilascio la risorsa  Le primitive di lock vengono aggiunte alle transazioni e inserite all’interno delle sequenze di operazioni wi(A), rj(A)

Complementi di Basi di Dati Controllo di Concorrenza – Carlo Batini e Paolo Missier 2003– 26 Compito dello scheduler  Trasformare le transazioni aggiungendo i comandi di lock, sulla base della conoscenza delle assegnazioni precedenti, in modo da garantire la serializzabilita’  Memorizzare tali assegnazioni in una tabella di lock scheduler T 1 T 2 lock table wi(A) … rj(A)…… li(A) … wi(A) … ui(A)... lj(A) … rj(A) … uj(A)...

Complementi di Basi di Dati Controllo di Concorrenza – Carlo Batini e Paolo Missier 2003– 27 Lock info per T1 T1... H Ti T2 T3 Lock info per T2 Tabelle di lock

Complementi di Basi di Dati Controllo di Concorrenza – Carlo Batini e Paolo Missier 2003– 28 Esecuzione delle transazioni con lock  Ora lo scheduler esegue le transazioni, e, quando una transazione chiede di accedere a una risorsa gia’ lockata da un’ altra transazione, la sospende e la mette in coda.

Complementi di Basi di Dati Controllo di Concorrenza – Carlo Batini e Paolo Missier 2003– 29 Uso dei lock  Vogliamo definire le regole di composizione dei protocolli di lock sulle transazioni e sugli schedule che garantiscano la serializzabilita’ delle schedules  Definiamo: –Transazioni ben formate e schedules legali –Protocollo Two phase locking (2PL) –Ulteriori tipi di lock - cenni

Complementi di Basi di Dati Controllo di Concorrenza – Carlo Batini e Paolo Missier 2003– 30 Transazioni ben formate  Regola #1 – Transazione ben formata: Ogni azione p(A) (lettura o scrittura di A) deve essere contenuta in una “sezione critica” definita da una coppia di lock: Ti: … l i (A) … w i (A) … u i (A)... La regola esprime la ovvia proprieta’ per cui ogni lettura/scrittura deve avere una coppia l/u e ad ogni lock deve corrispondere un unlock

Complementi di Basi di Dati Controllo di Concorrenza – Carlo Batini e Paolo Missier 2003– 31 Schedule legale  Regola #2 – Schedule S legale: ogni coppia lock unlock in uno schedule deve essere esclusiva: S = ……l i (A) ………u i (A) …… La regola permette di rispettare la semantica dei lock e assegnare ogni risorsa a una transazione alla volta non ci sono altri l j (A)

Complementi di Basi di Dati Controllo di Concorrenza – Carlo Batini e Paolo Missier 2003– 32 Esempi di schedule con lock -1 S1 = l1(A) l1(B) r1(A) w1(B) l2(B) u1(A) u1(B) r2(B) w2(B) u2(B) l3(B) r3(B) u3(B) Le transazioni sono ben formate? Mettiamo in evidenza T1 S1 = l1(A) l1(B) r1(A) w1(B) l2(B) u1(A) u1(B) r2(B) w2(B) u2(B) l3(B) r3(B) u3(B) La transazione T1 e’ ben formata, analogamente per le altre Lo schedule e’ legale? S1 = l1(A) l1(B) r1(A) w1(B) l2(B) u1(A) u1(B) r2(B) w2(B) u2(B) l3(B) r3(B) u3(B) No!

Complementi di Basi di Dati Controllo di Concorrenza – Carlo Batini e Paolo Missier 2003– 33 Esempi di schedule con lock-2 S2 = l 1 (A) r 1 (A) w 1 (B) u 1 (A) u 1 (B) l 2 (B) r 2 (B) w 2 (B) l 3 (B) r 3 (B) u 3 (B)… T 1 non ben formata: Write senza lock S2 non legale

Complementi di Basi di Dati Controllo di Concorrenza – Carlo Batini e Paolo Missier 2003– 34 Esempi di schedules con lock S3 = l 1 (A) r 1 (A) u 1 (A) l 2 (B) r 2 (B) w 2 (B) u 2 (B) l 1 (B) w 1 (B) u 1 (B) l 3 (B) r 3 (B) u 3 (B) Transazioni ben formate e schedule legale

Complementi di Basi di Dati Controllo di Concorrenza – Carlo Batini e Paolo Missier 2003– 35 Aggiungiamo l’ulteriore terza regola di Two Phase Locking (2PL): In ogni transazione tutte le richieste di lock precedono tutti gli unlock T i = ….……. l i (A) ………... u i (A) ………. no unlocks no locks Two-Phase Locking Si puo’ dimostrare che le tre proprieta’ definite rendono lo schedule serializzabile

Complementi di Basi di Dati Controllo di Concorrenza – Carlo Batini e Paolo Missier 2003– 36 T i = ……. l i (A) ………... u i (A) …… no unlocks no locks Growing Phase Shrinking Phase Time # locks ottenuti da Ti Two-Phase Locking

Complementi di Basi di Dati Controllo di Concorrenza – Carlo Batini e Paolo Missier 2003– 37 Dai lock agli shared locks  2PL con lock esclusivi restringe molto l’insieme degli schedule serializzabili:  come fare ad estenderli? Schedules Seriali Schedules Schedule Serializ zabili Schedules Serializ zabili Con 2PL

Complementi di Basi di Dati Controllo di Concorrenza – Carlo Batini e Paolo Missier 2003– 38 Due tipi di “rilassamenti”: shared locks e lock gerarchici Read Write Singoli record Intere basi di dati Lock gerarchici Lock parziali sulle Operazioni di lettura scrittura

Complementi di Basi di Dati Controllo di Concorrenza – Carlo Batini e Paolo Missier 2003– 39 Shared locks Finora la situazione e’: S =...l1(A) r1(A) u1(A) … l2(A) r2(A) u2(A) … In realta’, le due letture protette da lock non sono in conflitto. E’ possibile introdurre un nuovo tipo di lock: shared lock lsi(A) In questo esempio otteniamo: S =... ls1(A) r1(A) ls2(A) r2(A) …. us1(A) us2(A) Le primitive di lock ora diventano: lxi(A): lock in modalita’ esclusiva lsi(A): lock in modalita’ condivisa ui(A): unlock

Complementi di Basi di Dati Controllo di Concorrenza – Carlo Batini e Paolo Missier 2003– 40 Lock gerarchici: cenni

Complementi di Basi di Dati Controllo di Concorrenza – Carlo Batini e Paolo Missier 2003– 41 Struttura di uno schema fisico di BD Schema Relazioni Blocchi Tuple BD R2R1Rn B11B12B1n T111T11n ……..

Complementi di Basi di Dati Controllo di Concorrenza – Carlo Batini e Paolo Missier 2003– 42 Granularita’ del locking – locking gerarchico Relation A Relation B... DB Tuple A Tuple B Tuple C... DB Disk block A Disk block B... DB In molti DBMS e’ possibile specificare i locks a diverse granularita’:

Complementi di Basi di Dati Controllo di Concorrenza – Carlo Batini e Paolo Missier 2003– 43 Opzioni per la granularita’  Utilizzando lock su oggetti grandi (esempio Relazioni) –Sono sufficienti pochi locks –La concorrenza e’ ridotta – le risorse restano bloccate con alta probabilita’  Utilizzando lock su oggetti piccoli (esempio record, campi) –Occorrono piu’ locks  aumenta il carico di gestione –La concorrenza aumenta

Complementi di Basi di Dati Controllo di Concorrenza – Carlo Batini e Paolo Missier 2003– 44 Esempi  Esempio 1  DB bancaria e operazioni su conti (depositi e prelievi)  Non conviene mettere lock su intere relazioni perche’ cosi’ si permette una operazione alla volta. Conviene porre lock a livello di pagina o blocco, non conviene scendere fino a livello di tupla  Esempio 2  Basi di documenti e operazioni di editing e retrivial  In genere le operazioni di modifica/ scrittura dei documenti sono poco frequenti rispetto a quelle di retrieval/ lettura  In questo caso conviene fare lock a livello dell’intero documento e non delle sue parti

Complementi di Basi di Dati Controllo di Concorrenza – Carlo Batini e Paolo Missier 2003– 45 Il deadlock

Complementi di Basi di Dati Controllo di Concorrenza – Carlo Batini e Paolo Missier 2003– 46 Il deadlock  Problema comune a tutte le strategie di controllo di concorrenza basate su locking  Un deadlock e’ una condizione in cui due transazioni T1 e T2 si trovano ad occupare due risorse A e B e ciascuna chiede la risorsa occupata dall’altra  Cio’ provoca un blocco delle due transazioni, che non possono procedere.

Complementi di Basi di Dati Controllo di Concorrenza – Carlo Batini e Paolo Missier 2003– 47 Esempio di deadlock T1T2 l1(A) r(A) w(A) l2(B) r(B) w(B) l2(A) l1(B)  La probabilita’ di deadlock cresce in modo lineare con il numero di transazioni e in modo quadratico con il numero di richieste di lock da parte di ogni transazione In attesa Sequenza Di esecuzione

Complementi di Basi di Dati Controllo di Concorrenza – Carlo Batini e Paolo Missier 2003– 48 Tecniche utilizzate per risolvere i deadlock  Uso del timeout  Rilevazione dei deadlock  Prevenzione dei deadlock

Complementi di Basi di Dati Controllo di Concorrenza – Carlo Batini e Paolo Missier 2003– 49 Struttura del lock Manager Scheduler, parte I DB Tabella dei lock l(A),Read(A),l(B),Write(B)… Read(A),Write(B) TiTi Decide politiche di lock e inserisce i lock Scheduler, parte II Read(A),Write(B) Esegue i lock, utilizzando la tabella dei lock, se provocano attesa gestisce le code

Complementi di Basi di Dati Controllo di Concorrenza – Carlo Batini e Paolo Missier 2003– 50 Finora abbiamo svolto il ragionamento non preoccupandoci di cio’ che puo’ avvenire riguardo alla correttezza dello schedule a seguito di rollback Insomma, non abbiamo tenuto in conto i problemi di recovery, e abbiamo assunto che non ci siano guasti Ora dobbiamo tenerne conto!

Complementi di Basi di Dati Controllo di Concorrenza – Carlo Batini e Paolo Missier 2003– 51 Commit, rollback e correttezza delle transazioni  Esistono situazioni in cui la serializability non e’ proprieta’ sufficiente a garantire la correttezza della esecuzione. Esempio  ……w1(A) …… r2(A) ……C2………C1  Supponiamo che dopo C2 per qualche ragione T1 debba abortire: T2 ha letto un dato che non e’ piu’ valido  fenomeno di dirty data  Lo schedule e’ conflict-serializable, ma non “corretto”:T2 ha usato un valore che non esiste nello stato finale

Complementi di Basi di Dati Controllo di Concorrenza – Carlo Batini e Paolo Missier 2003– 52 Concetto di Recoverable schedule - 1 Per permettere il recovery di un insieme di transazioni, deve valere la seguente proprieta’ Se una transazione T1 e’, dopo il recovery, considerata committed, allora lo deve essere ogni altra transazione da cui T1 ha letto. Per committed, qui e nel seguito, intendiamo il fatto che il commit record nel log ha raggiunto la memoria stabile.

Complementi di Basi di Dati Controllo di Concorrenza – Carlo Batini e Paolo Missier 2003– 53 Concetto di Recoverable schedule - 2  Esempio  S1 = ……w2(A) …… r1(A) ……C1………C2  Non e’ recoverable  S2 = ……w2(A) …… r1(A) ……C2………C1  E’ recoverable

Complementi di Basi di Dati Controllo di Concorrenza – Carlo Batini e Paolo Missier 2003– 54 Relazione tra i concetti di serializable e recoverable  I due concetti sono ortogonali  Es. lo schedule S1 = w2A w1B w1A r2B c1 c2  e’ recoverable ma non serializable Recov Serializ. S1 S2 Lo schedule S2 = w1A w1B w2A r2B c2 c1 e’ serializable ma non recoverable

Complementi di Basi di Dati Controllo di Concorrenza – Carlo Batini e Paolo Missier 2003– 55 Dunque Serializable Recoverable Seriale

Complementi di Basi di Dati Controllo di Concorrenza – Carlo Batini e Paolo Missier 2003– 56 Recoverable transactions e 2PL  Nella discussione sulle recoverable transactions ci siamo fino ad ora preoccupati della relazione tra: –Operazioni di lettura –Operazioni di rollback –Operazioni di commit  E non abbiamo piu’ considerato i lock  Dobbiamo ora capire, per garantire la serializability, come si modificano i lock e dunque la struttura del 2PL

Complementi di Basi di Dati Controllo di Concorrenza – Carlo Batini e Paolo Missier 2003– 57 Protocollo Strict 2PL  S e’ Strict 2PL se e’ 2PL e i lock di ogni transazione Ti vengono mantenuti fino al commit o l’abort di Ti  ……wi(A)……Ci Ui(A)…… rj(A)

Complementi di Basi di Dati Controllo di Concorrenza – Carlo Batini e Paolo Missier 2003– 58 Valgono le seguenti proprieta’  Ogni schedule strict 2PL e’ serializzabile –Infatti la strict schedule e’ equivalente alla schedule seriale in cui ogni transazione esegue i comandi al tempo del commit

Complementi di Basi di Dati Controllo di Concorrenza – Carlo Batini e Paolo Missier 2003– 59 Riassumendo: le transazioni serializable non sono necessariamente recoverable ……… Serializable Recoverable Seriale

Complementi di Basi di Dati Controllo di Concorrenza – Carlo Batini e Paolo Missier 2003– 60 Strict 2PL Abbiamo bisogno di un concetto piu’ forte del 2PL per garantire tutte le proprieta’: lo strict 2PL Serializable Recoverable Seriale

Complementi di Basi di Dati Controllo di Concorrenza – Carlo Batini e Paolo Missier 2003– 61 Uso dei lock in pratica  Un lock manager semplificato:  Acquisisce i locks necessari automaticamente –Dopo BEGIN TRANSACTION e prima di ogni operazione SQL (SELECT, UPDATE, INSERT ecc)  Li mantiene fino al COMMIT WORK ovvero ROLLBACK WORK  strict 2PL

Complementi di Basi di Dati Controllo di Concorrenza – Carlo Batini e Paolo Missier 2003– 62 2PL e scheduler con lock management  Se una transazione non fa richieste esplicite al lock manager, allora: –lo scheduler garantisce che ogni transazione e’ ben formata  Chiede al lock manager l’acquisizione dei lock prima delle operazioni  Chiede al lock manager il rilascio dei lock al momento del commit –Il lock manager garantisce che la schedule effettivamente eseguita e’ legale  Le richieste di lock su risorse gia’ allocate in modo esclusivo vengono accodate –Come risultato, lo schedule eseguito nella realta’ puo’ essere diverso dalla sequenza con la quale le operazioni vengono richieste dalle transazioni