Tratti dal cap. 9 di: Atzeni, Ceri, Paraboschi, Torlone Basi di Dati II edizione, 1999, McGraw-Hill



Documenti analoghi
Esecuzione concorrente di transazioni

Tecnologia di un Database Server (centralizzato) Gestione della concorrenza

ARCHITETTURA DI UN B.D.M.S. Parte I Il controllo di concorrenza

Controllo concorrenza

DB - Cenni sulla gestione delle transazioni

Corso di Sistemi di Gestione di Basi di Dati. Esercitazione sul controllo di concorrenza 12/02/2004

TRANSAZIONI. Una transazione è una successione di operazioni che si può concludere con successo o con insuccesso.

Basi di Dati Complementi Esercizi Esercizi su concurrency control

execute reject delay

Gestione delle transazioni. Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke 1

Indicare se i seguenti schedule possono produrre anomalie; i simboli ci e ai indicano l esito (commit o abort) della transazione.

Basi di Dati e Sistemi Informativi. Le Transazioni. Corso di Laurea in Ing. Informatica Ing. Gestionale Magistrale

Basi di Dati prof. A. Longheu. 5 Progettazione fisica

Coordinazione Distribuita

Sistemi Operativi mod. B. Sistemi Operativi mod. B A B C A B C P P P P P P < P 1, >

Controllo di concorrenza. concorrenza 1

Esecuzione concorrente di transazioni

Introduzione. Coordinazione Distribuita. Ordinamento degli eventi. Realizzazione di. Mutua Esclusione Distribuita (DME)

Transazioni. Architettura di un DBMS. Utente/Applicazione. transazioni. Transaction Manager. metadati, statistiche.

BASI DI DATI: Aspetti gestionali e sviluppi evolutivi dei DBMS info@vittorioprisco.com

Transazioni. Capitolo 13. Scrittura immediata e scrittura differita. Concorrenza in un DBMS. Una transazione. Gestione delle transazioni

Tecnologia di un Database Server (centralizzato) Introduzione generale

Transazioni. Transazioni. Transazioni. Definizione di una transazione. Transazione

Pag. 1. Gestione delle transazioni. Linguaggio SQL: costrutti avanzati. Esempio applicativo. Gestione delle transazioni. Prelievo. Esempio applicativo

Linguaggio SQL: costrutti avanzati

Basi di Dati Distribuite

Deadlock (stallo) Parte III. Deadlock

Ottimizzazione delle interrogazioni (parte I)

8 Tecniche di recovery

Data Base Management System. Strumenti: Formato: Pro: Contro: Software specifico. Proprietario

CALCOLATORI ELETTRONICI A cura di Luca Orrù. Lezione n.7. Il moltiplicatore binario e il ciclo di base di una CPU

BENEDETTI ALESSANDRO Matricola : PROGETTO DI TECNOLOGIA DELLE BASI DI DATI PARTE 2

TRANSAZIONI DISTRIBUITE TRANSAZIONI

Progetto di RHS MicroAODV per Reti di Sensori A.A. 2007/2008

Sistemi Operativi. Interfaccia del File System FILE SYSTEM : INTERFACCIA. Concetto di File. Metodi di Accesso. Struttura delle Directory

Introduzione all Architettura del DBMS

L architettura di un DBMS

Il problema del produttore e del consumatore. Cooperazione tra processi

Programma del Corso. Dati e DBMS SQL. Progettazione di una. Normalizzazione

Gestione della memoria centrale

L API socket ed i daemon

Risolvere un problema significa individuare un procedimento che permetta di arrivare al risultato partendo dai dati

Sistemi di gestione delle basi di dati. T. Catarci, M. Scannapieco, Corso di Basi di Dati, A.A. 2008/2009, Sapienza Università di Roma

Replicazione. Requisisti di consistenza i clienti devono ricevere risposte consistenti e coerenti. Motivazioni

REGOLE PER L ESAME (agg.te settembre 2015)

