Protocollo di locking a due fasi stretto

Slides:



Advertisements
Presentazioni simili
Tecnologie di un database server: la gestione della concorrenza
Advertisements

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.
Controllo della concorrenza basato sui timestamp.
Fondamenti di Informatica - D. Talia - UNICAL 1 Fondamenti di Informatica FONDAMENTI DI INFORMATICA Domenico Talia
13 gennaio Sistema di rilevazione delle temperature all’interno di Personal Computer Industriali Dipartimento di Ingegneria Elettronica SISTEMA.
CONTROLLO DELLA CONCORRENZA
Le Frazioni Prof.ssa A.Comis.
Cartesio - Front End Maric Adrian Giulietti Raffaello Libro Pietro
© 2007 SEI-Società Editrice Internazionale, Apogeo
LA PROGRAMMAZIONE: Algoritmi e programmi
Filtri di vario genere: dove ?
Il Sistema Operativo Gestione dei Processi
Algoritmi Avanzati a.a.2014/2015 Prof.ssa Rossella Petreschi
Cartesio – Back End Farine Antoine Giulietti Raffaello Libro Pietro
Definizione di logaritmo
CRITTOGRAFIA Per crittografia si intende la protezione delle informazioni mediante l'utilizzo di codici e cifre. La crittografia è un componente fondamentale.
IL CALCOLO DELLA PROBABILITÀ
Microcontrollori e microprocessori
Spiegazione di alcuni concetti
I DIAGRAMMI DI FLUSSO Vantaggi e svantaggi.
Write-only, read-only.
(7x + 8x2 + 2) : (2x + 3) 8x2 + 7x + 2 2x + 3 8x2 + 7x + 2 2x + 3 4x
IL CONCETTO DI ALGORITMO
TEORIA EQUAZIONI.
File con indice (sparso)
ESPRESSIONE LETTERALE
Classe 1 Sportivo Collegio Castelli
Equazioni differenziali
Deadlock e livelock.
Organizzazione fisica
I FILES AD ACCESSO SEQUENZIALE
Forme per rappresentare l’algoritmo:
Lock a tre valori.
il problema dei problemi
Operatori differenziali
ATOMICITÀ Il tipo di atomicità di un programma PL/SQL è stabilito dall’ambiente chiamante oppure dal programma Gestione atomicità: COMMIT SAVEPOINT nome_punto.
Lock binario.
Gli strumenti Gli strumenti di misura possono essere:
Recupero polizze assicurative
Tecnologia di un Database Server
Lock.
IL DISASTER RECOVERY Ing. Massimiliano Zuffi
Processi e Thread Meccanismi di IPC (1).
1.3 Dama matematica-gioco da tavolo
Programmare.
Codicfiche Interi Complemento alla base.
{ } Multipli di un numero M4 ESEMPIO 0, 4, 8, 12, 16, 20, 24, …
Azione delle istruzioni
I numeri relativi DEFINIZIONE. Si dicono numeri relativi tutti i numeri interi, razionali e irrazionali dotati di segno (positivo o negativo). ESEMPI Numeri.
Le espressioni algebriche letterali
Scheduling in Linux (Kernel 2.4 e 2.6)
Dalle potenze ai numeri binari
Codici rilevatori di errori
Esercitazione su Instruction Level Parallelism
Azione delle istruzioni
Corso di Laurea Ingegneria Informatica Fondamenti di Informatica
= 17 somma addendi + ADDIZIONE
LE SUCCESSIONI Si consideri la seguente sequenza di numeri:
Le operazioni con le frazioni
Teoria della computabilità
Parti interne del computer
Unità 1 Programmi base.
Risolvere le moltiplicazioni tra frazioni
Introduzione ai DBMS I Sistemi di Gestione di Basi di Dati sono strumenti software evoluti per la gestione di grandi masse di dati residenti su memoria.
La programmazione strutturata
Progetto del processore e supporto del processore al SO (interruzioni – eccezioni) Salvatore Orlando.
Relazioni tra CPU e Memoria e Dispositivi I/O
Algoritmi.
Le Equazioni di 1°grado Prof.ssa A.Comis.
Progettazione di una base di dati
Transcript della presentazione:

Protocollo di locking a due fasi stretto

