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



Documenti analoghi
Coordinazione Distribuita

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

Esecuzione concorrente di transazioni

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

Introduzione all Architettura del DBMS

Linguaggio SQL: costrutti avanzati

L architettura di un DBMS

Tecnologia di un Database Server (centralizzato) Introduzione generale

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

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

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

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

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

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

Capitolo 2. Operazione di limite

Informatica 3. Informatica 3. LEZIONE 10: Introduzione agli algoritmi e alle strutture dati. Lezione 10 - Modulo 1. Importanza delle strutture dati

Corso di Informatica

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

Interesse, sconto, ratei e risconti

Soluzione dell esercizio del 2 Febbraio 2004

Funzioni in C. Violetta Lonati

Gestione della memoria centrale

Gestione Turni. Introduzione

MANUALE UTENTE Fiscali Free

SOMMARIO... 3 INTRODUZIONE...

Dispensa di database Access

Transazioni - Parte 1

Sistema operativo: Gestione della memoria

Capitolo 13. Interrogare una base di dati

Sistema Informativo Gestione Fidelizzazione Clienti MANUALE D USO

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

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

Sistema Informativo Ufficio Centrale Stupefacenti: manuale di gestione delle utenze di accesso (Provisioning)

Database. Si ringrazia Marco Bertini per le slides

Automazione Industriale (scheduling+mms) scheduling+mms.

E-LEARNING ACADEMY GUIDA OPERATIVA

CONTENT MANAGEMENT SY STEM

Corso di Programmazione Concorrente

Tecnologia di un Database Server (centralizzato) Gestione del buffer

8 Tecniche di recovery

POSTA ELETTRONICA CERTIFICATA

Registratori di Cassa

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

LUdeS Informatica 2 EXCEL. Seconda parte AA 2013/2014

Organizzazione degli archivi

Progettaz. e sviluppo Data Base

Fondamenti e didattica di Matematica Finanziaria

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

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

Funzioni di Trasferimento Movimenti

MODELLISTICA DI IMPIANTI E SISTEMI 2

Esercizio data base "Biblioteca"

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

FPf per Windows 3.1. Guida all uso

Linguaggi di programmazione

Istruzione Operativa Richiesta di Offerta on-line in busta chiusa digitale

DB - Cenni sulla gestione delle transazioni

Calcolatori Elettronici. La memoria gerarchica La memoria virtuale

Basi di Dati Distribuite

Regione Toscana. ARPA Fonte Dati. Manuale Amministratore. L. Folchi (TAI) Redatto da

DATA BASE ON LINE (BANCA DATI MODULI SPERIMENTALI)

Manuale operatore per l utilizzo dell utente di dominio

Interesse, sconto, ratei e risconti

Deadlock (stallo) Parte III. Deadlock

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

filrbox Guida all uso dell interfaccia WEB Pag. 1 di 44

Soluzione dell esercizio del 12 Febbraio 2004

4 3 4 = 4 x x x 10 0 aaa

Excel. A cura di Luigi Labonia. luigi.lab@libero.it

In questo manuale sono indicate le procedure per utilizzare correttamente la gestione delle offerte dei fornitori.

CHIUSURE di MAGAZZINO di FINE ANNO

MANUALE D'USO DEL PROGRAMMA IMMOBIPHONE

L IMPORTAZIONE PUO ESSERE FATTA A PARTIRE DALL ANNO 2002.

Architettura di un calcolatore

Project Cycle Management La programmazione della fase di progettazione esecutiva. La condivisione dell idea progettuale.

Guida Compilazione Piani di Studio on-line

Database 1 biblioteca universitaria. Testo del quesito

NOTE OPERATIVE. Prodotto Inaz Download Manager. Release 1.3.0

Gestione Risorse Umane Web

Sviluppata da: Lo Russo - Porcelli Pag. 1 di 6 6FRSR utilizzare il DBMS Postgresql per imparare il linguaggio SQL.

A39 MONITORAGGIO ALLIEVI WEB REGISTRO INFORMATIZZATO MANUALE OPERATIVO

Capitolo 3. L applicazione Java Diagrammi ER. 3.1 La finestra iniziale, il menu e la barra pulsanti

Il problema del produttore e del consumatore. Cooperazione tra processi

Invio SMS. DM Board ICS Invio SMS

WG-TRANSLATE Manuale Utente WG TRANSLATE. Pagina 1 di 15

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

MICHELANGELO Piattaforma autorizzativa per la gestione di interventi riservata ai fornitori

4.5 CONTROLLO DEI DOCUMENTI E DEI DATI

L apposizione di firme e informazioni su documenti firmati

Modulo 3 - Elaborazione Testi 3.5 Stampa unione

Automatizzare i compiti ripetitivi. I file batch. File batch (1) File batch (2) Visualizzazione (2) Visualizzazione

GUIDA ALLA PROMOZIONE SUL SITO

EXCEL PER WINDOWS95. sfruttare le potenzialità di calcolo dei personal computer. Essi si basano su un area di lavoro, detta foglio di lavoro,

