Τεχνικές Ανάκαμψης

57
Βάσεις Δεδομένων II 2004-2005 Ευαγγελία Πιτουρά 1 Τεχνικές Ανάκαμψης

description

Τεχνικές Ανάκαμψης. Επιθυμητές Ιδιότητες μιας Δοσοληψίας. Ιδιότητες Δοσοληψιών. Α tomicity ( ατομικότητα) - είτε όλες οι πράξεις είτε καμία C onsistency ( συνέπεια) - διατήρηση συνέπειας της ΒΔ I solation ( απομόνωση) - δεν αποκαλύπτει ενδιάμεσα αποτελέσματα - PowerPoint PPT Presentation

Transcript of Τεχνικές Ανάκαμψης

Page 1: Τεχνικές Ανάκαμψης

Βάσεις Δεδομένων II 2004-2005 Ευαγγελία Πιτουρά1

Τεχνικές Ανάκαμψης

Page 2: Τεχνικές Ανάκαμψης

Βάσεις Δεδομένων II 2004-2005 Ευαγγελία Πιτουρά2

Επιθυμητές Ιδιότητες μιας Δοσοληψίας

• Αtomicity (ατομικότητα) - είτε όλες οι πράξεις είτε καμία

• Consistency (συνέπεια) - διατήρηση συνέπειας της ΒΔ

• Isolation (απομόνωση) - δεν αποκαλύπτει ενδιάμεσα αποτελέσματα

• Durability (μονιμότητα ή διάρκεια) - μετά την επικύρωση μιας δοσοληψίας οι αλλαγές δεν είναι δυνατόν να χαθούν

Ιδιότητες Δοσοληψιών

Page 3: Τεχνικές Ανάκαμψης

Βάσεις Δεδομένων II 2004-2005 Ευαγγελία Πιτουρά3

Επιθυμητές Ιδιότητες μιας Δοσοληψίας

• Αtomicity (ατομικότητα) ΤΕΧΝΙΚΕΣ ΑΝΑΚΑΜΨΕΙΣ

• Consistency (συνέπεια) ΥΠΕΥΘΥΝΟΤΗΤΑ ΤΟΥ ΠΡΟΓΡΑΜΜΑΤΙΣΤΗ

• Isolation (απομόνωση) ΕΛΕΓΧΟΣ ΣΥΝΔΡΟΜΙΚΟΤΗΤΑΣ

• Durability (μονιμότητα ή διάρκεια) ΤΕΧΝΙΚΕΣ ΑΝΑΚΑΜΨΕΙΣ

Page 4: Τεχνικές Ανάκαμψης

Βάσεις Δεδομένων II 2004-2005 Ευαγγελία Πιτουρά4

Ανάκαμψη από Αποτυχίες

Είδη Αποτυχιών

Δυο κατηγορίες: καταστροφή ή όχι της μόνιμης αποθήκευσης (δίσκου)

Παραδείγματα αποτυχιών ...

Page 5: Τεχνικές Ανάκαμψης

Βάσεις Δεδομένων II 2004-2005 Ευαγγελία Πιτουρά5

Παραδείγματα Αποτυχιών

Είδη Αποτυχιών

1. Αποτυχία του υπολογιστή (system crash)

2. Σφάλμα δοσοληψίας ή συστήματος (π.χ., προγραμματιστικό λάθος)

3. Εφαρμογή ελέγχου συνδρομικότητας

4. Πρόβλημα δίσκου

5. Φυσικά προβλήματα και καταστροφές

Στόχος της ανάκαμψης: επαναφορά στην πιο πρόσφατη συνεπή κατάσταση ακριβώς πριν τη στιγμή της αποτυχίας

Page 6: Τεχνικές Ανάκαμψης

Βάσεις Δεδομένων II 2004-2005 Ευαγγελία Πιτουρά6

Έννοιες Ανάκαμψης

DB

βδ στο δίσκο

RAM

Προσωρινή αποθήκευση (καταχωρητές μνήμης) ήcache

σελίδες

το μοντέλο του συστήματος

Ημερολόγιο Συστήματος (system log)

Πληροφορίες για κάθε δοσοληψία

Page 7: Τεχνικές Ανάκαμψης

Βάσεις Δεδομένων II 2004-2005 Ευαγγελία Πιτουρά7

Ημερολόγιο Συστήματος (Log)

