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

Slides:



Advertisements
Παρόμοιες παρουσιάσεις
Indexing.
Advertisements

Βάσεις Δεδομένων II Ευαγγελία Πιτουρά 1 Επεξεργασία Δοσοληψιών.
ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι
Κώστας Διαμαντάρας Τμήμα Πληροφορικής ΤΕΙ Θεσσαλονίκης 2011 Πολυεπεξεργαστές.
©Silberschatz, Korth and Sudarshan1ΒΔ ΙΙ: Σύστημα επαναφοράς Σύστημα Επαναφοράς (Recovery System)  Κατηγοριοποίηση αποτυχιών/βλαβών  Δομή αποθήκευσης.
Το υλικο του Υπολογιστη
Συνάφεια Κρυφής Μνήμης σε Επεκτάσιμα Μηχανήματα. Συστήματα με Κοινή ή Κατανεμημένη Μνήμη  Σύστημα μοιραζόμενης μνήμης  Σύστημα κατανεμημένης μνήμης.
Ζητήματα Σελιδοποίησης
Βάσεις Δεδομένων Ευαγγελία Πιτουρά1 Δυναμικός Κατακερματισμός.
1 Επεξεργασία Συναλλαγών. 2 Συναλλαγές m Η ταυτόχρονη εκτέλεση προγραμμάτων χρηστών είναι απαραίτητη για την καλή απόδοση ενός ΣΔΒΔ m Επειδή οι προσπελάσεις.
Βάσεις Δεδομένων II Περίληψη: Προχωρημένα Θέματα Διαχείρισης Ταυτοχρονισμού Πάνος Βασιλειάδης Οκτώβρης 2002
Βάσεις Δεδομένων II Ευαγγελία Πιτουρά 1 Τεχνικές Ελέγχου Συνδρομικότητας - Ασκήσεις.
Προχωρημένα Θέματα Τεχνολογίας και Εφαρμογών Βάσεων Δεδομένων
Βάσεις Δεδομένων II Ευαγγελία Πιτουρά 1 Τεχνικές Ελέγχου Συνδρομικότητας.
Βάσεις Δεδομένων II Ευαγγελία Πιτουρά 1 Επεξεργασία Δοσοληψιών Ανακεφαλαίωση.
Βάσεις Δεδομένων II Ευαγγελία Πιτουρά 1 Επεξεργασία Δοσοληψιών Ανακεφαλαίωση.
1515 Διαχείριση Συναλλαγών  Συναλλαγές  Έλεγχος ταυτοχρονισμού  Επανάκτηση δεδομένων.
Εργασία Η υλοποίηση του αλγορίθμου συγχώνευσης θα πρέπει να χρησιμοποιεί την ιδέα των ροών (streams). Θα πρέπει να υπάρχουν δύο διαφορετικά είδη.
ΣΧΕΣΙΑΚΟ ΜΟΝΤΕΛΟ ΜΑΘΗΜΑ 3.
Βάσεις Δεδομένων II Διαχείριση Δοσοληψιών Πάνος Βασιλειάδης Σεπτέμβρης 2002
©Silberschatz, Korth and Sudarshan1 ΒΔ ΙΙ: Διαχείριση συναλλαγών Διαχείριση Συναλλαγών (Transaction Management)  Ορισμός της συναλλαγής  Καταστάσεις.
Προχωρημένα Θέματα Τεχνολογίας και Εφαρμογών Βάσεων Δεδομένων Εσωτερική Αρχιτεκτονική Βάσεων Δεδομένων Πάνος Βασιλειάδης Σεπτέμβρης 2009.
Βάσεις Δεδομένων II Ευαγγελία Πιτουρά 1 Τεχνικές Ανάκαμψης.
Κεφάλαιο 19 Τεχνικές Ανάκαμψης Βάσεων Δεδομένων (Recovery)
Βάσεις Δεδομένων II Ενότητα 6: Ανάκαμψη Γεωργία Γκαράνη Επίκουρος Καθηγήτρια Τμήμα Μηχανικών Πληροφορικής Τ.Ε. T.E.I. Θεσσαλίας.
2-1 Ανάλυση Αλγορίθμων Αλγόριθμος Πεπερασμένο σύνολο εντολών που, όταν εκτελεστούν, επιτυγχάνουν κάποιο επιθυμητό αποτέλεσμα –Δεδομένα εισόδου και εξόδου.
© Ασκήσεις στα Προηγμένα Θέματα Αρχιτεκτονικής Υπολογιστών ακ. έτος Νεκτάριος Κοζύρης Νίκος Αναστόπουλος
Βάσεις Δεδομένων II Ευαγγελία Πιτουρά 1 Επεξεργασία Δοσοληψιών (συνέχεια)
Προχωρημένα Θέματα Τεχνολογίας και Εφαρμογών Βάσεων Δεδομένων Διαχείριση Συναλλαγών Πάνος Βασιλειάδης Μάρτιος 2014
1 Βάσεις Δεδομένων ΙII Επιμέλεια: ΘΟΔΩΡΗΣ ΜΑΝΑΒΗΣ Διαχείριση συναλλαγών Transaction Management T Manavis.
Βάσεις Δεδομένων II Περίληψη: Τεχνικές Ανάνηψης Πάνος Βασιλειάδης Νοέμβρης 2002
Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1 Εισαγωγή στην Επεξεργασία Ερωτήσεων.
Βάσεις Δεδομένων II Ευαγγελία Πιτουρά 1 Τεχνικές Ανάκαμψης.
Βάσεις Δεδομένων Ευαγγελία Πιτουρά1 Οργάνωση Αρχείων.
Βάσεις Δεδομένων II Ευαγγελία Πιτουρά 1 Ασκήσεις Επεξεργασία Δοσοληψιών, Τεχνικές Ελέγχου Συνδρομικότητας, Τεχνικές Ανάκαμψεις από Σφάλματα.
1 Α. Βαφειάδης Αναβάθμισης Προγράμματος Σπουδών Τμήματος Πληροφορικής Τ.Ε.Ι Θεσσαλονίκης Μάθημα Προηγμένες Αρχιτεκτονικές Υπολογιστών Κεφαλαίο Τρίτο Συστήματα.
ΕΠΛ 231 – Δομές Δεδομένων και Αλγόριθμοι13-1 Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Ο αλγόριθμος Dijkstra για εύρεση βραχυτέρων μονοπατιών.
1 Αναβάθμισης Προγράμματος Σπουδών Τμήματος Πληροφορικής Τ.Ε.Ι Θεσσαλονίκης Μάθημα Προηγμένες Αρχιτεκτονικές Υπολογιστών Κεφαλαίο Τέταρτο Οι κίνδυνοι της.
Βάσεις Δεδομένων II Ευαγγελία Πιτουρά 1 Τεχνικές Ανάκαμψης.
Βάσεις Δεδομένων II Ευαγγελία Πιτουρά 1 Επεξεργασία Δοσοληψιών.
Βάσεις Δεδομένων II Ευαγγελία Πιτουρά 1 ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ ΙΙ.
Βάσεις Δεδομένων Ευαγγελία Πιτουρά1 Λογικός Σχεδιασμός Σχεσιακών Σχημάτων.
Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1 Εισαγωγή Σχεδιασμός μιας ΒΔ ανάλυση ποιας πληροφορίας και της σχέσης ανάμεσα στα στοιχεία της περιγραφή.
Βάσεις Δεδομένων II Ανανηψιμότητα Δοσοληψιών Πάνος Βασιλειάδης Οκτώβρης 2002
Κεφάλαιο 17 Εισαγωγή στη Θεωρία των Δοσοληψιών. Δοσοληψίες Η Έννοια της Δοσοληψίας Κατάσταση Δοσοληψίας Ταυτόχρονες Εκτελέσεις Σειριοποιησιμότητα Ανάκαμψη.
Προχωρημένα Θέματα Τεχνολογίας και Εφαρμογών Βάσεων Δεδομένων Τεχνικές Ανάνηψης Πάνος Βασιλειάδης Ιανουάριος 2008
Βάσεις Δεδομένων II Ευαγγελία Πιτουρά 1 Επεξεργασία Δοσοληψιών (συνέχεια)
Βάσεις Δεδομένων II Ευαγγελία Πιτουρά 1 ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ ΙΙ.
Βάσεις Δεδομένων II Ευαγγελία Πιτουρά 1 Κατανεμημένες Βάσεις Δεδομένων.
Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1 Ευρετήρια.
Βάσεις Δεδομένων II Περίληψη: Διαχείριση Δοσοληψιών Πάνος Βασιλειάδης Οκτώβρης 2002
X-FTL: Transactional Flash Translation Layer for SQLite Databases WOON-HAK KAN, GY SANG-WON LEE, GI-HWAN OH, CHANGWOO MIN COLLEGE OF INFO. AND COMM. ENGR.,
ΠΑΡΑΔΕΙΓΜΑ: ΤΑ ΕΠΙΠΕΔΑ ΥΛΙΚΟΥ – ΛΟΓΙΣΜΙΚΟΥ ΣΕ ΕΝΑΝ ΥΠΟΛΟΓΙΣΤΗ.
Διοίκηση Επιχειρήσεων Βάσεις Δεδομένων και Ευφυή Πληροφοριακά Συστήματα Επιχειρηματικότητας Βάσεις Δεδομένων και Ευφυή Πληροφοριακά Συστήματα Επιχειρηματικότητας.
Διοίκηση Επιχειρήσεων Βάσεις Δεδομένων και Ευφυή Πληροφοριακά Συστήματα Επιχειρηματικότητας Βάσεις Δεδομένων και Ευφυή Πληροφοριακά Συστήματα Επιχειρηματικότητας.
Για μτ από ατ μέχρι ττ [με_βήμα β] εντολές Τέλος_επανάληψης : περιοχή εντολών μτ : η μεταβλητή της οποίας η τιμή θα περάσει από την αρχική.
Βάσεις Δεδομένων Κεφ. 1 Πλεονεκτήματα Β.Δ. έναντι αρχείων Βασικές λειτουργίες Β.Δ. Εφαρμογές Β.Δ. στην καθημερινή ζωή.
ΜΑΘΗΜΑ: ΣΥΓΧΡΟΝΟ ΛΟΓΙΣΜΙΚΟ ΟΡΓΑΝΩΣΗ ΓΡΑΦΕΙΟΥ 5 ο ΕΡΓΑΣΤΗΡΙΟ: ΕΓΚΑΤΑΣΤΑΣΗ ΕΚΤΥΠΩΤΩΝ ΚΑΘΗΓΗΤΗΣ: ΓΡΗΓΟΡΙΟΣ Ν. ΚΑΡΑΤΑΣΙΟΣ.
ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι
Ευρετήρια Βάσεις Δεδομένων Ευαγγελία Πιτουρά.
Το Σχεσιακό Μοντέλο Βάσεις Δεδομένων Ευαγγελία Πιτουρά.
Δυναμικός Κατακερματισμός
Βάσεις Δεδομένων ΙΙ 7η διάλεξη
Το Σχεσιακό Μοντέλο Βάσεις Δεδομένων Ευαγγελία Πιτουρά.
Πίνακας Συμβόλων Διαλέξεις στο μάθημα: Μεταφραστές Γιώργος Μανής.
19η Διάλεξη Εξωτερική Αναζήτηση και Β-δέντρα Ε. Μαρκάκης
Το Σχεσιακό Μοντέλο Βάσεις Δεδομένων Ευαγγελία Πιτουρά.
Κατανεμημένα Συστήματα
Διαχρονικές Δομές Δεδομένων
Δυναμικός Κατακερματισμός
Μεταγράφημα παρουσίασης:

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