Gestione Filtri. InfoBusiness 2.8 Gestione Filtri Pag. 1/ 11

Tipi primitivi. Ad esempio, il codice seguente dichiara una variabile di tipo intero, le assegna il valore 5 e stampa a schermo il suo contenuto:

Soluzioni per archiviazione sicura di log di accesso server Windows. PrivacyLOG

Corrispondenze e funzioni

Sistemi Operativi GESTIONE DELLA MEMORIA CENTRALE. D. Talia - UNICAL. Sistemi Operativi 6.1

CORSO DI FORMAZIONE PER L'ACCESSO AI LABORATORI DELL'ATENEO COMPILAZIONE SCHEDA DI ACCESSO

Reti Idranti Antincendio

Transcript:

Una transazione è una successione di operazioni che si può concludere con successo o con insuccesso. Nel caso di successo, i risultati delle operazioni effettuate devono essere resi definitivi; invece, nel caso d insuccesso, non deve rimanere traccia alcuna delle operazioni. Una transazione deve godere delle seguenti proprietà (dette proprietà acide): Atomicità: La transazione è un unità indivisibile d esecuzione, cioè essa deve essere eseguita del tutto oppure non eseguita affatto. Consistenza: La transazione deve far passare i dati (la base di dati) su cui opera da uno stato consistente ad un altro. Questo significa che, al termine della transazione, qualunque sia il suo esito, tutti i dati devono ancora soddisfare il complesso di vincoli stabiliti dal progettista. Isolamento: Due o più transazioni devono svolgere il proprio compito indipendentemente le une dalle altre, senza alcuna interferenza. In particolare, questa proprietà impone che l esecuzione concorrente di più transazioni conduca la base di dati allo stesso stato in cui si sarebbe giunti se le transazioni fossero state eseguite singolarmente. Durabilità (o persistenza): I risultati prodotti da una transazione andata a buon fine non devono essere persi per alcun motivo. G. Piscitelli Politecnico di Bari 1 di 10

Una transazione deve essere atomica, nel senso che, nel caso in cui essa non vada a buon fine, le risorse utilizzate devono essere ripristinate come se la transazione non sia mai avvenuta. Se la transazione va a buon fine, si eseguono le operazioni di commit, che rendono permanenti le modifiche apportate, altrimenti si eseguono le operazioni di abort. Primitive per le transazioni (a) Transaction to reserve three flights commits (b) Transaction aborts when third flight is unavailable Una transazione può prevedere una serie di transazioni annidate. In tale situazione, nel caso in cui la transazione globale non vada a buon fine, devono essere rese nulle le operazioni di tutte le transazioni annidate (anche se queste ultime hanno avuto successo). G. Piscitelli Politecnico di Bari 2 di 10

L atomicità può essere garantita attraverso due metodi:! Creazione di un workspace privato (Private workspace);! Introduzione di un file di log (Writeahed log). Il metodo dello spazio di lavoro privato consiste nell eseguire una copia della risorsa sulla quale si opera (file, database o altro) e nell eseguire la transazione sulla copia. Quest ultima sarà resa permanente solo all atto della commit, attraverso la sostituzione della risorsa originale con la sua copia modificata. I problemi legati all uso della risorsa da parte di più utenti si risolvono con dei semafori. Le transazioni annidate operano sulla copia della copia della risorsa. Se la transazione annidata esegue la commit, le sue modifiche operano solo sulla prima copia della risorsa. La modifica permanente della risorsa può avvenire solo tramite operazione di commit da parte della transazione primaria. G. Piscitelli Politecnico di Bari 3 di 10

Il metodo del file di log si basa sull aggiornamento di un file, attraverso il quale si tiene traccia di tutte le modifiche apportate ad una risorsa durante una transazione. Ogni volta che viene apportata una modifica, viene registrato un record contenente le seguenti informazioni:! codice della transazione,! codice del campo modificato,! vecchio valore del campo,! nuovo valore del campo. Se la transazione non va a buon fine, è possibile ripristinare il contenuto della risorsa leggendo all incontrario il file di log. Il file di LOG è unico per tutto il sistema. Quest ultimo approccio si usa anche nella gestione del dead-lock (all atto dell uccisione di uno dei processi che contribuisce allo stallo) o quando in generale si opera il ripristino della copia di una risorsa (CHECK-POINT/RESTART). G. Piscitelli Politecnico di Bari 4 di 10

Confronto tra le due tecniche Il metodo dello spazio di lavoro privato è più facile dal punto di vista della gestione, ma può comportare grossa occupazione di memoria. Per questo motivo, la copia della risorsa non viene effettuata né all atto della begin transaction né all atto dell operazione di read, ma viene effettuata solo quando si presenta un operazione di write. Inoltre, all atto della modifica, si copia in memoria solo la parte del file o data-base alla quale si riferisce l operazione. In tal modo, si riduce il problema del grosso costo, in termini di memoria, richiesto da questo metodo. Il metodo del file di log è più laborioso nella gestione, ma non comporta grossa occupazione di memoria. G. Piscitelli Politecnico di Bari 5 di 10