Abort di una transazione La transazione esegue un operazione non corretta (divisione per 0, accesso non consentito) Lo scheduler rileva un deadlock Lo scheduler fa abortire la transazione per garantire la serializzabilità (timestamp) Si verifica un malfunzionamento hardware o software

Punto di commit punto di commit di una transazione è il punto in cui la transazione ha ottenuto tutti i lock che gli sono necessari ha effettuato tutti i calcoli nell’area di lavoro e quindi non può più essere abortita a causa di 1-3

Dati sporchi dati sporchi: dati scritti da una transazione sulla base di dati prima che abbia raggiunto il punto di commit

Roll-back a cascata Quando una transazione T viene abortita devono essere annullati gli effetti sulla base di dati prodotti: da T da qualsiasi transazione che abbia letto dati sporchi

Riprendiamo in esame i problemi legati all’esecuzione concorrente delle transazioni visti inizialmente

prodotto da T1 viene perso read(X) X:=X-N X:=X+M write(X) read(Y) Y:=Y+N write(Y) L’aggiornamento di X prodotto da T1 viene perso

Il valore di X letto da T2 è un dato sporco (temporaneo) in quanto read(X) X:=X-N write(X) X:=X+M read(Y) T1 fallisce Il valore di X letto da T2 è un dato sporco (temporaneo) in quanto prodotto da una transazione fallita

aggregato non corretto somma:=0 read(X) X:=X-N write(X) somma:=somma+X read(Y) somma:=somma+Y Y:=Y+N write(Y) Il valore di somma è un dato aggregato non corretto

L’uso di lock consente di risolvere il problema dell’aggiornamento perso ma non quello della lettura di un dato sporco …

… né quello dell’aggregato non corretto

Il protocollo di locking a due fasi risolve il problema dell’aggregato non corretto …

… ma non quello della lettura di un dato sporco

Per risolvere il problema della lettura di dati sporchi occorre che le transazioni obbediscano a regole più restrittive del protocollo di locking a due fasi

Protocollo a due fasi stretto Una transazione soddisfa il protocollo di locking a due fasi stretto se: non scrive sulla base di dati fino a quando non ha raggiunto il suo punto di commit se una transazione è abortita allora non ha modificato nessun item nella base di dati non rilascia un lock finchè non ha finito di scrivere sulla base di dati. se una transazione legge un item scritto da un’altra transazione quest’ultima non può essere abortita

Classificazione dei protocolli conservativi cercano di evitare il verificarsi di situazioni di stallo aggressivi cercano di processare le transazioni il più rapidamente possibile anche se ciò può portare a situazioni di stallo

Protocolli conservativi Versione più conservativa: Una transazione T richiede tutti i lock che servono all’inizio e li ottiene se e solo se: tutti i lock sono disponibili se non li può ottenere tutti viene messa in una coda di attesa Si evita il deadlock, ma non il livelock.

Protocolli conservativi Per evitare il verificarsi sia del dealdock che del livelock: Una transazione T richiede tutti i lock che servono all’inizio e li ottiene se e solo se: tutti i lock sono disponibili nessuna transazione che precede T nella coda è in attesa di un lock richiesto da T

Protocolli conservativi VANTAGGI: si evita il verificarsi sia del dealdock che del livelock SVANTAGGI: l’esecuzione di una transazione può essere ritardata una transazione è costretta a richiedere un lock su ogni item che potrebbe essergli necessario anche se poi di fatto non l’utlizza

Protocolli aggressivi Versione più aggressiva: una transazione deve richiedere un lock su un item immediatamente prima di leggerlo o scriverlo Può verificarsi un deadlock

Protocolli conservativi vs protocolli aggressivi Se la probabilità che due transazioni richiedano un lock su uno stesso item è: alta è conveniente un protocollo conservativo in quanto evita al sistema il sovraccarico dovuto alla gestione dei deadlock (rilevare e risolvere situazioni di stallo, eseguire parzialmente transazioni che poi vengono abortite, rilascio dei lock mantenuti da transazioni abortite) bassa è conveniente un protocollo aggressivo in quanto evita al sistema il sovraccarico dovuto alla gestione dei lock (decidere se garantire un lock su un dato item ad una data transazione, gestire la tavola dei lock, mettere le transazioni in una coda o prelevarle da essa)