Βάσεις Δεδομένων II Ευαγγελία Πιτουρά 2 Επιθυμητές Ιδιότητες μιας Δοσοληψίας Α tomicity (ατομικότητα) - είτε όλες οι πράξεις είτε καμία C onsistency (συνέπεια) - διατήρηση συνέπειας της ΒΔ I solation (απομόνωση) - δεν αποκαλύπτει ενδιάμεσα αποτελέσματα D urability (μονιμότητα ή διάρκεια) - μετά την επικύρωση μιας δοσοληψίας οι αλλαγές δεν είναι δυνατόν να χαθούν Ιδιότητες Δοσοληψιών

Βάσεις Δεδομένων II Ευαγγελία Πιτουρά 3 Επιθυμητές Ιδιότητες μιας Δοσοληψίας Αtomicity (ατομικότητα) ΤΕΧΝΙΚΕΣ ΑΝΑΚΑΜΨΕΙΣ Consistency (συνέπεια) ΥΠΕΥΘΥΝΟΤΗΤΑ ΤΟΥ ΠΡΟΓΡΑΜΜΑΤΙΣΤΗ Isolation (απομόνωση) ΕΛΕΓΧΟΣ ΣΥΝΔΡΟΜΙΚΟΤΗΤΑΣ Durability (μονιμότητα ή διάρκεια) ΤΕΧΝΙΚΕΣ ΑΝΑΚΑΜΨΕΙΣ

