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



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

GESTIONE DELLE TRANSAZIONI

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

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

Introduzione all Architettura del DBMS

Controllo concorrenza

L architettura di un DBMS

Coordinazione Distribuita

Esecuzione concorrente di transazioni

8 Tecniche di recovery

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

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

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

Informatica Generale Andrea Corradini Sistemi di Gestione delle Basi di Dati

Archivi e database. Prof. Michele Batocchi A.S. 2013/2014

Introduzione Ai Data Bases. Prof. Francesco Accarino IIS Altiero Spinelli Via Leopardi 132 Sesto San giovanni

Organizzazione degli archivi

DB - Cenni sulla gestione delle transazioni

Access. P a r t e p r i m a

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

Corso di Basi di Dati e Conoscenza

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

Tecnologia di un Database Server (centralizzato) Introduzione generale

Basi di Dati Distribuite

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

Recovery manager Gestore della affidabilità

Linguaggio SQL: costrutti avanzati

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

L API socket ed i daemon

copie di salvaguardia

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

Calcolatori Elettronici A a.a. 2008/2009

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

Con il termine Sistema operativo si fa riferimento all insieme dei moduli software di un sistema di elaborazione dati dedicati alla sua gestione.

A intervalli regolari ogni router manda la sua tabella a tutti i vicini, e riceve quelle dei vicini.

Airone Gestione Rifiuti Funzioni di Esportazione e Importazione

Approccio stratificato

Gestione Risorse Umane Web

La manutenzione come elemento di garanzia della sicurezza di macchine e impianti

Basi di dati. Concetti introduttivi ESEMPIO. INSEGNAMENTI Fisica, Analisi, Aule. Docenti. Entità Relazioni Interrogazioni. Ultima modifica: 26/02/2007

Transazioni - Parte 1

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

ARCHIVIAZIONE DOCUMENTALE NEiTdoc

Basi di Dati Complementi Esercizi Esercizi su concurrency control

Esercitazione E1 Scheduling, deadlock, monitor

LABORATORIO di INFORMATICA

ISTRUZIONI PER LA GESTIONE BUDGET

Manuale Terminal Manager 2.0

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

1. BASI DI DATI: GENERALITÀ

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

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

Progetto NoiPA per la gestione giuridicoeconomica del personale delle Aziende e degli Enti del Servizio Sanitario della Regione Lazio

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

Implementazione dei monitor tramite semafori Attesa condizionale Sincronizzazione nei sistemi operativi reali Transazioni atomiche

SPRING SQ COMUNICAZIONE OPERAZIONI IVA NON INFERIORI A 3000 EURO PER L ANNO 2011

Introduzione alla teoria dei database relazionali. Come progettare un database

DMA Accesso Diretto alla Memoria

AGGIORNAMENTO AREA SEMANTICA GESTIONE SOGGETTARI

corso di Access MICROSOFT ACCESS Docente: Andrea Mereu Università degli studi di Cagliari 16 aprile 9 maggio 2012

Sistemi Operativi IMPLEMENTAZIONE DEL FILE SYSTEM. D. Talia - UNICAL. Sistemi Operativi 9.1

FOXWave Gestione gare ARDF IZ1FAL Secco Marco Sezione ARI BIELLA

Progettaz. e sviluppo Data Base

Collegamento Gestionale 1 e Contabilità Studio AGO Infinity

Programma applicativo di protezione LOCK Manuale per l utente V2.22-T05

Gestione del workflow

5.2.1 RELAZIONI TRA TABELLE Creare una relazione uno-a-uno, uno-a-molti tra tabelle 9

Guida dell utente. Centro di fatturazione UPS

IRSplit. Istruzioni d uso 07/10-01 PC

GESTIONE DEI BENI USATI

PROGRAMMA GESTIONE TURNI MANUALE UTENTE. Programma Gestione Turni Manuale Utente versione 1.1

ACO Archiviazione Elettronica e Conservazione sostitutiva

Gestione della memoria centrale

Integrazione al Manuale Utente 1

Funzioni in C. Violetta Lonati

MODELLO CLIENT/SERVER. Gianluca Daino Dipartimento di Ingegneria dell Informazione Università degli Studi di Siena

Logistica magazzino: Inventari

execute reject delay

Progettaz. e sviluppo Data Base

La gestione di un calcolatore. Sistemi Operativi primo modulo Introduzione. Sistema operativo (2) Sistema operativo (1)

