Sei sulla pagina 1di 4

ESERCIZI SECONDO PARZIALE

ES 1

Si consideri il log di un sistema di gestione di basi di dati che contiene la seguente sequenza di
record.

B(T1) B(T2) U(T1,O1,B1,A1) B(T3) I(T3,O3,A3) I(T2,O2,A2) C(T2) CK(T1,T3) C(T3)


B(T4) B(T5) U(T4,O2,B4,A4) U(T4,O3,B5,A5) U(T5,O6,B6,A6) A(T1) C(T4)
D(T5,O7,B7) D(T5,O1,B8) GUASTO
Si richiede di illustrare dettagliatamente i passi da compiere per effettuare la ripresa a caldo.

FASE 1: percorro log all’indietro fino ad un CK ed inizializzo UNDO e REDO e dal CK vado avanti nel
log:

UNDO REDO

CK T1, T3 --------

C(T3) T1 T3

B(T4) T1,T4 T3

B(T5) T1, T4, T5 T3

C(T4) T1, T5 T3, T4

FASE 2: prima mi occupo dell’UNDO poi del REDO

UNDO { T1, T5 }

Vado inditero nel log e disfo tutte le azioni di T1 e T5

RECORD AZIONE

D(T5,O1,B8) insert O1, O1 := B8


D(T5,O7,B7) insert O7, O7 := B7
U(T5,O6,B6,A6) O6 := B6
U(T1,O1,B1,A1) O1 := B1
REDO { T3, T4 }

vado in ordine cronologico nel log e rifaccio le azioni di T3, T4

RECORD AZIONE

I(T3,O3,A3) insert O3, O3 := A3


U(T4,O2,B4,A4) O2 := A4
U(T4,O3,B5,A5) O3 := A5
================================================================
ES 2

B(T1), B(T2), U(T2,O1,B1,A1), I(T1,O2,A2), B(T3), C(T1), B(T4), A(T2), CK(T3,T4)


U(T3,O2,B3,A3), U(T4,O3,B4,A4), B(T5), C(T4), U(T3,O3,B5,A5), U(T5,O4,B6,A6),
D(T3,05,B7), A(T3), C(T5) GUASTO
Si richiede di illustrare dettagliatamente i passi da compiere per effettuare la ripresa a caldo.

FASE 1: percorro log all’indietro fino ad un CK ed inizializzo UNDO e REDO e dal CK vado avanti nel
log:

UNDO REDO

CK(T3, T4) T3, T4 --------

B(T5) T3,T4,T5 --------

C(T4) T3,T5 T4

C(T5) T3 T4, T5

FASE 2: prima mi occupo dell’UNDO poi del REDO

UNDO { T3 }, vado indietro nel log e disfo tutte le azioni di T3:

AZIONE RECORD

D(T3,05,B7) insert O5, O5 := B7


U(T3,O3,B5,A5) O3 := B5
U(T3,O2,B3,A3) O2 := B3
REDO { T4, T5 }

vado in ordine cronologico nel log e rifaccio le azioni di T4, T5

AZIONE RECORD

U(T4,O3,B4,A4) O3 := A4
U(T5,O4,B6,A6) O4 := A6
ES 3
B(T1), U(T1,O1,B1,A1), B(T2), I(T2,O2,A2), B(T3), C(T1), CK(T2,T3),
U(T2,O3,B3,A3), A(T2), B(T4), U(T4,O4,B4,A4), B(T5), C(T4), U(T5,O5,B5,A5),
C(T5), B(T6), U(T6,O6,B6,A6) GUASTO
Si richiede di illustrare dettagliatamente i passi da compiere per effettuare la ripresa a caldo.

FASE 1

UNDO REDO

CK( T2, T3) T2,T3 -------

B(T4) T2,T3,T4 -------

B( T5) T2,T3,T4,T5 -------

C(T4) T2,T3,T5 T4

C(T5) T2,T3 T4, T5

B(T6) T2,T3,T6 T4,T5

FASE 2

UNDO {T2, T3, T6}

RECORD AZIONE

U(T6,O6,B6,A6) O6 := B6
U(T2,O3,B3,A3) O3 := B3
I(T2,O2,A2) DELETE 02
REDO {T4, T5}

RECORD AZIONE

U(T4,O4,B4,A4) O4 := A4
U(T5,O5,B5,A5) O5 := A5
=============================================================================

ES 4

DUMP B(T0), B(T1), B(T2), I(T0,O6,AO), I(T1,O1,A1), U(T2,O2,B2,A2),


D(T1,O3,B3), B(T3), U(T3,O2,B4,A4), A(T0), B(T4), I(T4,O4,A4), U(T4,O2,B5,A5),
C(T2), CK(:::), C(T4), B(T5), D(T5,O4,B5), U(T1,O2,B6,A6), A(T3), C(T1) GUASTO
Si richiede di:

1) scrivere, in corrispondenza di ogni record di checkpoint, le transazioni attive;


→ le transazioni attive al checkpoint sono T0, T1, T3, T4. Perche T2 ha sì un begin ma viene
conclusa con un commit prima del checkpoint.

2) illustrare dettagliatamente i passi da compiere per effettuare la ripresa a caldo.


DUMP B(T0), B(T1), B(T2), I(T0,O6,AO), I(T1,O1,A1), U(T2,O2,B2,A2),
D(T1,O3,B3), B(T3), U(T3,O2,B4,A4), A(T0), B(T4), I(T4,O4,A4), U(T4,O2,B5,A5),
C(T2), CK(T0, T1, T3, T4), C(T4), B(T5), D(T5,O4,B5), U(T1,O2,B6,A6), A(T3),
C(T1) GUASTO
FASE 1

UNDO REDO

CK T0,T1,T3,T4 -------

C(T4) T0,T1,T3 T4

B(T5) T0,T1,T3,T5 T4

C(T1) T0,T3,T5 T1, T4

FASE 2

UNDO { T0, T3, T5}

RECORD AZIONE

D(T5,O4,B5) INSERT O4, O4 := B5


U(T3,O2,B4,A4) O2 := B4
I(T0,O6,AO) DELETE O6
REDO {T1, T4 }

RECORD AZIONE

I(T1,O1,A1) INSERT O1, O1 := A1


D(T1,O3,B3) DELETE O3
I(T4,O4,A4) INSERT O4 := A4
U(T4,O2,B5,A5) O2 := A5
U(T1,O2,B6,A6) O2 := A6
=========================================================================

Potrebbero piacerti anche