Recovery manager Gestore della affidabilità

Manuale Amministratore Legalmail Enterprise. Manuale ad uso degli Amministratori del Servizio Legalmail Enterprise

File system II. Sistemi Operativi Lez. 20

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A Pietro Frasca.

Soluzione dell esercizio del 2 Febbraio 2004

MODELLISTICA DI IMPIANTI E SISTEMI 2

DDL, VINCOLI D INTEGRITÁ, AGGIORNAMENTI E VISTE. SQL è più di un semplice linguaggio di interrogazione

Scheduling della CPU. Sistemi multiprocessori e real time Metodi di valutazione Esempi: Solaris 2 Windows 2000 Linux

SISTEMI OPERATIVI. Deadlock (blocco critico) Domande di verifica. Luca Orrù Centro Multimediale Montiferru 04/06/2007

Tecnologia di un Database Server (centralizzato) Gestione del buffer

BASI DI DATI per la gestione dell informazione. Angelo Chianese Vincenzo Moscato Antonio Picariello Lucio Sansone

Manuale Terminal Manager 2.0

Realizzazione di Politiche di Gestione delle Risorse: i Semafori Privati

Versioni x.7.9 Note Operative

BASI DI DATI TECNOLOGIA DEI SERVER PER BASI DI DATI

Modello di Controllo dell Accesso basato sui ruoli (RBAC)

Organizzazione degli archivi

Lezione 8. La macchina universale

1. Che cos è la multiprogrammazione? Si può realizzare su un sistema monoprocessore? 2. Quali sono i servizi offerti dai sistemi operativi?

Concorrenza, lucidi integrativi

DI D AGRA R MM M I M A BLOCC C H C I TEORI R A E D D E SERC R I C ZI 1 1

Memoria Virtuale. Anche la memoria principale ha una dimensione limitata. memoria principale (memoria fisica) memoria secondaria (memoria virtuale)

Sommario. Definizione di informatica. Definizione di un calcolatore come esecutore. Gli algoritmi.

GUARINI PATRIMONIO CULTURALE VERSIONE MSDE/SQL SERVER MANUALE DI INSTALLAZIONE GUARINI PATRIMONIO CULTURALE VERSIONE MSDE/SQL SERVER

Uso di JUnit. Fondamenti di informatica Oggetti e Java. JUnit. Luca Cabibbo. ottobre 2012

APPENDICE. Procedure in SQL (1)

Il linguaggio SQL: trigger. Versione elettronica: 04.7.SQL.trigger.pdf

Indice Prefazione SQL Procedurale/SQL-PSM (Persistent Stored Modules)... 3 Vincoli e Trigger... 9

Informatica Generale Andrea Corradini Sistemi di Gestione delle Basi di Dati

Calcolatori Elettronici. La memoria gerarchica La memoria virtuale

Corso di Amministrazione di Reti A.A. 2002/2003

Architetture distribuite

CORSO ACCESS PARTE II. Esistono diversi tipi di aiuto forniti con Access, generalmente accessibili tramite la barra dei menu (?)

Omnia Web Timesheet. Manuale utente

Transazioni in SQL. Nicola Vitacolonna Corso di Basi di Dati Università degli Studi di Udine 4 dicembre 2013

Fatturazione elettronica con WebCare

PROCEDURA DI CHIUSURA ANNO FISCALE 2006 CON E-SHOP

Protezione. Protezione. Protezione. Obiettivi della protezione

Aruba Sign 2 Guida rapida

Deadlock e Starvation

Sincronizzazione nei Sistemi Distribuiti

Sistemi Operativi. Scheduling della CPU SCHEDULING DELLA CPU. Concetti di Base Criteri di Scheduling Algoritmi di Scheduling

Sistemi Operativi SCHEDULING DELLA CPU. Sistemi Operativi. D. Talia - UNICAL 5.1

Manuale Utente Amministrazione Trasparente GA

Che differenza c è tra una richiesta XML ed una domanda XML? (pag. 4)