Sistemi Operativi IMPLEMENTAZIONE DEL FILE SYSTEM. Implementazione del File System. Struttura del File System. Implementazione

Lezione 1. Introduzione ai sistemi di basi di dati

Sistemi Operativi Kernel

MANUALE PARCELLA FACILE PLUS INDICE

Agenzia delle entrate on line. A cosa serve?

Sistemi Operativi. 5 Gestione della memoria

HOTEL MANAGER NOTE DI FINE ANNO

MODELLO UNICO DI DOMANDA

Dispensa di Informatica I.1

Sistema Informativo Gestione Fidelizzazione Clienti MANUALE D USO

Introduzione alle basi di dati. Gestione delle informazioni. Gestione delle informazioni. Sistema informatico

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

Guida Rapida all uso del License Manager di ROCKEY4Smart (V )

Base di dati e sistemi informativi

CHIUSURE di MAGAZZINO di FINE ANNO

DBMS (Data Base Management System)

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

Analisi sensitività. Strumenti per il supporto alle decisioni nel processo di Valutazione d azienda

Telerilevamento e GIS Prof. Ing. Giuseppe Mussumeci

Laboratorio di Informatica di Base Archivi e Basi di Dati

Transcript:

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

Transazioni v L esecuzione concorrente dei programmi utente è essenziale per le buone prestazioni del DBMS Poiché gli accessi al disco sono frequenti e relativamente lenti, è importante mantenere la CPU impegnata lavorando su diversi programmi utente concorrenti. v Il programma di un utente può eseguire molte operazioni sui dati letti dalla base di dati, ma al DBMS interessa solo quali dati sono letti/scritti dalla/sulla base di dati v Una transazione è la visione astratta del DBMS di un programma utente: una sequenza di letture e scritture. Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke 2

Concorrenza in un DBMS v Gli utenti iniziano una transazione, e possono pensare a ciascuna transazione come fosse eseguita da sola La concorrenza viene ottenuta dal DBMS, che alterna le azioni (letture/scritture di oggetti del DB) di varie transazioni Ciascuna transazione deve lasciare la base di dati in uno stato consistente, se il DB era consistente all inizio della transazione Il DBMS garantirà certi VI, a seconda dei VI dichiarati nei comandi CREATE TABLE Oltre a ciò, il DBMS non capisce realmente la semantica dei dati (ad esempio, non capisce come sia calcolato l interesse su un conto bancario) v Argomenti: effetto dell alternanza delle transazioni, e crash Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke 3

Atomicità delle transazioni v Una transazione può terminare con successo dopo il completamento di tutte le sue azioni, oppure può abortire (o essere abortita dal DBMS) dopo l esecuzione di alcune azioni v Una proprietà molto importante garantita dal DBMS per tutte le transazioni è che esse sono atomiche. Cioè, un utente può pensare a una transazione come se eseguisse tutte le sue azioni in un solo passo, oppure non ne eseguisse alcuna. Il DBMS registra tutte le azioni così da poter annullare le azioni delle transazioni abortite Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke 4

Esempio Consideriamo due transazioni T1: BEGIN A=A+100, B=B-100 END T2: BEGIN A=1.06*A, B=1.06*B END Intuitivamente, la prima transazione trasferisce 100$ dal conto di B al conto di A. La seconda accredita su entrambi i conti un pagamento di interessi del 6% Non c è garanzia che T1 venga eseguita prima di T2 o viceversa, se entrambe sono lanciate insieme. Però l effetto netto deve essere equivalente al quello delle due transazioni eseguite serialmente in qualche ordine Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke 5

Esempio (segue) Consideriamo una possibile alternanza (schedule) T1: A=A+100, B=B-100 T2: A=1.06*A, B=1.06*B Questa va bene. Ma che possiamo dire di T1: A=A+100, B=B-100 T2: A=1.06*A, B=1.06*B Il DBMS vede il secondo schedule come T1: R(A), W(A), R(B), W(B) T2: R(A), W(A), R(B), W(B) Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke 6

Scheduling di transazioni v Scheduling seriale: schedule che non alterna le azioni di transazioni differenti v Schedule equivalenti: per ogni stato della base di dati, l effetto (sull insieme di oggetti nella base di dati) dell esecuzione del primo schedule è identico all effetto dell esecuzione del secondo schedule v Schedule serializzabile: uno schedule che è equivalente a qualche esecuzione seriale delle transazioni (Nota: se ogni transazione conserva la consistenza, ogni schedule serializzabile conserva la consistenza ) Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke 7

