Controllo della concorrenza basato sui timestamp.

Slides:



Advertisements
Presentazioni simili
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.
Advertisements

Inizio… Linguaggi Linguaggi di programmazione Linguaggi di programmazione Linguaggi di programmazione Linguaggi di programmazione Linguaggi Formali Linguaggi.
Algoritmi e Programmazione
Informatica Generale Marzia Buscemi
Università degli studi di Trieste – Tesi di laurea triennale in Ingegneria elettronica PROTOCOLLO DI COMUNICAZIONE TRA PC E MICROCONTROLLORE PER UN’INTERFACCIA.
Corso di Laurea in Biotecnologie corso di Informatica Paolo Mereghetti DISCo – Dipartimento di Informatica, Sistemistica e Comunicazione.
Sincronizzazione fra processi
La Modifica dei Dati in una Base Dati La modifica dei dati contenuti allinterno di una base dati è unoperazione delicata Infatti, ogni potenziale problema.
Algoritmi Paralleli e Distribuiti a.a. 2008/09
Algoritmi Paralleli e Distribuiti a.a. 2008/09 Lezione del 17/03/2009 Prof. ssa ROSSELLA PETRESCHI a cura del Dott. SAVERIO CAMINITI.
Tecnologia di un data base server: Controllo della Concorrenza
Local Trigger Control Unit prototipo
Gestione dei processi Un sistema operativo multitasking è in grado di gestire più processi Un processo corrisponde ad un programma in esecuzione. Un programma.
Memorie Condivise Distribuite
Introduzione alla programmazione lll
Tecnologie di un database server: la gestione della concorrenza
07/04/2003Algoritmi Ricerca in una sequenza di elementi Data una sequenza di elementi, occorre verificare se un elemento fa parte della sequenza oppure.
Aspetti sistemistici dellSQL. SQL environment Un SQL environment è un framework dove esistono dati e possono aversi istruzioni SQL eseguite su questi.
1 Scheduling in Windows 2000 Un thread entra in modalità kernel e chiama lo scheduler quando: Si blocca su un oggetto di sincronizzazione (semaforo, mutex,
Le transazioni Itis Max Planck.
La schedulazione dei processi
Lezione 6 Strutture di controllo Il condizionale
Esecuzione dei programmi Prolog Liste ed operatori aritmetici
1 Scheduling in Windows 2000 Un thread entra in modalità kernel e chiama lo scheduler quando: Si blocca su un oggetto di sincronizzazione (semaforo, mutex,
Configurazione in ambiente Windows Ing. A. Stile – Ing. L. Marchesano – 1/23.
Corso di Basi di Dati Il Linguaggio SQL
Basi di Dati e Sistemi Informativi
Progetto di una memoria cache per il processore DLX
…sulle equazioni.
ND-partizione (A) n   A  somma  0 M  1/2 (  a i ) for i  1 to n do S[i]  choice ({true, false}) if S[i] then somma  somma + a i if somma > M then.
Autori Matteo Tofacchi & Giovanni Rossi
1 Il Buffer Cache Unix (Bach: the Design of the Unix Operating System (cap: 3)
Il nucleo del Sistema Operativo
Calcolo letterale.
SCHEDA INFORMATIVA DI UNITÀ. Introduzione Applicazione della gerarchia di memoria –Memoria cache fra la CPU e la memoria centrale Il processore vedrà.
SCHEDA INFORMATIVA DI UNITÀ. Introduzione Applicazione della gerarchia di memoria –Memoria cache fra la CPU e la memoria centrale Il processore vedrà.
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.
ATOMICITÀ Il tipo di atomicità di un programma PL/SQL è stabilito dall’ambiente chiamante oppure dal programma Gestione atomicità: –COMMIT –SAVEPOINT nome_punto.
Fondamenti di Informatica 2 Ingegneria Informatica Docente: Giovanni Macchia a.a
Gestione del processore (Scheduler)
Nucleo di Java: Struttura e Semantica Espressioni Assegnamento Controllo di sequenza Dichiarazioni.
Capitolo 9 Union-find Algoritmi e Strutture Dati.
Algoritmi e Programmazione Giorgio Delzanno. Algoritmi e Programmi Algoritmo=Successione di operazioni elementari che possono essere eseguite da un calcolatore.
Automi temporizzati.
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.
Modulo 4: Frazioni Equivalenti
OBIETTIVI 1. DISEGNARE IL CIRCUITO ELETTRICO 2. IMPOSTARE LE EQUAZIONI RISOLUTIVE 3. RISOLVERE LE EQUAZIONI.
 Ogni processo che deve essere eseguito da un sistema di elaborazione, deve essere caricato e risiedere almeno parzialmente nella memoria centrale 
DEFINIZIONE. La potenza di un numero è il prodotto di tanti fattori uguali a quel numero detto base, quanti ne indica l’esponente. La potenza di un numero.
IL PIANO CARTESIANO E LA RETTA
+ Gestire la persistenza Nicolò Sordoni. + Meccanismi di persistenza dei dati In Windows Phone, come negli altri ambienti, abbiamo tre soluzioni principali.
Gestione delle periferiche. Le periferiche sono dispositivi che permettono le operazioni di input/output.
Le proposizioni DEFINIZIONE. La logica è un ramo della matematica che studia le regole per effettuare ragionamenti rigorosi e corretti. DEFINIZIONE. Una.
I LIMITI.
Anno Architetture dati DBMS Centralizzati Controllo di concorrenza Carlo Batini.
Lezione 13 Variabili Local e Global Obiettivi di apprendimento: A.Come usare le local variables B.Come usare le global variables C.Consigli sull’uso di.
© 2016 Giorgio Porcu - Aggiornamennto 31/01/2016 I STITUTO T ECNICO SECONDO BIENNIO T ECNOLOGIE E P ROGETTAZIONE Il Sistema Operativo Thread G IORGIO P.
Corso di Architetture C. Batini Architetture Distribuite DDBMS Query Processing, Controllo di concorrenza, Recovery management.
GIOCO PER LA PRIMA CLASSE Ricostruisci il puzzle dell’albero sovrapponendo l’elemento disegnato nella tessera alla casella in cui è rappresentato il gruppo.
Introduzione alle basi di dati e ai sistemi di gestione di basi di dati.
Il DEFF Il DEFF (Design EFFect) è l’Effetto del Piano di
Le frazioni A partire da N vogliamo costruire un nuovo insieme numerico nel quale sia sempre possibile eseguire la divisione. Per fare ciò dobbiamo introdurre.
CONTROLLO DELLA CONCORRENZA
Protocollo di locking a due fasi stretto
Write-only, read-only.
Deadlock e livelock.
Lock a tre valori.
Lock binario.
Lock.
Transcript della presentazione:

Controllo della concorrenza basato sui timestamp

Timestamp Il timestamp  identifica una transazione  è assegnato alla transazione dallo scheduler quando la transazione ha inizio  può essere il valore di un contatore l’ora di inizio della transazione

Osservazione Se il timestamp della transazione T1 è minore del timestamp della transazione T2, la transazione T1 è iniziata prima della transazione T2 quindi se le transazioni non fossero eseguite in modo concorrente ma seriale, T1 verrebbe eseguita prima di T2

Serializzabilità Uno schedule è serializzabile se è equivalente allo schedule seriale in cui le transazioni compaiono ordinate in base al loro timestamp

Serializzabilità Quindi uno schedule è serializzabile se: per ciascun item acceduto da più di una transazione, l’ordine con cui le transazioni accedono all’item è quello imposto dai timestamp

T1T1 T2T2 read(X) X:=X+10X:=X+5 write(X) TS(T 1 )=110 TS(T 2 )=100 Quindi uno schedule è serializzabile se è equivalente allo schedule seriale T 2 T 1

T1T1 T2T2 read(X) X:=X+5 write(X) read(X) X:=X+10 write(X) T 1 legge il valore di X scritto da T 2

T1T1 T2T2 read(X) X:=X+5 X:=X+10 write(X) Consideriamo il seguente schedule Lo schedule non è serializzabile in quanto T 1 legge X prima che T 2 l’abbia scritto

TS(T 1 )=110 TS(T 2 )=100 Quindi uno schedule è serializzabile se è equivalente allo schedule seriale T 2 T 1

T1T1 T2T2 read(Y) X:=Y+5 write(X) read(Y) X:=Y+10 write(X) Il valore finale di X viene scritto da T 1

Consideriamo il seguente schedule Lo schedule è serializzabile solo se non viene eseguita la scrittura di X da parte di T 2

read timestamp, write timestamp A ciascun item X vengono associati due timestamp: read timestamp di X (read_TS(X)) il più grande fra tutti i timestamp di transazioni che hanno letto con successo X write timestamp di X (write_TS(X)) il più grande fra tutti i timestamp di transazioni che hanno scritto con successo X

Controllo della serializzabilità Ogni volta che una transazione T cerca di eseguire un read(X) o un write(X), occorre confrontare il timestamp TS(T) di T con il read timestamp e il write timestamp di X per assicurarsi che l’ordine basato sui timestamp non è violato

Controllo della serializzabilità Algoritmo T cerca di eseguire una write(X): 1.se read_TS(X)  TS(T), T viene rolled back 2.se write_TS(X)  TS(T), l’operazione di scrittura non viene effettuata 3.se nessuna delle condizioni precedenti è soddisfatta allora write(X) è eseguita write_TS(X):=TS(T)

Controllo della serializzabilità Algoritmo T cerca di eseguire una read(X): 1.se write_TS(X)  TS(T), T viene rolled back 2.se write_TS(X)  TS(T), allora read(X) è eseguita se read_TS(X)  TS(T) allora read_TS(X):= TS(T)