Βάσεις Δεδομένων II Ευαγγελία Πιτουρά 4 Ανάκαμψη από Αποτυχίες Είδη Αποτυχιών Δυο κατηγορίες: καταστροφή ή όχι της μόνιμης αποθήκευσης (δίσκου) Παραδείγματα αποτυχιών...

Βάσεις Δεδομένων II Ευαγγελία Πιτουρά 5 Παραδείγματα Αποτυχιών Είδη Αποτυχιών 1.Αποτυχία του υπολογιστή (system crash) 2.Σφάλμα δοσοληψίας ή συστήματος (π.χ., προγραμματιστικό λάθος) 3.Εφαρμογή ελέγχου συνδρομικότητας 4.Πρόβλημα δίσκου 5.Φυσικά προβλήματα και καταστροφές Στόχος της ανάκαμψης: επαναφορά στην πιο πρόσφατη συνεπή κατάσταση ακριβώς πριν τη στιγμή της αποτυχίας

Βάσεις Δεδομένων II Ευαγγελία Πιτουρά 6 Έννοιες Ανάκαμψης DB βδ στο δίσκο RAM Προσωρινή αποθήκευση (καταχωρητές μνήμης) ή cache σελίδες το μοντέλο του συστήματος Ημερολόγιο Συστήματος (system log) Πληροφορίες για κάθε δοσοληψία