• Για να είναι δυνατή η ανάκαμψη από αποτυχίες, καταχωρούνται πληροφορίες για τις πράξεις των δοσοληψιών• Αποθηκεύονται στο δίσκο

• Τύποι πληροφορίας: έναρξη δοσοληψίας

εγγραφή στοιχείου (παλιά, νέα τιμή)

ανάγνωση στοιχείου

επικύρωση/ακύρωση

Page 8: Τεχνικές Ανάκαμψης

Βάσεις Δεδομένων II 2004-2005 Ευαγγελία Πιτουρά8

Ανάκαμψη από Αποτυχίες

Περιπτώσεις αποτυχίας

1. Καταστροφική αποτυχία (δίσκου)

Backup + (backuped) log

2. Μη καταστροφική αποτυχία

Χρήση μόνο του disk log

Page 9: Τεχνικές Ανάκαμψης

Βάσεις Δεδομένων II 2004-2005 Ευαγγελία Πιτουρά9

Επιθυμητές Ιδιότητες μιας Δοσοληψίας

• Αtomicity (ατομικότητα) - είτε όλες οι πράξεις είτε καμία

• Durability (μονιμότητα ή διάρκεια) - μετά την επικύρωση μιας δοσοληψίας οι αλλαγές δεν είναι δυνατόν να χαθούν

Ιδιότητες Δοσοληψιών

Page 10: Τεχνικές Ανάκαμψης

Βάσεις Δεδομένων II 2004-2005 Ευαγγελία Πιτουρά10

Έννοιες Ανάκαμψης

Ατομικότητα: Οι δοσοληψίες μπορεί να αναιρεθούν

(“Rollback”). Διάρκεια:

Tι θα συμβεί αν το ΣΔΒΔ καταρρεύσει?

αποτυχία

Επιθυμητή συμπεριφορά μετά από μια αποτυχία:– T1, T2 & T3 πρέπει να

έχουν διάρκεια (redo-επανάληψη)

– T4 & T5 πρέπει να αναιρεθούν (undo-αναίρεση)

T1T2T3T4T5

Page 11: Τεχνικές Ανάκαμψης

Βάσεις Δεδομένων II 2004-2005 Ευαγγελία Πιτουρά11

Έννοιες Ανάκαμψης

Ατομικότητα: όχι επικυρωμένες -- undo – αναίρεση

Διάρκεια: επικυρωμένες -- redo -- επανάληψη

Page 12: Τεχνικές Ανάκαμψης

Βάσεις Δεδομένων II 2004-2005 Ευαγγελία Πιτουρά12

Έννοιες Ανάκαμψης

Στην πιο εύκολη περίπτωση

• όλες οι ενημερώσεις μιας δοσοληψίας γράφονται στον τοπικό χώρο εργασίας της δοσοληψίας

• η βδ ενημερώνεται μόνον αφού μια δοσοληψία φτάσει στο σημείο επικύρωσής της

Page 13: Τεχνικές Ανάκαμψης

Βάσεις Δεδομένων II 2004-2005 Ευαγγελία Πιτουρά13

Έννοιες Ανάκαμψης

Στην πραγματικότητα --Steal (flush) ::

• κάποιες ενημερώσεις μιας δοσοληψίας γράφονται στον δίσκο (βδ) πριν η δοσοληψία επικυρωθεί

• Γιατί; βελτίωση throughput

• Πρόβλημα:

Ατομικότητα (αναίρεση (undo) στην περίπτωση που η δοσοληψία αποτύχει)

Page 14: Τεχνικές Ανάκαμψης

Βάσεις Δεδομένων II 2004-2005 Ευαγγελία Πιτουρά14

Έννοιες Ανάκαμψης

Στην πραγματικότητα -- No Force ::

• κάποιες ενημερώσεις μιας δοσοληψίας δε γράφονται στον δίσκο (βδ) ακόμα και αφού η δοσοληψία επικυρωθεί

• Γιατί; βελτίωση χρόνου απόκρισης

• Πρόβλημα: Διάρκεια (επανάληψη (redo) στην περίπτωση που το σύστημα αποτύχει)

Page 15: Τεχνικές Ανάκαμψης

Βάσεις Δεδομένων II 2004-2005 Ευαγγελία Πιτουρά15

Έννοιες Ανάκαμψης

Force

No Force

No Steal Steal

Εύκολο