Anomalie con l esecuzione alternata Lettura di dati non completati (conflitti RW, letture sporche ) T1: R(A), W(A), R(B), W(B), Abort T2: R(A), W(A), C Letture non ripetibili (conflitti RW) T1: R(A), R(A), W(A), C T2: R(A), W(A), C Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke 8

Anomalie (segue) v Sovrascrittura di dati non completati (conflitti WW) T1: W(A), W(B), C T2: W(A), W(B), C Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke 9

Controllo di concorrenza basato sui lock v Protocollo Strict 2PL: ciascuna transazione deve ottenere un lock C (condiviso) su un oggetto prima di leggere, e un lock E (esclusivo) su un oggetto prima di scrivere Tutti i lock mantenuti da una transazione sono rilasciati quando la transazione termina Variante (non-strict) 2PL: i lock vengono rilasciati in qualunque momento, ma non si possono acquisire lock dopo aver rilasciato dei lock Se una transazione mantiene un lock E su un oggetto, nessuna altra transazione può ottenere un lock (C o E) su quell oggetto v Lo Strict 2PL permette solo schedule serializzabili Inoltre semplifica le interruzioni delle transazioni Anche il (non strict) 2PL permette solo schedule serializzabili, ma coinvolge un processo di abort più complesso Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke 10

Abortire una transazione v Se una transazione Ti viene abortita, tutte le sue azioni devono essere annullate. Non solo, ma se Tj legge un oggetto che è stato recentemente scritto da Ti, anche Tj deve essere abortita! v La maggior parte dei sistemi evitano queste interruzioni in cascata rilasciando i lock di una transazione solo al momento del completamento Se Ti scrive un oggetto, Tj può leggerlo solo dopo che Ti sia terminata con successo v Per annullare le azioni di una transazione abortita, il DBMS mantiene un log in cui viene registrata ogni scrittura. Questo meccanismo è usato anche per il ripristino dopo un crash del sistema: tutte le transazioni attive al momento del crash vengono abortite quando il sistema ritorna in funzione Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke 11

Il log v Le azioni seguenti vengono registrate nel log: Ti scrive un oggetto: il vecchio e il nuovo valore Il record del log deve andare sul disco prima della pagina modificata! Ti termina/viene abortita: un record del log indica tale azione v I record del log sono collegati tra loro dall id della transazione, così che sia facile annullare una transazione specifica v Il log è spesso duplicato e archiviato su dispositivi di memoria stabili v Tutte le attività legate ai log (e di fatto tutte le attività collegate al CC quali lock/unlock, gestione dei deadlock etc) sono gestite dal DBMS in maniera trasparente Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke 12

Recupero dopo un crash v Ci sono 3 fasi nell algoritmo di recupero Aries: Analisi: scansiona il log in avanti (a partire dal più recente checkpoint) per identificare tutte le transazioni che erano attive, e tutte le pagine modificate nel buffer pool al momento del crash Riesecuzione: riesegue tutti gli aggiornamenti sulle pagine modificate nel buffer pool per assicurare che tutti gli aggiornamenti registrati nel log siano di fatto eseguiti e scritti su disco Annullamento: le scritture di tutte le transazioni che erano attive al momento del crash sono annullate (ripristinando il valore precedente l aggiornamento, che è nel record del log relativo all aggiornamento), e lavorando all indietro nel log (bisogna prendere delle precauzioni per gestire il caso di un crash che si verifichi durante la procedura di ripristino!) Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke 13

Riassunto v Il controllo di concorrenza e il ripristino sono tra le funzioni più importanti fornite da un DBMS v Gli utenti non hanno bisogno di preoccuparsi della concorrenza Il sistema inserisce automaticamente richieste di lock/unlock e gestisce le azioni di transazioni diverse in modo tale da garantire che l esecuzione risultante sia equivalente all esecuzione delle transazioni una dopo l altra in qualche ordine v Il Write-Ahead Logging (WAL) viene usato per annullare le azioni di transazioni abortite e per ripristinare il sistema a uno stato consistente dopo un crash Stato consistente: si vedono solo gli effetti delle transazioni completate con successo Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke 14