Βάσεις Δεδομένων II Ευαγγελία Πιτουρά 7 Ημερολόγιο Συστήματος (Log) Για να είναι δυνατή η ανάκαμψη από αποτυχίες, καταχωρούνται πληροφορίες για τις πράξεις των δοσοληψιών Αποθηκεύονται στο δίσκο Τύποι πληροφορίας: έναρξη δοσοληψίας εγγραφή στοιχείου (παλιά, νέα τιμή) ανάγνωση στοιχείου επικύρωση/ακύρωση

Βάσεις Δεδομένων II Ευαγγελία Πιτουρά 8 Ανάκαμψη από Αποτυχίες Περιπτώσεις αποτυχίας 1.Καταστροφική αποτυχία (δίσκου) Backup + (backuped) log 2. Μη καταστροφική αποτυχία Χρήση μόνο του disk log

Βάσεις Δεδομένων II Ευαγγελία Πιτουρά 9 Επιθυμητές Ιδιότητες μιας Δοσοληψίας Α tomicity (ατομικότητα) - είτε όλες οι πράξεις είτε καμία D urability (μονιμότητα ή διάρκεια) - μετά την επικύρωση μιας δοσοληψίας οι αλλαγές δεν είναι δυνατόν να χαθούν Ιδιότητες Δοσοληψιών

Βάσεις Δεδομένων II Ευαγγελία Πιτουρά 10 Έννοιες Ανάκαμψης zΑτομικότητα: yΟι δοσοληψίες μπορεί να αναιρεθούν (“Rollback”). zΔιάρκεια: yTι θα συμβεί αν το ΣΔΒΔ καταρρεύσει? αποτυχία v Επιθυμητή συμπεριφορά μετά από μια αποτυχία: –T1, T2 & T3 πρέπει να έχουν διάρκεια (redo- επανάληψη) –T4 & T5 πρέπει να αναιρεθούν (undo- αναίρεση) T1 T2 T3 T4 T5

Βάσεις Δεδομένων II Ευαγγελία Πιτουρά 11 Έννοιες Ανάκαμψης zΑτομικότητα: yόχι επικυρωμένες -- undo – αναίρεση zΔιάρκεια: yεπικυρωμένες -- redo -- επανάληψη

Βάσεις Δεδομένων II Ευαγγελία Πιτουρά 12 Έννοιες Ανάκαμψης Στην πιο εύκολη περίπτωση όλες οι ενημερώσεις μιας δοσοληψίας γράφονται στον τοπικό χώρο εργασίας της δοσοληψίας η βδ ενημερώνεται μόνον αφού μια δοσοληψία φτάσει στο σημείο επικύρωσής της

Βάσεις Δεδομένων II Ευαγγελία Πιτουρά 13 Έννοιες Ανάκαμψης Στην πραγματικότητα -- Steal (flush) :: κάποιες ενημερώσεις μιας δοσοληψίας γράφονται στον δίσκο (βδ) πριν η δοσοληψία επικυρωθεί Γιατί; βελτίωση throughput Πρόβλημα: Ατομικότητα (αναίρεση (undo) στην περίπτωση που η δοσοληψία αποτύχει)

Βάσεις Δεδομένων II Ευαγγελία Πιτουρά 14 Έννοιες Ανάκαμψης Στην πραγματικότητα -- No Force :: κάποιες ενημερώσεις μιας δοσοληψίας δε γράφονται στον δίσκο (βδ) ακόμα και αφού η δοσοληψία επικυρωθεί Γιατί; βελτίωση χρόνου απόκρισης Πρόβλημα: Διάρκεια (επανάληψη (redo) στην περίπτωση που το σύστημα αποτύχει)

