La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Controllo della concorrenza basato sui timestamp.

Presentazioni simili


Presentazione sul tema: "Controllo della concorrenza basato sui timestamp."— Transcript della presentazione:

1 Controllo della concorrenza basato sui timestamp

2 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

3 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

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

5 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

6 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

7 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

8 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

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

10 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

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

12 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

13

14

15 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

16 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)

17 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)


Scaricare ppt "Controllo della concorrenza basato sui timestamp."

Presentazioni simili


Annunci Google