Commit a due fasi Cosa accade se una transazione, che è un processo indipendente, lancia altri processi a loro volta transattivi? L approccio è sostanzialmente analogo anche quando coinvolge transazioni che operano in un sistema distribuito. Il processo chiamante (coordinatore) può eseguire la commit solo quando tutti gli altri processi chiamati hanno eseguito, a loro volta, la commit. In questo caso, è indispensabile l uso del metodo writeahed log. Il processo coordinatore scrive sul file di log che è pronto per eseguire la commit e richiede agli altri processi di notificare la possibilità di eseguire la loro operazione di commit. Ciascuno degli altri processi può, quindi, scrivere sul file di log che è pronto per la commit e segnala al processo coordinatore il benestare per la commit. Invece, se uno dei processi non risponde, il processo coordinatore non può effettuare la sua commit ed abortisce la transazione. La tecnica vista va sotto il nome di commit a due fasi. G. Piscitelli Politecnico di Bari 6 di 10

Concorrenza delle transazioni Nel caso in cui due applicazioni transattive operino sulla stessa risorsa, si possono avere problemi di corsa tipici della concorrenza. Il controllo della concorrenza si effettua tramite una delle seguenti tecniche:! locking a 2 fasi,! timestamping. G. Piscitelli Politecnico di Bari 7 di 10

Locking a 2 fasi. Questa tecnica consiste nell associare a ciascuna risorsa condivisa una variabile accessibile in modo atomico da tutte le transazioni. Tale variabile indica se la risorsa è libera oppure in uso ed esprime il tipo d accesso consentito. Esistono due tipi di lock: condiviso (o in lettura) ed esclusivo (o in scrittura). Quando una transazione vuole accedere ad un dato con lo scopo di leggerlo, richiede su di esso un lock condiviso. Se altre transazioni vogliono leggere quello stesso dato, possono anch esse richiedere un lock condiviso senza che il sistema transazionale lo neghi. Nel caso in cui una transazione voglia scrivere un dato, deve richiedere un lock esclusivo. Se tale richiesta viene effettuata per un dato su cui altre transazioni hanno fissato un lock condiviso, essa verrà negata dal sistema transazionale. Uno dei protocolli di locking più utilizzati (per evitare la monopolizzazione delle risorse) è il locking a due fasi. Tale protocollo prevede che tutte le richieste di locking precedano la prima operazione di unlock (rimozione di un lock). Questo consente di dividere la transazione in una fase d espansione (in cui vengono stabiliti i lock sulle risorse) ed una fase di contrazione (in cui i lock vengono rimossi). G. Piscitelli Politecnico di Bari 8 di 10

Timestamping. Questa tecnica consiste nell associare a ciascuna transazione un valore numerico in genere con significato temporale detto timestamp (ricavato dal clock di sistema). Ad ogni risorsa cui le transazioni accedono, sono associati due indicatori WTM(X) e RTM(x) che sono rispettivamente il timestamp della transazione che ha eseguito l ultima scrittura ed il timestamp più grande tra quelli delle transazioni che hanno letto x. Le primitive d accesso ai dati sono del tipo read(x,ts) oppure write(x,ts). Il sistema transazionale si comporta nel modo seguente: " nel caso di una read(x,ts), se ts<wtm(x) (cioè, la transazione corrente vuole leggere un dato scritto da una transazione più giovane), la transazione viene uccisa; in caso contrario, la richiesta viene accettata ed il valore di RTM(x) viene aggiornato al massimo tra RTM(x) e ts. " nel caso di una write(x,ts), se ts<wtm(x) o ts<rtm(x) (cioè, la transazione corrente cerca di scrivere su di un dato già scritto o già letto da una transazione più giovane), la transazione viene uccisa, altrimenti la richiesta viene accettata e WTM(x) viene posto uguale a ts. Questo meccanismo è meno efficace del locking, ma evita il problema del deadlock. G. Piscitelli Politecnico di Bari 9 di 10

Nei sistemi transazionali facenti uso di politiche di locking, uno dei problemi ricorrenti è il blocco critico (deadlock). Quando una transazione A detiene una risorsa e ne attende un altra posseduta da una transazione B, che rilascerà solo avendo a disposizione la risorsa detenuta da A, si determina una situazione che senza intervento esterno non potrà evolvere. Una modalità per risolvere il problema del deadlock è quella del timeout. Quando una transazione richiede una risorsa che per qualche motivo non può avere, viene fissato un tempo massimo d attesa scaduto il quale la transazione viene uccisa. Quest ultima verrà fatta ripartire successivamente. E evidente che il sistema non può effettivamente rilevare una situazione di deadlock, ma presume che attese troppo lunghe siano valido sintomo di deadlock. Il valore dell intervallo di timeout deve essere fissato con molta cura, poichè un tempo troppo lungo risolverebbe tardi una situazione di deadlock, mentre un tempo troppo corto fa apparire come deadlock delle situazioni che in realtà non lo sono. Il vantaggio maggiore di questa tecnica è l estrema semplicità implementativa. G. Piscitelli Politecnico di Bari 10 di 10