Βάσεις Δεδομένων II Ευαγγελία Πιτουρά 15 Έννοιες Ανάκαμψης Force No Force No Steal Steal Εύκολο Επιθυμητό

Βάσεις Δεδομένων II Ευαγγελία Πιτουρά 16 Έννοιες Ανάκαμψης όλες οι ενημερώσεις μιας δοσοληψίας γράφονται στον τοπικό χώρο εργασίας της δοσοληψίας -- η βδ ενημερώνεται μόνον αφού μια δοσοληψία φτάσει στο σημείο επικύρωσης της ετεροχρονισμός των ενημερώσεων -- deferred updates χωρίς αναίρεση/ με επανάληψη (no undo/redo) κάποιες ενημερώσεις μιας δοσοληψίας γράφονται στη βδ πριν μια δοσοληψία φτάσει στο σημείο επικύρωσης της άμεση ενημέρωση -- immediate updates με αναίρεση/ με επανάληψη (undo/no redo) Κάποια ορολογία:

Βάσεις Δεδομένων II Ευαγγελία Πιτουρά 17 Πίνακας Τροποποίησης Σελίδων Κατάλογος σελίδων που είναι στη μνήμη (cache) Δυαδικό ψηφίο τροποποίησης (dirty bit)

Βάσεις Δεδομένων II Ευαγγελία Πιτουρά 18 Ημερολόγιο Συστήματος (Log) Καταχώρηση τύπου ΕΠΑΝΑΛΗΨΗ (REDO) Περιέχει την νέα τιμή (AFter IMage) Καταχώρηση τύπου ANAIΡΕΣΗ (UNDO) Περιέχει την παλιά τιμή (BeFore IMage)

Βάσεις Δεδομένων II Ευαγγελία Πιτουρά 19 Προεγγραφή Ημερολογίου Το πρωτόκολλο προεγγραφής ημερολογίου (Write Ahead Log) (1) Η καταχώρηση στο log για μια εγγραφή γράφεται στο δίσκο πριν οι αντίστοιχες σελίδες να γραφούν στο δίσκο (2) Πριν την επικύρωση (commit) μιας δοσοληψίας όλες οι καταχωρήσεις του log που την αφορούν γράφονται στο δίσκο Το (1) δίνει ατομικότητα Το (2) δίνει διάρκεια

Βάσεις Δεδομένων II Ευαγγελία Πιτουρά 20 Προεγγραφή Ημερολογίου Θα δούμε μια συγκεκριμένη υλοποίηση (ARIES)

Βάσεις Δεδομένων II Ευαγγελία Πιτουρά 21 Ημερολόγιο Συστήματος (Log) Σειριακή εγγραφή στο log Για κάθε εγγραφή στοιχείου, στο log μια καταχώρηση: ID δοσοληψίας αριθμός σελίδας θέση στη σελίδα μήκοςπαλιά τιμή (undo) νέα τιμή (redo)

Βάσεις Δεδομένων II Ευαγγελία Πιτουρά 22 ARIES zΚάθε καταχώρηση στο log έχει ένα μοναδικό αριθμό Log Sequence Number (LSN). yLSNs πάντα αυξάνουν. zΤο log γράφεται στο δίσκο. Το σύστημα κρατά τη μεταβλητή flushedLSN: το μέγιστο LSN που γράφτηκε στο δίσκο μέχρι τώρα Καταχωρήσεις του log ήδη flushed στο δίσκο “Log tail” στην RAM flushedLSN Αν το σύστημα αποτύχει, μένουμε με το «πράσινο» κομμάτι

Βάσεις Δεδομένων II Ευαγγελία Πιτουρά 23 ARIES zΚάθε σελίδα δεδομένων περιέχει έναν pageLSN: το πιο πρόσφατο LSN για εγγραφή σε αυτή τη σελίδα zWAL: Πριν γραφτεί μια σελίδα, pageLSN  flushedLSN pageLSN Καταχωρήσεις του log ήδη flushed στο δίσκο flushedLSN WAL(1) Η καταχώρηση στο log για μια εγγραφή γράφεται στο δίσκο πριν οι αντίστοιχες σελίδες να γραφούν στο δίσκο Ακόμα και αν η δοσοληψία αναιρεθεί μπορούμε να χρησιμοποιήσουμε το log για να γίνει undo η εγγραφή