Επιθυμητό

Page 16: Τεχνικές Ανάκαμψης

Βάσεις Δεδομένων II 2004-2005 Ευαγγελία Πιτουρά16

Έννοιες Ανάκαμψης

όλες οι ενημερώσεις μιας δοσοληψίας γράφονται στον τοπικό χώρο εργασίας της δοσοληψίας -- η βδ ενημερώνεται μόνον αφού μια δοσοληψία φτάσει στο σημείο επικύρωσης της

ετεροχρονισμός των ενημερώσεων -- deferred updates

• χωρίς αναίρεση/ με επανάληψη (no undo/redo)

κάποιες ενημερώσεις μιας δοσοληψίας γράφονται στη βδ πριν μια δοσοληψία φτάσει στο σημείο επικύρωσης της

άμεση ενημέρωση -- immediate updates

• με αναίρεση/ με επανάληψη (undo/no redo)

Κάποια ορολογία:

Page 17: Τεχνικές Ανάκαμψης

Βάσεις Δεδομένων II 2004-2005 Ευαγγελία Πιτουρά17

Πίνακας Τροποποίησης Σελίδων

• Κατάλογος σελίδων που είναι στη μνήμη (cache)

• Δυαδικό ψηφίο τροποποίησης (dirty bit)

Page 18: Τεχνικές Ανάκαμψης

Βάσεις Δεδομένων II 2004-2005 Ευαγγελία Πιτουρά18

Ημερολόγιο Συστήματος (Log)

• Καταχώρηση τύπου ΕΠΑΝΑΛΗΨΗ (REDO)

Περιέχει την νέα τιμή (AFter IMage)

• Καταχώρηση τύπου ANAIΡΕΣΗ (UNDO)

Περιέχει την παλιά τιμή (BeFore IMage)

Page 19: Τεχνικές Ανάκαμψης

Βάσεις Δεδομένων II 2004-2005 Ευαγγελία Πιτουρά19

Προεγγραφή Ημερολογίου

Το πρωτόκολλο προεγγραφής ημερολογίου (Write Ahead Log)

(1) Η καταχώρηση στο log για μια εγγραφή γράφεται στο δίσκο πριν οι αντίστοιχες σελίδες να γραφούν στο δίσκο

(2) Πριν την επικύρωση (commit) μιας δοσοληψίας όλες οι καταχωρήσεις του log που την αφορούν γράφονται στο δίσκοΤο (1) δίνει ατομικότητα

Το (2) δίνει διάρκεια

Page 20: Τεχνικές Ανάκαμψης

Βάσεις Δεδομένων II 2004-2005 Ευαγγελία Πιτουρά20

Προεγγραφή Ημερολογίου

Θα δούμε μια συγκεκριμένη υλοποίηση (ARIES)

Page 21: Τεχνικές Ανάκαμψης

Βάσεις Δεδομένων II 2004-2005 Ευαγγελία Πιτουρά21

Ημερολόγιο Συστήματος (Log)

Σειριακή εγγραφή στο log

Για κάθε εγγραφή στοιχείου, στο log μια καταχώρηση:

<XID, pageID, offset, length, old data, new data>

ID δοσοληψίας αριθμό

ς σελίδας

θέση στη σελίδα

μήκοςπαλιά τιμή (undo)

νέα τιμή (redo)

Page 22: Τεχνικές Ανάκαμψης

Βάσεις Δεδομένων II 2004-2005 Ευαγγελία Πιτουρά22

ARIES

Κάθε καταχώρηση στο log έχει ένα μοναδικό αριθμό Log Sequence Number (LSN). LSNs πάντα αυξάνουν.

Το log γράφεται στο δίσκο. Το σύστημα κρατά τη μεταβλητή flushedLSN: το μέγιστο LSN που γράφτηκε στο δίσκο μέχρι τώρα

Καταχωρήσειςτου log ήδηflushed στο δίσκο

“Log tail” στην RAM

flushedLSN

Αν το σύστημα αποτύχει, μένουμε με το «πράσινο» κομμάτι

Page 23: Τεχνικές Ανάκαμψης

Βάσεις Δεδομένων II 2004-2005 Ευαγγελία Πιτουρά23

ARIES

Κάθε σελίδα δεδομένων περιέχει έναν

pageLSN: το πιο πρόσφατο LSN για εγγραφή σε αυτή τη σελίδα

