Κεφάλαιο 1 9
DESCRIPTION
Κεφάλαιο 1 9. Τεχνικές Ανάκαμψης Βάσεων Δεδομένων (Recovery). Σκοπός Ανάκαμψης Βάσης Δεδομένων. Η επαναφορά της βάσης στην τελευταία συνεπή κατάσταση πριν την αποτυχία. Η διατήρηση των ιδιοτήτων δοσοληψιών (Ατομικότητα, Συνέπεια, Απομόνωση και Διάρκεια) - PowerPoint PPT PresentationTRANSCRIPT
Κεφάλαιο 19
Τεχνικές Ανάκαμψης Βάσεων Δεδομένων
(Recovery)
Σκοπός Ανάκαμψης Βάσης Δεδομένων
• Η επαναφορά της βάσης στην τελευταία συνεπή κατάσταση πριν την αποτυχία.
• Η διατήρηση των ιδιοτήτων δοσοληψιών (Ατομικότητα, Συνέπεια, Απομόνωση και Διάρκεια)
Παράδειγμα: Αν το σύστημα αποτύχει πριν μία μεταφορά χρημάτων λάβει χώρα, τότε μπορεί και οι δύο λογαριασμοί να έχουν λάθος τιμή. Επομένως, θα πρέπει η βάση δεδομένων να επανέλθει στην προηγούμενή της κατάσταση.
Τύποι Αποτυχίας
Αποτυχία Δοσοληψίας: Μία δοσοληψία μπορεί να
αποτύχει λόγω λανθασμένης εισόδου, αδιεξόδου κτλ.
Αποτυχία Συστήματος: λόγω λάθους λειτουργικού
συστήματος, λάθος διευθυνσιοδότησης κτλ.
Αστοχία Υλικού: αστοχία δίσκου, διακοπή παροχής
ενέργειας κτλ.
Το Ημερολόγιο Συστήματος
Για την επαναφορά των δεδομένων απαιτούνται οι τιμές πριν την αλλαγή (πρότερο αποτύπωμα – BFIM) και οι τιμές μετά την αλλαγή (ύστερο αποτύπωμα – AFIM). Αυτές οι τιμές και επιπρόσθετη πληροφορία αποθηκεύεται στο ημερολόγιο συστήματος. Οι Back P και Next P δείχνουν στην προηγούμενη και επόμενη καταχώρηση της δοσοληψίας στο ημερολόγιο.
T ID Back P Next P Operation Data item BFIM AFIM T1 0 1 T1 1 4 T2 0 8 T1 2 5 T1 4 7 T3 0 9 T1 5 nil
BeginWrite
Read Commit
BeginX
Y M N
X = 200
Y = 100M = 200N = 400
X = 100
Y = 50M = 200N = 400
ReadWrite
Ενδιάμεση Μνήμη
Τα στοιχεία που έχουν ενημερωθεί αποθηκεύονται πρώτα στην ενδιάμεση μνήμη της βάσης και έπειτα μεταφέρονται στον δίσκο. Η μεταφορά στο δίσκο ελέγχεται από το δυαδικό ψηφίο τροποποίησης (dirty bit) και ένα δυαδικό ψηφίο Pin-Unpin.
Pin-Unpin: Δηλώνει αν μπορεί το μπλοκ να γραφεί στο δίσκο
Modified: Δηλώνει αν ένα στοιχείο έχει τροποποιηθεί
Steal/No-steal: Μία ενημερωμένη σελίδα της
ενδιάμεσης μνήμης γράφεται στο δίσκο πριν/μετά
την επικύρωση.
Εξαναγκασμός/Μη-εξαναγκασμός: Όλες οι
ενημερωμένες σελίδες μία δοσοληψίας γράφονται
αμέσως/όχι αμέσως όταν η δοσοληψία επικυρωθεί
Steal/No-steal και Force/No-force
Τύποι Ενημέρωσης Δεδομένων
Απευθείας Ενημέρωση: Αμέσως μόλις ένα στοιχείο ενημερωθεί στην ενδιάμεση μνήμη, το αντίγραφο στο δίσκο ενημερώνεται
Ετεροχρονισμένη Ενημέρωση: Όλα τα ενημερωμένα στοιχεία στην ενδιάμεση μνήμη μεταφέρονται στο δίσκο είτε μετά το πέρας μία δοσοληψίας ή μετά το πέρας ενός σταθερού αριθμού δοσοληψιών.
Σκιώδης Ενημέρωση: Η νέα τιμή ενός στοιχείου δεν αντικαθιστά την παλιά στο δίσκο αλλά γράφεται σε μία νέα θέση.
Άμεση Ενημέρωση: Η εκδοχή στο δίσκο ενός στοιχείου αντικαθίσταται από την εκδοχή που υπάρχει στην ενδιάμεση μνήμη.
Ανάκαμψη Βάσης Δεδομένων
Αναίρεση (Undo) και Επανάληψη (Redo) Δοσοληψιών
Για την διατήρηση της ατομικότητας χρησιμοποιούμε τις πράξεις:Αναίρεση: Επαναφορά όλων των πρότερων αποτυπωμάτων BFIM) στο δίσκο (διαγραφή των AFIM)Επανάληψη: Επαναφορά όλων των ύστερων αποτυπωμάτων (AFIM) στο δίσκο.Η ανάκαμψη επιτυγχάνεται είτε εκτελώντας μία από τις δύο αυτές πράξεις ή με ένα συνδυασμό τους. Αυτές οι πράξεις καταγράφονται στο ημερολόγιο
Παράδειγμα Ανάκαμψης
T1 T2 T3read_item (A) read_item (B) read_item (C)read_item (D) write_item (B) write_item (B)write_item (D) read_item (D) read_item (A)
write_item (A) write_item (A)
Εκτέλεση των Τ1, Τ2 και Τ3 όπως φαίνεται στο ημερολόγιο
A B C D30 15 40 20
[start_transaction, T3][read_item, T3, C]
* [write_item, T3, B, 15, 12] 12[start_transaction,T2][read_item, T2, B]
** [write_item, T2, B, 12, 18] 18[start_transaction,T1][read_item, T1, A][read_item, T1, D][write_item, T1, D, 20, 25] 25[commit, T1][read_item, T2, D]
** [write_item, T2, D, 25, 26][commit, T1] 26[read_item, T3, A] ---- αποτυχία συστήματος ----
* Η T3 αναιρείται μιας και δεν έφτασε στο σημείο επικύρωσης** Η T2 αναιρείται μιας και διαβάζει την τιμή του Β που γράφτηκε από την Τ3
Διαδοχικές Ανακλήσεις
READ(C) READ(A)
READ(D)
WRITE(B)T3
BEGIN READ(B) WRITE(D)WRITE(B)T2BEGIN WRITE(D)READ(A) READ(D)
T1BEGIN
αποτυχία συστήματοςΧρόνος
Απεικόνιση Διαδοχικών Ανακλήσεων
Προεγγραφή Ημερολογίου
Για άμεσες ενημερώσεις (απευθείας ή ετεροχρονισμένες) θα πρέπει να χρησιμοποιείται αναγκαστικά το ημερολόγιο συστήματος. Αυτό επιτυγχάνεται με το πρωτόκολλο προεγγραφής ημερολογίου:
Για Αναίρεση: Πριν το AFIM γραφτεί στο δίσκο, το BFIM θα πρέπει να γραφεί στο ημερολόγιο και να αποθηκευτεί στο δίσκο.
Για Επανάληψη: Πριν την εκτέλεση της πράξης επικύρωσης της δοσοληψίας, όλα τα AFIM θα πρέπει να γραφούν στο ημερολόγιο και να αποθηκευτούν στο δίσκο.
Σημεία Ελέγχου
1. Σταματά η εκτέλεση δοσοληψιών προσωρινά2. Γράφονται τα περιεχόμενα της ενδιάμεσης μνήμης3. Η εγγραφή [checkpoint] εισάγεται στο ημερολόγιο4. Επαναφορά κανονικής εκτέλεσης δοσοληψιών
Ανά τακτά χρονικά διαστήματα η βάση δεδομένων αποθηκεύει την ενδιάμεση μνήμη στη βάση ώστε να ελαχιστοποιείται η εργασία σε περίπτωση ανάκαμψης.
Κατά τη διάρκεια ανάκαμψης οι πράξεις Αναίρεσης και Επανάληψης απαιτούνται μόνο για τις εγγραφές μετά την εγγραφή [checkpoint].
Η T1 αφήνεται ως έχει (οι ενημερώσεις έχουν γραφτεί ήδη στο δίσκο λόγω σημείου ελέγχου)
Η T4 αναιρείται Οι T2 και T3 επαναλαμβάνονται.
Tc Tf
T1
T2
T3
T4
Σημείο Ελέγχου Αποτυχία Συστήματος
Παράδειγμα Σημείου Ελέγχου
Οι ενημερώσεις γίνονται ως εξής:1. Οι δοσοληψίες αποθηκεύουν τις ενημερώσεις που
κάνουν στο ημερολόγιο2. Στο σημείο επικύρωσης με προεγγραφή
ημερολογίου αυτές οι ενημερώσεις αποθηκεύονται στο δίσκο
Έπειτα από εκκίνηση από αποτυχία το ημερολόγιο χρησιμοποιείται για επανάληψη όλων των δοσοληψιών που επηρεάστηκαν από αυτή την αποτυχία. Αναίρεση δεν είναι απαραίτητη μιας και κανένα AFIM δεν γράφεται στο δίσκο πριν την επικύρωση.
Σχήμα Ανάκαμψης (Ετεροχρονισμένο – Όχι Αναίρεση/Επανάληψη)
Παράδειγμα για Σύστημα ενός Χρήστη
(a) T1 T2read_item (A) read_item (B)read_item (D) write_item (B)write_item (D) read_item (D)
write_item (D)(b)
[start_transaction, T1][write_item, T1, D, 20][commit T1][start_transaction, T2][write_item, T2, B, 10][write_item, T2, D, 25] system crash
Οι [write_item, …] πράξεις της T1 επαναλαμβάνονται.Οι εγγραφές του T2 δεν λαμβάνονται υπόψη.
Για Συνδρομικό Περιβάλλον
Σε συνδρομικό περιβάλλον απαιτείται ένας μηχανισμός ελέγχου συνδρομικότητας για εγγύηση της απομόνωσης των δοσοληψιών. Σε ανάκαμψη οι εγγραφές μετά το σημείο ελέγχου επαναλαμβάνονται.
T1
T3T4
T5
αποτυχία συστήματοςΧρόνος
T2
t1 t2σημείο ελέγχου
Παράδειγμα για Συνδρομικό Περιβάλλον
(b) [start_transaction, T1][write_item, T1, D, 20][commit, T1][checkpoint][start_transaction, T4][write_item, T4, B, 15][write_item, T4, A, 20][commit, T4][start_transaction T2][write_item, T2, B, 12][start_transaction, T3][write_item, T3, A, 30][write_item, T2, D, 25] αποτυχία συστήματος
Οι T2 και T3 δεν λαμβάνονται υπόψη μιας και δεν έχουν επικυρωθείΗ T4 επαναλαμβάνεται μιας και το σημείο επικύρωσης είναι μετά το σημείο ελέγχου
(a) T1 T2 T3 T4read_item (A) read_item (B) read_item (A) read_item (B)read_item (D) write_item (B) write_item (A) write_item (B)write_item (D) read_item (D) read_item (C) read_item (A)
write_item (D) write_item (C) write_item (A)
Ετεροχρονισμένες Ενημερώσεις σε Συνδρομικό Περιβάλλον
Δύο πίνακες απαιτούνται για την υλοποίηση του πρωτοκόλλου:
Ενεργός Πίνακας: Αποθηκεύει όλες τις ενεργές δοσοληψίεςΠίνακας Επικύρωσης: Αποθηκεύει όλες τις δοσοληψίες που έχουν επικυρωθεί (από το τελευταίο σημείο ελέγχου)
Κατά τη διάρκεια ανάκαμψης, όλες οι δοσοληψίες του πίνακα επικύρωσης επαναλαμβάνονται ενώ όλες οι δοσοληψίες του ενεργού πίνακα δεν λαμβάνονται υπόψη.
Σχήμα Ανάκαμψης (Απευθείας Ενημ. – Αναίρεση/Όχι Επανάληψη)
Σε αυτόν τον αλγόριθμο τα ύστερα αποτυπώματα (AFIM) μιας δοσοληψίας γράφονται στο δίσκο με προεγγραφή ημερολογίου πριν την επικύρωση.
Για αυτό το λόγο ο διαχειριστής ανάκαμψης αναιρεί όλες τις δοσοληψίες. Καμία δοσοληψία δεν επαναλαμβάνεται. Ακόμα και αν μία δοσοληψία έχει ολοκληρώσει και απλά ανέμενε επικύρωση πριν την αποτυχία θα αναιρεθεί κατά τη διάρκεια της ανάκαμψης.
Τα σχήματα ανάκαμψης αυτής της κατηγορίας εφαρμόζουν επανάληψη και αναίρεση. Απαιτείται έλεγχος συνδρομικότητας και προεγγραφή ημερολογίου. Χρησιμοποιούνται σημεία ελέγχου για ελαχιστοποίηση του φόρτου εργασίας κατά τη διάρκεια ανάκαμψης
1. Αναίρεση: όλες οι δοσοληψίες στον ενεργό πίνακα2. Επανάληψη: όλες οι δοσοληψίες στον πίνακα επικύρωσης
Σχήμα Ανάκαμψης (Απευθείας Ενημ. – Αναίρεση/Επανάληψη)
Παράδειγμα
Πράξεις Ανάκαμψης σε κάθε περίπτωση:(a) Αναίρεση T0: Το B γίνεται 2000 και το A 1000.
(b) Αναίρεση T1 και επανάληψη T0: Το C γίνεται 700, και έπειτα το A και το B γίνονται 950 και 2050 αντίστοιχα.
(c) Επανάληψη T0 και επανάληψη T1: Τα A και B γίνονται 950 και 2050 αντίστοιχα. Το C γίνεται 600
Παρακάτω φαίνεται το ημερολόγιο σε τρεις χρονικές στιγμές:
Το AFIM δεν αντικαθιστά στο δίσκο το BFIM αλλά αποθηκεύεται σε κάποιο άλλο σημείο στο δίσκο. Επομένως, κάθε στοιχείο έχει το ύστερο (AFIM) και το πρότερο (BFIM) (Σκιώδες αντίγραφο) αποτύπωμα σε δύο διαφορετικά σημεία στη βάση.
X Y
Βάση Δεδομένων
X' Y'
X και Y: Σκιώδη αντίγραφα στοιχείωνX` και Y`: Τρέχοντα αντίγραφα στοιχείων
Σκιώδης Σελιδοποίηση
Για τη διαχείριση των στοιχείων αυτών χρησιμοποιούνται δύο ευρετήρια (τρέχων και σκιώδες)
Σελίδα 5 (π)Σελίδα 1Σελίδα 4Σελίδα 2 (π)Σελίδα 3Σελίδα 6Σελίδα 2 (ν)Σελίδα 5 (ν)
123456
Τρέχων Ευρετήριο(αλλαγή στις σελίδες 2, 5)
Σκιώδες Ευρετήριο
123456
Σκιώδης Σελιδοποίηση
Ο Αλγόριθμος Ανάκαμψης ARIES
ARIES Το ARIES είναι από τις καλύτερες μεθόδους
ανάκαμψης:
1. Προεγγραφή Ημερολογίου
2. Επαναλαμβανόμενη Ιστορία – ξαναπερνά όλη την ιστορία της βάσης μέχρι το σημείο της κατάρρευσης αναιρώντας τις μη επικυρωμένες
3. Καταγραφή αλλαγών στο ημερολόγιο κατά την αναίρεση – αποφυγή επανάληψης διαδικασίας σε περίπτωση αποτυχίας κατά την ανάκαμψη
Φάσεις ARIES
Φάση Ανάλυσης: προσδιορισμός ενημερωμένων σελίδων και συνόλου ενεργών δοσοληψιών. Προσδιορισμός σημείου από όπου ξεκινά η επανάληψη
Φάση Επανάληψης: Μόνο οι απαραίτητες πράξεις επανάληψης υλοποιούνται
Φάση Αναίρεσης: Αναιρούνται οι ενεργές δοσοληψίες
Μηχανισμοί (1) Αύξων αριθμός σειράς στο ημερολόγιο
(LSN): κάθε εγγραφή στο ημερολόγιο έχει το δικό της LSN. Χρησιμοποιείται για να καθορίσει τις αναγκαίες πράξης επανάληψης
Πίνακας Δοσοληψιών: περιέχει ενεργές δοσοληψίες και πληροφορίες σχετικά με αυτές
Πίνακας Τροποποιημένων Σελίδων: περιέχει τις ενημερωμένες σελίδες της ενδιάμεσης μνήμης μαζί με επιπλέον πληροφορίες.
Μηχανισμοί (2) Ασαφή Σημεία Ελέγχου: Δεν σταματά η
επεξεργασία δοσοληψιών κατά τη διάρκεια της εκτέλεσης του σημείου ελέγχου