Βάσεις Δεδομένων II Ευαγγελία Πιτουρά 24 ARIES: Καταχωρήσεις Log Τύποι καταχωρήσεων zUpdate zCommit zAbort zEnd zCompensation Log Records (CLRs) yγια πράξεις UNDO prevLSN XID type length pageID offset before-image after-image Πεδία LogRecord: Μόνο για εγγραφές Προηγούμενο LSN για τη δοσοληψία

Βάσεις Δεδομένων II Ευαγγελία Πιτουρά 25 ARIES: Άλλες δομές zΠίνακας Δοσοληψιών: yΜια εγγραφή για κάθε ενεργή δοσοληψία yΠεδία εγγραφής: XID, status, (running/commited/aborted), lastLSN (τελευταίο LSN που αφορά τη δοσοληψία). XID status lastLSN

Βάσεις Δεδομένων II Ευαγγελία Πιτουρά 26 ARIES: Άλλες δομές zΠίνακας Τροποποιημένων Σελίδων: yΜια εγγραφή για κάθε τροποποιημένη σελίδα στη μνήμη. yΠεδία εγγραφής recLSN -- LSN της καταχώρησης του log της πρώτης αλλαγής στη σελίδα PID recLSN

Βάσεις Δεδομένων II Ευαγγελία Πιτουρά 27 ARIES: H Γενική Εικόνα DB Σελίδες Δεδομένων σε κάθε σελίδα pageLSN Πίνακας Δοσοληψιών lastLSN status Πίνακας Τροποποιημένων Σελίδων recLSN flushedLSN RAM prevLSN XID type length pageID offset before-image after-image LogRecords LOG

Βάσεις Δεδομένων II Ευαγγελία Πιτουρά 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 Πίνακας Δοσοληψιών lastLSN status Πίνακας Τροποποιημένων Σελίδων recLSN flushedLSN prevLSNs RAM

Βάσεις Δεδομένων II Ευαγγελία Πιτουρά 29 ARIES: Ομαλή Εκτέλεση Δοσοληψίας  Μια ακολουθία από reads & writes, που τελειώνουν με commit ή abort.  Υποθέτουμε ότι οι εγγραφές στο δίσκο είναι ατομικές  Αυστηρό 2PL  αυστηρά χρονοπρογράμματα  STEAL, NO-FORCE, με προεγγραφή log (Write- Ahead Logging)

Βάσεις Δεδομένων II Ευαγγελία Πιτουρά 30 ARIES: Επικύρωση Δοσοληψίας 1. Γράψε μια καταχώρηση τύπου commit στο log 2. Γράψε στο δίσκο όλες τις καταχωρήσεις του log έως το lastLSN της δοσοληψίας flushedLSN  lastLSN (WAL) 3. Τέλος του Commit 4. Γράψε μια καταχώρηση τύπου end στο log

Βάσεις Δεδομένων II Ευαγγελία Πιτουρά 31 ARIES: Aκύρωση Δοσοληψίας Αρχικά, ας θεωρήσουμε ότι δε συμβαίνουν αποτυχίες ΣΤΟΧΟΣ: UNDO (αναίρεση) των εγγραφών (updates)

Βάσεις Δεδομένων II Ευαγγελία Πιτουρά 32 ARIES: Aκύρωση Δοσοληψίας «Παίζουμε» το log της δοσοληψίας ανάποδα 1. Γράφουμε στο log μια καταχώρηση τύπου abort 2. Παίρνουμε το lastLSN της δοσοληψίας από τον Πίνακα Δοσοληψιών 3. Ακολουθούμε την αλυσίδα των καταχωρήσεων στο log βάσει του πεδίου prevLSN

Βάσεις Δεδομένων II Ευαγγελία Πιτουρά 33 ARIES: Aκύρωση Δοσοληψίας Για να το εκτελέσουμε την αναίρεση πρέπει να έχουμε κλειδί στα δεδομένα Πριν να γράψουμε την προηγούμενη τιμή σε μια σελίδα, γράφουμε στο log μια καταχώρηση τύπου CLR Η καταχώρηση CLR έχει ένα πεδίο undonextLSN: επόμενο LSN προς αναίρεση Μια καταχώρηση τύπου CLR δε χρειάζεται να αναιρεθεί (αλλά μπορεί να χρειαστεί να επαναληφθεί) Στο τέλος, γράφουμε μια καταχώρηση τύπου end

Βάσεις Δεδομένων II Ευαγγελία Πιτουρά 34 ARIES: Σημεία Ελέγχου zΓράφει στο log: μια εγγραφή begin_checkpoint: που δηλώνει πότε άρχισε το chkpt. μια εγγραφή end_checkpoint: που δηλώνει πότε τέλειωσε το chkpt Περιοδικά, το ΣΔΒΔ δημιουργεί ένα σημείο ελέγχου (checkpoint), με σκοπό τη μείωση του χρόνου που χρειάζεται για ανάκαμψη στην περίπτωση αποτυχίας Γράφει τον Πίνακα Δοσοληψιών και τον Πίνακα Τροποποιημένων Σελίδων στο log