WAL: Πριν γραφτεί μια σελίδα,

pageLSN flushedLSN pageLSN

Καταχωρήσειςτου log ήδηflushed στο δίσκο

flushedLSN

WAL(1) Η καταχώρηση στο log για μια εγγραφή γράφεται στο δίσκο πριν οι αντίστοιχες σελίδες να γραφούν στο δίσκο

Ακόμα και αν η δοσοληψία αναιρεθεί μπορούμε να χρησιμοποιήσουμε το log για να γίνει undo η εγγραφή

Page 24: Τεχνικές Ανάκαμψης

Βάσεις Δεδομένων II 2004-2005 Ευαγγελία Πιτουρά24

ARIES: Καταχωρήσεις Log

Τύποι καταχωρήσεων Update Commit Abort End Compensation Log Records

(CLRs) για πράξεις UNDO

prevLSNXIDtype

lengthpageID

offsetbefore-imageafter-image

Πεδία LogRecord:

Μόνο για εγγραφές

Προηγούμενο LSN για τη δοσοληψία

Page 25: Τεχνικές Ανάκαμψης

Βάσεις Δεδομένων II 2004-2005 Ευαγγελία Πιτουρά25

ARIES: Άλλες δομές

Πίνακας Δοσοληψιών: Μια εγγραφή για κάθε ενεργή δοσοληψία Πεδία εγγραφής:

XID, status, (running/commited/aborted), lastLSN (τελευταίο LSN που αφορά τη δοσοληψία).

XID status lastLSN

Page 26: Τεχνικές Ανάκαμψης

Βάσεις Δεδομένων II 2004-2005 Ευαγγελία Πιτουρά26

ARIES: Άλλες δομές

Πίνακας Τροποποιημένων Σελίδων: Μια εγγραφή για κάθε τροποποιημένη

σελίδα στη μνήμη. Πεδία εγγραφής

recLSN -- LSN της καταχώρησης του log της πρώτης αλλαγής στη σελίδα

PID recLSN

Page 27: Τεχνικές Ανάκαμψης

Βάσεις Δεδομένων II 2004-2005 Ευαγγελία Πιτουρά27

ARIES: H Γενική Εικόνα

DB

Σελίδες Δεδομένων

σε κάθε σελίδαpageLSN

Πίνακας Δοσοληψιών

lastLSNstatus

Πίνακας Τροποποιημένων Σελίδων

recLSN

flushedLSN

RAM

prevLSNXIDtype

lengthpageID

offsetbefore-imageafter-image

LogRecords

LOG

Page 28: Τεχνικές Ανάκαμψης

Βάσεις Δεδομένων II 2004-2005 Ευαγγελία Πιτουρά28

ARIES: Παράδειγμα

begin_checkpoint

end_checkpoint

update: T1 writes P5

update T2 writes P3

T1 abort

CLR: Undo T1 LSN 10

T1 End

update: T3 writes P1

update: T2 writes P5

LSN LOG

00

05

10

20

30

40

45

50

60

Πίνακας ΔοσοληψιώνlastLSNstatus

Πίνακας ΤροποποιημένωνΣελίδων

recLSNflushedLSN

prevLSNs

RAM

Page 29: Τεχνικές Ανάκαμψης

Βάσεις Δεδομένων II 2004-2005 Ευαγγελία Πιτουρά29

ARIES: Ομαλή Εκτέλεση Δοσοληψίας

Μια ακολουθία από reads & writes, που τελειώνουν με commit ή abort. Υποθέτουμε ότι οι εγγραφές στο δίσκο

είναι ατομικές

Αυστηρό 2PL αυστηρά χρονοπρογράμματα

STEAL, NO-FORCE, με προεγγραφή log (Write-Ahead Logging)

Page 30: Τεχνικές Ανάκαμψης

Βάσεις Δεδομένων II 2004-2005 Ευαγγελία Πιτουρά30

ARIES: Επικύρωση Δοσοληψίας

1. Γράψε μια καταχώρηση τύπου commit στο log

2. Γράψε στο δίσκο όλες τις καταχωρήσεις του log έως το lastLSN της δοσοληψίας

flushedLSN lastLSN (WAL)

3. Τέλος του Commit

4. Γράψε μια καταχώρηση τύπου end στο log

Page 31: Τεχνικές Ανάκαμψης