Informatica: il sistema operativo

Sistemi Operativi Esercizi Sincronizzazione

ARCHIVIAZIONE DOCUMENTALE NEiTdoc

Sistemi Operativi. Lez. 13: primitive per la concorrenza monitor e messaggi

Sequenziamento a minimo costo di commutazione in macchine o celle con costo lineare e posizione home (In generale il metodo di ottimizzazione

Access. Microsoft Access. Aprire Access. Aprire Access. Aprire un database. Creare un nuovo database

Transazioni - Parte 1

MANUALE UTENTE Fiscali Free

M.U.T. Modulo Unico Telematico

COLLI. Gestione dei Colli di Spedizione. Release 5.20 Manuale Operativo

Transcript:

/XFLGLVXOFRQWUROORGHOODFRQFRUUHQ]D Tratti dal cap. 9 di: Atzeni, Ceri, Paraboschi, Torlone Basi di Dati II edizione, 1999, McGraw-Hill

$QRPDOLD /RVW8SGDWH Si considerino le due transazioni identiche: W1 : Ux), [= [+ 1, Zx) W2 : Ux), [= [+ 1, Zx) Si assuma inizialmente [=2; dopo un esecuzione seriale: [=4 Si consideri l esecuzione concorrente: Transaction W 1 Transaction W bot U 1([) [= [+ 1 bot U 2([) [= [+ 1 Z 1([) commit Z 2 [) commit Un update e perso. Valore finale [=3

$QRPDOLD 'LUW\UHDG Si considerino le medesime transazioni e la seguente esecuzione (si noti che la prima transazione fallisce): Transaction W 1 Transaction W 2 bot U 1([) [= [+ 1 Z 1([) bot U 2([) [= [+ 1 abort Z 2 [) commit W 2 legge uno stato intermedio (dirty read)

$QRPDOLD,QFRQVLVWHQWUHDG W 1 ripete due letture: Transaction W 1 Transaction W 2 bot U 1([) bot U 2([) [= [+ 1 Z 2 [) commit U 1([) commit W 1 legge valori differenti per [

$QRPDOLD *KRVWXSGDWH Si assuma che valga il vincolo d integrita : [+ \+ ]= 1000; Transaction W 1 Transaction W 2 bot U 1([) bot U 2 \) U 1 \) \= \- 100 U 2 ]) ]= ]+ 100 Z 2 \) Z 2 ]) commit U 1(]) V= [+ \+ ] commit Alla fine V = 110: il vincolo non e soddisfatto W 1 vede un ghost update

/RFNLQJDGXHIDVL Usato da molti DBMS commerciali Principio: Tutte le operazioni di lettura sono precedute da una UBORFk (lock condiviso) e seguite da una XQORFk Tutte le operazioni di scrittura sono precedute da una ZBORFk (lock esclusivo) e seguite da una XQORFk Una transazione che segue queste regole e EHQIRUPDWD ULVSHWWRDOORFNLQg Quando una transazione legge e poi scrive un oggetto puo : Usare un write lock Promuovere un lock condiviso ad un lock esclusivo(orfn HVFDODWLRn) Il ORFNPDQDJHr riceve queste primitive dalle transazioni e concede le risorse secondo una politica indicata dalla tabella dei conflitti Quando un lock e concesso, la risorsa e acquisita Con una unlock, la risorsa e rilasciata

&RPSRUWDPHQWRGHOORFNPDQDJHU Conflict table: 5HTXHVW 5HVRXUFHVWDWH IUHH UBORFNHG ZBORFNHG UBORFN OK / r_locked OK / r_locked NO/ w_locked ZBORFN OK / w_locked NO / r_locked NO / w_locked XQORFN error OK / depends OK / free un contatore tiene traccia del numero dei lettori; la risorsa e rilasciata quando il contatore vale zero. Se una richiesta di lock non e concessa, la transazione richiedente e messa in stato di attesa L attesa termina quando la risorsa viene rilasciata (unlocked) I lock gia concessi sono memorizzati in una tabella gestita dal lock manager

/RFNLQJDGXH IDVL La serializzabilita richiede, in aggiunta, che il locking sia in due fasi: 8QD WUDQVD]LRQHGRSR DYHUH ULODVFLDWR XQ ORFNQRQSXR DFTXLVLUHDOWULORFN Due fasi: crescente e calante Se uno scheduler opera su transazioni ben formate e a due fasi e concede i lock in base alla tabella dei conflitti, esso produce la classe degli schedule 2PL Gli schedule 2PL sono serializzabili e la classe 2PL e strettamente inclusa nella classe CSR Esempio di schedule che e in CSR e non in 2PL: 6 12 : U 1 ([) Z 1 ([) U 2 ([) Z 2 ([) U 3 (\) Z 1 (\)

/RFNLQJDGXH IDVLVWUHWWR Dobbiamo ancora rimuovere l ipotesi sull uso di commit proiezioni Passiamo al 2PL Stretto (aggiungendo il vincolo):,orfndftxlvlwlgd XQD WUDQVD]LRQH SRVVRQR HVVHUH ULODVFLDWL VRORGRSR FKH ODWUDQVD]LRQH KDO RSHUD]LRQH GL FRPPLWDERUW Questa versione e normalmete usata dai DBMS commerciali elimina l anomalia della dirty read

&RQWUROORGHOODFRQFRUUHQ]DEDVDWRVXL 7LPHVWDPp: WLPHVWDPSV identificatore che definisce un ordinamento totale fra eventi temporali nel sistema Ad ogni transazione viene assegnato un timestamp WV che rappresenta il tempo d inizio della transazione Uno schedule e accettato solo se riflette l ordine seriale delle transazioni basato sul valore del timestamp di ogni transazione

&RPHVLXWLOL]]DQRLWLPHVWDPS Lo scheduler ha un contatore RTM([) and WTM([) per ogni oggetto Lo scheduler riceve richieste di read e write sugli oggetti etichettate con un timestamp: UHDG([,Ws): se WV < WTM(x) allora la richiesta e riufiutata e la transazione uccisa, altrimenti la richiesta e accettata e RTM([) e posto uguale al massimo fra RTM([) e Ws ZULWe([,Ws): se WV < WTM([) o WV < RTM([) allora la richiesta e riufiutata e la transazione uccisa, altrimenti la richiesta e accettata e WTM([) e posto uguale a Ws (Sotto l ipotesi di considerare la commit-proiezione) Il metodo causa l abort di un gran numero di transazioni Per rimuovere l assunzione di commit proiezione le scritture devono essere bufferizzate finche la transazione non esegue il commit. Le letture dei dati memorizzati nel buffer in attesa di commit vengono a loro volta messe in attesa

(VHPSLRGLFRQWUROORGHOODFRQFRUUHQ]D EDVDWRVXL WLPHVWDPSV Richiesta Risposta Nuovo valore UHDG([,6) ok UHDG([,8) ok RTM([) = 8 UHDG([,9) ok RTM([) = 9 ZULWe([,8) no W 8 killed ZULWe([,11) ok WTM([) = 11 UHDG([,10) no W 10 killed

&RQWUROORGHOODFRQFRUUHQ]DPXOWLYHUVLRQH Idea principale: le write producono nuove copie, le read accedono alla copia corretta Le write generano nuove copie con un WTM nuovo. In ogni istante ci sono 1>1 copie di ogni oggetto [attive con writetimestamp WTM ([ ),,WTM 1 ([). C e un unico RTM([) globale Meccanismo: UHDG([,Ws): e sempre accettata. Per la lettura e selezionata una copia [ k tale che: se > WV WTM ([), allora k = 1, 1 altrimenti k e tale che WTM k ([) < WV < WTM k+1 ([) ZULWe(x,Ws): se ts < RTM([) la richiesta e rifiutata, altrimenti si aggiunge una nuova versione del dato 1viene incrementato di uno) con WTM 1 ([) = Ws Le copie vecchie sono rilasciate quando non ci sono piu transazioni in lettura interessate ai loro valori

0HFFDQLVPLSHUODJHVWLRQHGHLORFN Il lock manager viene invocato da tutti i processi che vogliono accedere alla base di dati Interfaccia: r_lock(t, x, errcode, timeout) w_lock(t, x, errcode, timeout) unlock(t, x) T: identificatore della transazione X: dato timeout: massima attesa in coda Allo scadere del timeout, errcode segnala un errore e tipicamente la transazione esegue un roll back e riparte

/RFNLQJJHUDUFKLFR In molti sistemi reali i lock possono essere specificati a diversi livelli di granularita, ad esempio, le tabelle, i frammenti, le tuple, i campi. Questi sono organizzati in una gerarchia di risorse (ad esempio, un grafo diretto aciclico) 5 modalita di locking : le due precedentemente introdotte: XL: lock esclusivo SL: lock condiviso 3 nuove: ISL: intenzione di lock condiviso IXL: intenzione di lock esclusivo SIXL: lock condiviso e intenzione di lock esclusivo La scelta del livello di granularita e lasciata a che progetta l applicazione; se livello troppo grossolano: molte risorse bloccate se livello troppo fine : molte richieste di lock

3URWRFROORGLORFNLQJJHUDUFKLFR I lock sono richiesti dalla radice ai discendenti nella gerarchia I lock sono rilasciati partendo dal nodo bloccato e risalendo lungo l albero Per richiedere un SL o un ISL su di un nodo, la transazione deve gia possedere un ISL o IXL sul padre Per richiedere un IXL, XL o un SIXL su di un nodo, la transazione deve gia possedere un SIXL o IXL sul padre La nuova tabella dei conflitti segue

&RQIOLWWLQHO ORFNLQJ JHUDUFKLFR 6WDWRULVRUVD 5LFKLHVWD ISL IXL SL SIXL XL ISL OK OK OK OK No IXL OK OK No No No SL OK No OK No No SIXL OK No No No No XL No No No No No

0RGDOLWD GLORFNRIIHUWHGD 64/ Alcune transazioni sono definite come read-only (non possono modificare il contenuto della base di dati) Il livello di isolamento puo essere specificato per ogli transazione Serializable garantisce il massimo isolamento: vengono mantenuti i lock per non modificare il valore delle funzioni aggregate valutate su insiemi di dati Repeatable read corrisponde a 2PL stretto (nota: letture ripetute di valori danno risultati uguali, ma non letture ripetute di valori aggregati) Committed read esclude la lettura di stati intermedi (uncommitted data) Uncommitted read nessuna azione di locking e utilizzata per le letture

'HDGORFNV Prodotto da transazioni concorrenti, ognuna delle quali blocca delle risorse ed attende di acquisire risorse bloccate dalle altre Esempio: W 1 : UHDG([), ZULWH(\) W 2 : UHDG(\), ZULWH([) Schedule: UBORFN 1 ([), UBORFN 2 (\), UHDG 1 ([), UHDG 2 (\) ZBORFN 1 (\), ZBORFN 2 ([) Questa e una situazione di deadlock!

7HFQLFKH GL ULVROX]LRQH GHOGHDGORFN Una situazione di deadlock produce un ciclo nel grafo delle attese, che descrive le relazioni di attesa fra le transazioni (nodo=transaction, arco=wait condition). Tre tecniche: 7LPHRXW (problema: la scelta del timeout) 5LOHYDPHQWR GHOGHDGORFN : ricerca dei cicli nel grafo delle attese 3UHYHQ]LRQH GHOGHDGORFN : si uccidono le transazioni che possono causale cicli. Opzioni per la scelta della transazione da uccidere: politica SUHHPSWLYH o QRQSUHHPSWLYH