Βάσεις Δεδομένων II Ευαγγελία Πιτουρά 35 ARIES: Σημεία Ελέγχου  Ασαφές (fuzzy)  Οι δοσοληψίες εξακολουθούν να εκτελούνται. Οι πίνακες είναι ακριβείς ως προς το begin_checkpoint  Δεν γράφονται τροποποιημένες σελίδες στο δίσκο Το LSN της εγγραφής του chkpt γράφεται σε ασφαλή χώρο (master record)

Βάσεις Δεδομένων II Ευαγγελία Πιτουρά 36 ARIES: H Γενική Εικόνα DB Σελίδες Δεδομένων σε κάθε σελίδα pageLSN Πίνακας Δοσοληψιών lastLSN status Πίνακας Τροποποιημένων Σελίδων recLSN flushedLSN RAM prevLSN XID type length pageID offset before-image after-image LogRecords LOG master record

Βάσεις Δεδομένων II Ευαγγελία Πιτουρά 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 Πίνακας Δοσοληψιών lastLSN status Πίνακας Τροποποιημένων Σελίδων recLSN flushedLSN prevLSNs RAM

Βάσεις Δεδομένων II Ευαγγελία Πιτουρά 38 ARIES: Ανάκαμψη από Αποτυχία Τρεις Φάσεις ΑΝΑΛΥΣΗ -- ανακατασκευή τον πινάκων του συστήματος: ποιες σελίδες είναι τροποποιημένες, ποια είναι η κατάσταση των δοσοληψιών ΕΠΑΝΑΛΗΨΗ (REDO) -- επανάληψη όλων των δοσοληψιών ΑΚΥΡΩΣΗ (UNDO) -- αναίρεση των δοσοληψιών που δεν ήταν επικυρωμένες

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

Βάσεις Δεδομένων II Ευαγγελία Πιτουρά 40 ARIES: Η Φάση της Ανάλυσης Αρχή από το τελευταίο checkpoint Εύρεση του με χρήση του master record Βρίσκουμε το αντίστοιχο begin_chkpoint

Βάσεις Δεδομένων II Ευαγγελία Πιτουρά 41 ARIES: Η Φάση της Ανάλυσης Διαβάζουμε το log forward ξεκινώντας από το begin_chkpoint. Αν βρούμε καταχώρηση τύπου: end: σβήνουμε τη δοσοληψία από τον Πίνακα Δοσοληψιών άλλο τύπο: εισαγωγή δοσοληψίας (αν δεν υπάρχει ήδη) αλλαγή lastLSN = LSN, και αλλαγή κατάστασης αν commit (αλλιώς πρέπει να αναιρεθεί) update (εγγραφή): Αν η σελίδα P δεν είναι στον Πίνακα Τροποποιημένων Σελίδων εισαγωγή του P στον πίνακα με recLSN = LSN.

Βάσεις Δεδομένων II Ευαγγελία Πιτουρά 42 ARIES: Η Φάση της Ανάλυσης Αποτέλεσμα οι πίνακες όπως ήταν τη στιγμή που γράψαμε το τελευταίο log στο δίσκο (τελευταία επικύρωση δοσοληψίας) Πίνακας Δοσοληψιών: όλες οι δοσοληψίες που ήταν ενεργές τη στιγμή της αποτυχίας Πίνακας Τροποποιημένων Σελίδων: όλες οι σελίδες που έχουν τροποποιηθεί (κάποιες μπορεί να έχουν γραφτεί ήδη στο δίσκο, μα δεν έχουμε αυτή τη πληροφορία στο log)

Βάσεις Δεδομένων II Ευαγγελία Πιτουρά 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

Βάσεις Δεδομένων II Ευαγγελία Πιτουρά 44 ARIES: Ανάκαμψη από Αποτυχία Τρεις Φάσεις ΑΝΑΛΥΣΗ -- ΕΠΑΝΑΛΗΨΗ (REDO) -- επανάληψη όλων των δοσοληψιών ΑΚΥΡΩΣΗ (UNDO) -- αναίρεση των δοσοληψιών που δεν ήταν επικυρωμένες