Βάσεις Δεδομένων II 2004-2005 Ευαγγελία Πιτουρά31

ARIES: Aκύρωση Δοσοληψίας

• Αρχικά, ας θεωρήσουμε ότι δε συμβαίνουν αποτυχίες

ΣΤΟΧΟΣ: UNDO (αναίρεση) των εγγραφών (updates)

Page 32: Τεχνικές Ανάκαμψης

Βάσεις Δεδομένων II 2004-2005 Ευαγγελία Πιτουρά32

ARIES: Aκύρωση Δοσοληψίας

«Παίζουμε» το log της δοσοληψίας ανάποδα

1. Γράφουμε στο log μια καταχώρηση τύπου abort

2. Παίρνουμε το lastLSN της δοσοληψίας από τον Πίνακα Δοσοληψιών

3. Ακολουθούμε την αλυσίδα των καταχωρήσεων στο log βάσει του πεδίου prevLSN

Page 33: Τεχνικές Ανάκαμψης

Βάσεις Δεδομένων II 2004-2005 Ευαγγελία Πιτουρά33

ARIES: Aκύρωση Δοσοληψίας

• Για να το εκτελέσουμε την αναίρεση πρέπει να έχουμε κλειδί στα δεδομένα

• Πριν να γράψουμε την προηγούμενη τιμή σε μια σελίδα, γράφουμε στο log μια καταχώρηση τύπου CLR

Η καταχώρηση CLR έχει ένα πεδίο undonextLSN: επόμενο LSN προς αναίρεση

Μια καταχώρηση τύπου CLR δε χρειάζεται να αναιρεθεί (αλλά μπορεί να χρειαστεί να επαναληφθεί)

• Στο τέλος, γράφουμε μια καταχώρηση τύπου end

Page 34: Τεχνικές Ανάκαμψης

Βάσεις Δεδομένων II 2004-2005 Ευαγγελία Πιτουρά34

ARIES: Σημεία Ελέγχου

Γράφει στο log:μια εγγραφή begin_checkpoint: που

δηλώνει πότε άρχισε το chkpt.μια εγγραφή end_checkpoint: που δηλώνει

πότε τέλειωσε το chkpt

Περιοδικά, το ΣΔΒΔ δημιουργεί ένα σημείο ελέγχου (checkpoint), με σκοπό τη μείωση του χρόνου που χρειάζεται για ανάκαμψη στην περίπτωση αποτυχίας• Γράφει τον Πίνακα Δοσοληψιών και τον Πίνακα Τροποποιημένων Σελίδων στο log

Page 35: Τεχνικές Ανάκαμψης

Βάσεις Δεδομένων II 2004-2005 Ευαγγελία Πιτουρά35

ARIES: Σημεία Ελέγχου

Ασαφές (fuzzy) Οι δοσοληψίες εξακολουθούν να εκτελούνται.

Οι πίνακες είναι ακριβείς ως προς το begin_checkpoint

Δεν γράφονται τροποποιημένες σελίδες στο δίσκο

Το LSN της εγγραφής του chkpt γράφεται σε ασφαλή χώρο (master record)

Page 36: Τεχνικές Ανάκαμψης

Βάσεις Δεδομένων II 2004-2005 Ευαγγελία Πιτουρά36

ARIES: H Γενική Εικόνα

DB

Σελίδες Δεδομένων

σε κάθε σελίδαpageLSN

Πίνακας Δοσοληψιών

lastLSNstatus

Πίνακας Τροποποιημένων Σελίδων

recLSN

flushedLSN

RAM

prevLSNXIDtype

lengthpageID

offsetbefore-imageafter-image

LogRecords

LOG

master record

Page 37: Τεχνικές Ανάκαμψης

Βάσεις Δεδομένων II 2004-2005 Ευαγγελία Πιτουρά37

ARIES: Παράδειγμα

begin_checkpoint

end_checkpoint

update: T1 writes P5

update T2 writes P3

T1 abort

CLR: Undo T1 LSN 10

T1 End

update: T3 writes P1

update: T2 writes P5

CRASH, RESTART

LSN LOG

00

05

10

20

30

40

45

50

60

Πίνακας ΔοσοληψιώνlastLSNstatus

Πίνακας ΤροποποιημένωνΣελίδων

recLSNflushedLSN

prevLSNs

RAM

Page 38: Τεχνικές Ανάκαμψης