Βάσεις Δεδομένων II Ευαγγελία Πιτουρά 45 ARIES: Η Φάση της Επανάληψης Επαναλαμβάνουμε το log ώστε να φτάσουμε στην κατάσταση τη στιγμή της αποτυχίας Επαναλαμβάνουμε τις εγγραφές ακόμα και των δοσοληψιών που ακυρώθηκαν (aborted) Προχωράμε στο log forward ξεκινώντας από το μικρότερο recLSN στον Πίνακα Τροποποιημένων Σελίδων Αρχαιότερη ενημέρωση που ίσως να μην έχει γραφτεί στο δίσκο

Βάσεις Δεδομένων II Ευαγγελία Πιτουρά 46 ARIES: Η Φάση της Επανάληψης Για κάθε καταχώρηση τύπου update ή CLR, επανέλαβε την πράξη εκτός αν: η σελίδα δεν είναι στον Πίνακα Τροποποιημένων Σελίδων η σελίδα είναι στον Πίνακα Τροποποιημένων Σελίδων αλλά recLSN > LSN pageLSN (στο δίσκο)  LSN Σημείωση: δε γνωρίζουμε ποιες σελίδες έχουν γραφτεί στο δίσκο

Βάσεις Δεδομένων II Ευαγγελία Πιτουρά 47 ARIES: Η Φάση της Επανάληψης Για να επαναλάβεις μια πράξη: επανεκτέλεση θέσε pageLSN = LSN δε χρειάζεται log Στο τέλος end για όσες τύπου C

Βάσεις Δεδομένων II Ευαγγελία Πιτουρά 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, γιατί;

Βάσεις Δεδομένων II Ευαγγελία Πιτουρά 49 ARIES: Ανάκαμψη από Αποτυχία Τρεις Φάσεις ΑΝΑΛΥΣΗ -- ΕΠΑΝΑΛΗΨΗ (REDO) -- επανάληψη όλων των δοσοληψιών ΑΚΥΡΩΣΗ (UNDO) -- αναίρεση των δοσοληψιών που δεν ήταν επικυρωμένες

Βάσεις Δεδομένων II Ευαγγελία Πιτουρά 50 ARIES: Η Φάση της Αναίρεσης Κατασκευή λίστας ToUndo = {lastLSN της Τ | Τ δοσοληψία προς αναίρεση} δοσοληψίες προς αναίρεση: δοσοληψίες ενεργές κατά την αποτυχία

Βάσεις Δεδομένων II Ευαγγελία Πιτουρά 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.

Βάσεις Δεδομένων II Ευαγγελία Πιτουρά 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}

Βάσεις Δεδομένων II Ευαγγελία Πιτουρά 53 ARIES: Ανάκαμψη από Αποτυχία v Άρχισε από ένα σημείο ελέγχου (που βρίσκεται μέσω του master record). v Τρεις Φάσεις. –Εύρεση ποιες δοσοληψίες μετά το σημείο ελέγχου επικυρώθηκαν, ποιες ακυρώθηκαν (ΑΝΑΛΥΣΗ). –REDO όλες τις δοσοληψίες. u (repeat history) –UNDO το αποτέλεσμα των αποτυχημένων δοσοληψιών Παλιότερη καταχώρηση log δοσοληψίας ενεργής κατά την αποτυχία Μικρότερο recLSN στον Πίνακα Τροποποιημένων Σελίδων μετά την Ανάλυση Τελευταίο chkpt ΑΠΟΤΥΧΙΑ A R U

Βάσεις Δεδομένων II Ευαγγελία Πιτουρά 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 Πίνακας Δοσοληψιών lastLSN status Πίνακας Τροποποιημένων Σελίδων recLSN flushedLSN ToUndo prevLSNs RAM

Βάσεις Δεδομένων II Ευαγγελία Πιτουρά 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, , ,85 90 Πίνακας Δοσοληψιών lastLSN status Πίνακας Τροποποιημένων Σελίδων recLSN flushedLSN ToUndo undonextLSN RAM

Βάσεις Δεδομένων II Ευαγγελία Πιτουρά 56 Τεχνικές Ανάκαμψης από Σφάλματα Γενικά μπορεί να χρειαστεί ανάκληση (άρα στο log εκτός των εντολών εγγραφής και εντολές ανάγνωσης, για να ελέξουμε ποιες πρέπει να ανακληθούν) Στο ΑRIES υποθέτουμε αυστηρό 2PL, άρα όχι διάδοση ανακλήσεων, εγγραφές

Βάσεις Δεδομένων II Ευαγγελία Πιτουρά 57 Τεχνικές Ανάκαμψης Εφεδρικά αντίγραφα Σκιώδης Σελιδοποίηση