Βάσεις Δεδομένων II 2004-2005 Ευαγγελία Πιτουρά38

ARIES: Ανάκαμψη από Αποτυχία

Τρεις Φάσεις

ΑΝΑΛΥΣΗ -- ανακατασκευή τον πινάκων του συστήματος: ποιες σελίδες είναι τροποποιημένες, ποια είναι η κατάσταση των δοσοληψιών

ΕΠΑΝΑΛΗΨΗ (REDO) -- επανάληψη όλων των δοσοληψιών

ΑΚΥΡΩΣΗ (UNDO) -- αναίρεση των δοσοληψιών που δεν ήταν επικυρωμένες

Page 39: Τεχνικές Ανάκαμψης

Βάσεις Δεδομένων II 2004-2005 Ευαγγελία Πιτουρά39

ARIES: Η Φάση της Ανάλυσης

ΑΝΑΛΥΣΗ -- ανακατασκευή τον πινάκων του συστήματος (ΠΙΝΑΚΑΣ ΔΟΣΟΛΗΨΙΩΝ & ΠΙΝΑΚΑΣ ΤΡΟΠΟΠΟΙΗΜΕΝΩΝ ΣΕΛΙΔΩΝ) χρησιμοποιώντας το τελευταίο ολοκληρωμένο checkpoint:

ποια είναι η κατάσταση των δοσοληψιών από τότε

ποιες σελίδες είναι τροποποιημένες από τότε

Page 40: Τεχνικές Ανάκαμψης

Βάσεις Δεδομένων II 2004-2005 Ευαγγελία Πιτουρά40

ARIES: Η Φάση της Ανάλυσης

• Αρχή από το τελευταίο checkpoint

• Εύρεση του με χρήση του master record

• Βρίσκουμε το αντίστοιχο begin_chkpoint

Page 41: Τεχνικές Ανάκαμψης

Βάσεις Δεδομένων II 2004-2005 Ευαγγελία Πιτουρά41

ARIES: Η Φάση της Ανάλυσης

Διαβάζουμε το log forward ξεκινώντας από το begin_chkpoint. Αν βρούμε καταχώρηση τύπου:

end: σβήνουμε τη δοσοληψία από τον Πίνακα Δοσοληψιών

άλλο τύπο: εισαγωγή δοσοληψίας (αν δεν υπάρχει ήδη)

αλλαγή lastLSN = LSN, και αλλαγή κατάστασης αν commit (αλλιώς πρέπει να αναιρεθεί)

update (εγγραφή):

Αν η σελίδα P δεν είναι στον Πίνακα Τροποποιημένων Σελίδων

εισαγωγή του P στον πίνακα με recLSN = LSN.

Page 42: Τεχνικές Ανάκαμψης

Βάσεις Δεδομένων II 2004-2005 Ευαγγελία Πιτουρά42

ARIES: Η Φάση της Ανάλυσης

Αποτέλεσμα οι πίνακες όπως ήταν τη στιγμή που γράψαμε το τελευταίο log στο δίσκο (τελευταία επικύρωση δοσοληψίας)

Πίνακας Δοσοληψιών: όλες οι δοσοληψίες που ήταν ενεργές τη στιγμή της αποτυχίας

Πίνακας Τροποποιημένων Σελίδων: όλες οι σελίδες που έχουν τροποποιηθεί (κάποιες μπορεί να έχουν γραφτεί ήδη στο δίσκο, μα δεν έχουμε αυτή τη πληροφορία στο log)

Page 43: Τεχνικές Ανάκαμψης

Βάσεις Δεδομένων II 2004-2005 Ευαγγελία Πιτουρά43

Τεχνικές Ανάκαμψης από Σφάλματα

Άσκηση 8

00 begin_checkpoint

10 end_checkpoint

20 update: T1 writes P5

40 T2 Commit

50 T2 end

60 update: T3 writes P3

70 T1 abort

Φάση της Ανάλυσης

Τ1 abort 70

T3 running 60

Πίνακας Δοσοληψιών Πίνακας Τροποποιημένων Σελίδων

P5 20

P3 60

Page 44: Τεχνικές Ανάκαμψης

Βάσεις Δεδομένων II 2004-2005 Ευαγγελία Πιτουρά44

ARIES: Ανάκαμψη από Αποτυχία

Τρεις Φάσεις

ΑΝΑΛΥΣΗ --

ΕΠΑΝΑΛΗΨΗ (REDO) -- επανάληψη όλων των δοσοληψιών

ΑΚΥΡΩΣΗ (UNDO) -- αναίρεση των δοσοληψιών που δεν ήταν επικυρωμένες

Page 45: Τεχνικές Ανάκαμψης

Βάσεις Δεδομένων II 2004-2005 Ευαγγελία Πιτουρά45

ARIES: Η Φάση της Επανάληψης

• Επαναλαμβάνουμε το log ώστε να φτάσουμε στην κατάσταση τη στιγμή της αποτυχίας

• Επαναλαμβάνουμε τις εγγραφές ακόμα και των δοσοληψιών που ακυρώθηκαν (aborted)

Προχωράμε στο log forward ξεκινώντας από το μικρότερο recLSN στον Πίνακα Τροποποιημένων Σελίδων

Αρχαιότερη ενημέρωση που ίσως να μην έχει γραφτεί στο δίσκο

Page 46: Τεχνικές Ανάκαμψης

Βάσεις Δεδομένων II 2004-2005 Ευαγγελία Πιτουρά46

ARIES: Η Φάση της Επανάληψης

Για κάθε καταχώρηση τύπου update ή CLR, επανέλαβε την πράξη εκτός αν:

• η σελίδα δεν είναι στον Πίνακα Τροποποιημένων Σελίδων

• η σελίδα είναι στον Πίνακα Τροποποιημένων Σελίδων αλλά recLSN > LSN

• pageLSN (στο δίσκο) LSN

• Σημείωση: δε γνωρίζουμε ποιες σελίδες έχουν γραφτεί στο δίσκο

Page 47: Τεχνικές Ανάκαμψης

Βάσεις Δεδομένων II 2004-2005 Ευαγγελία Πιτουρά47

ARIES: Η Φάση της Επανάληψης

Για να επαναλάβεις μια πράξη:

• επανεκτέλεση

• θέσε pageLSN = LSN

• δε χρειάζεται log

Στο τέλος end για όσες τύπου C

Page 48: Τεχνικές Ανάκαμψης

Βάσεις Δεδομένων II 2004-2005 Ευαγγελία Πιτουρά48

Τεχνικές Ανάκαμψης από Σφάλματα

Άσκηση 8

00 begin_checkpoint

10 end_checkpoint

20 update: T1 writes P5

40 T2 Commit

50 T2 end

60 update: T3 writes P3

70 T1 abort

Φάση της Ανάλυσης

Τ1 abort 70

T3 running 60

Πίνακας Δοσοληψιών Πίνακας Τροποποιημένων Σελίδων

P5 20

P3 60

Φάση της Επανάληψης (REDO)

Ξεκινάμε από το 20, γιατί;

Page 49: Τεχνικές Ανάκαμψης

Βάσεις Δεδομένων II 2004-2005 Ευαγγελία Πιτουρά49

ARIES: Ανάκαμψη από Αποτυχία

Τρεις Φάσεις

ΑΝΑΛΥΣΗ --

ΕΠΑΝΑΛΗΨΗ (REDO) -- επανάληψη όλων των δοσοληψιών

ΑΚΥΡΩΣΗ (UNDO) -- αναίρεση των δοσοληψιών που δεν ήταν επικυρωμένες

Page 50: Τεχνικές Ανάκαμψης

Βάσεις Δεδομένων II 2004-2005 Ευαγγελία Πιτουρά50

ARIES: Η Φάση της Αναίρεσης

Κατασκευή λίστας

ToUndo = {lastLSN της Τ | Τ δοσοληψία προς αναίρεση}

δοσοληψίες προς αναίρεση: δοσοληψίες ενεργές κατά την αποτυχία

Page 51: Τεχνικές Ανάκαμψης

Βάσεις Δεδομένων II 2004-2005 Ευαγγελία Πιτουρά51

ARIES: Η Φάση της Αναίρεσης

Repeat:Επέλεξε το μεγαλύτερο LSN στην λίστα ToUndo.If το LSN είναι τύπου CLR και undonextLSN == NULL

γράψε μια καταχώρηση τύπου end για τη δοσοληψία.If το LSN είναι τύπου CLR και undonextLSN != NULL

Πρόσθεσε το undonextLSN στην λίστα ToUndo Else if το LSN είναι τύπου update. Undo το update, Γράψε μια καταχώρηση τύπου CLR, Πρόσθεσε το prevLSN στην λίστα ToUndo.

Until ToUndo is empty.

Page 52: Τεχνικές Ανάκαμψης

Βάσεις Δεδομένων II 2004-2005 Ευαγγελία Πιτουρά52

Τεχνικές Ανάκαμψης από Σφάλματα

Άσκηση 8

00 begin_checkpoint

10 end_checkpoint

20 update: T1 writes P5

40 T2 Commit

50 T2 end

60 update: T3 writes P3

70 T1 abort

Φάση της Ανάλυσης

Τ1 abort 70

T3 running 60

Πίνακας Δοσοληψιών Πίνακας Τροποποιημένων Σελίδων

P5 20

P3 60

Φάση της Επανάληψης (REDO)

Ξεκινάμε από το 20, γιατί;

Φάση της Αναίρεσης (UNDO)

ToUndo = {70, 60}

Page 53: Τεχνικές Ανάκαμψης

Βάσεις Δεδομένων II 2004-2005 Ευαγγελία Πιτουρά53

ARIES: Ανάκαμψη από Αποτυχία

Άρχισε από ένα σημείο ελέγχου (που βρίσκεται μέσω του master record).

Τρεις Φάσεις. – Εύρεση ποιες δοσοληψίες

μετά το σημείο ελέγχου επικυρώθηκαν, ποιες ακυρώθηκαν (ΑΝΑΛΥΣΗ).

– REDO όλες τις δοσοληψίες. (repeat history)

– UNDO το αποτέλεσμα των αποτυχημένων δοσοληψιών

Παλιότερη καταχώρηση log δοσοληψίας ενεργής κατά την αποτυχία

Μικρότερο recLSN στον Πίνακα Τροποποιημένων Σελίδων μετά την Ανάλυση

Τελευταίο chkpt

ΑΠΟΤΥΧΙΑ

A

R

U

Page 54: Τεχνικές Ανάκαμψης

Βάσεις Δεδομένων II 2004-2005 Ευαγγελία Πιτουρά54

ARIES: Παράδειγμα

begin_checkpoint

end_checkpoint

update: T1 writes P5

update T2 writes P3

T1 abort

CLR: Undo T1 LSN 10

T1 End

update: T3 writes P1

update: T2 writes P5

CRASH, RESTART

LSN LOG

00

05

10

20

30

40

45

50

60

Πίνακας ΔοσοληψιώνlastLSNstatus

Πίνακας ΤροποποιημένωνΣελίδων

recLSNflushedLSN

ToUndo

prevLSNs

RAM

Page 55: Τεχνικές Ανάκαμψης

Βάσεις Δεδομένων II 2004-2005 Ευαγγελία Πιτουρά55

ARIES: Παράδειγμα

begin_checkpoint, end_checkpoint

update: T1 writes P5

update T2 writes P3

T1 abort

CLR: Undo T1 LSN 10, T1 End

update: T3 writes P1

update: T2 writes P5

CRASH, RESTART

CLR: Undo T2 LSN 60

CLR: Undo T3 LSN 50, T3 end

CRASH, RESTART

CLR: Undo T2 LSN 20, T2 end

LSN LOG

00,05

10

20

30

40,45

50

60

70

80,85

90

Πίνακας Δοσοληψιών lastLSNstatus

Πίνακας ΤροποποιημένωνΣελίδων

recLSN

flushedLSN

ToUndo

undonextLSN

RAM

Page 56: Τεχνικές Ανάκαμψης

Βάσεις Δεδομένων II 2004-2005 Ευαγγελία Πιτουρά56

Τεχνικές Ανάκαμψης από Σφάλματα

Γενικά μπορεί να χρειαστεί ανάκληση

(άρα στο log εκτός των εντολών εγγραφής και εντολές ανάγνωσης, για να ελέξουμε ποιες πρέπει να ανακληθούν)

Στο ΑRIES υποθέτουμε αυστηρό 2PL, άρα όχι διάδοση ανακλήσεων, εγγραφές

Page 57: Τεχνικές Ανάκαμψης

Βάσεις Δεδομένων II 2004-2005 Ευαγγελία Πιτουρά57

Τεχνικές Ανάκαμψης

• Εφεδρικά αντίγραφα

• Σκιώδης Σελιδοποίηση