Προχωρημένα Θέματα Βάσεων Δεδομένων

Σχετικά έγγραφα
Τεχνικές Ανάνηψης Περιεχόµενα

Βάσεις Δεδομένων ΙΙ Ενότητα 3

Τεχνικές Ανάκαµψης. Αtomicity (ατοµικότητα) - είτε όλες οι πράξεις είτε

Τεχνικές Ανάκαµψης. Αtomicity (ατοµικότητα) - είτε όλες οι πράξεις είτε

Βάσεις Δεδομένων ΙΙ. Διάλεξη 3 η Tεχνικές Aνάκαμψης. Ιδιότητες Δοσοληψιών

Προχωρημένα Θέματα Βάσεων Δεδομένων

Σημεία ελέγχου (Checkpoints)

Transactions Management. (Διαχείριση Δοσοληψιών)

Αποκατάσταση συστήματος Βάσεις Δεδομένων

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ

Επιπλέον διδακτικό υλικό κρυφών μνημών: set-associative caches, πολιτικές αντικατάστασης, χειρισμός εγγραφών

Συστήματα Διαχείρισης Βάσεων Δεδομένων

PRINCIPLES OF TRANSACTION-ORIENTED DATABASE RECOVERY. Theo Haerder Andreas Reuter. Μαρία Κουτσουλιέρη

Οργάνωση Υπολογιστών

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα. Συστήματα Αυτομάτου Ελέγχου. Ενότητα Α: Γραμμικά Συστήματα

ΒΟΗΘΗΤΙΚΕΣ ΣΗΜΕΙΩΣΕΙΣ

Επαναφορά του Συστήματος (Μέρος Α')

Επανάκτηση δεδομένων. (εμπλουτισμένο υλικό)

Λειτουργικά Συστήματα

ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Ι

Βάσεις Δεδομένων ΙΙ Ενότητα 1

Εισαγωγή στην Πληροφορική

3 η ΕΝΟΤΗΤΑ Συναρτήσεις στο MATLAB

Αρχιτεκτονική Υπολογιστών

Multi Cycle Datapath. Αρχιτεκτονική Υπολογιστών. 5ο εξάμηνο ΣΗΜΜΥ ακ. έτος: Νεκ. Κοζύρης

Διαχείριση Χρόνου & Δίκτυα στη Διοίκηση Έργων. Κηρυττόπουλος Κωνσταντίνος Επ. Καθηγητής ΕΜΠ

Δοσοληψίες Βάσεις Δεδομένων Διδάσκων: Μαρία Χαλκίδη

Έλεγχος συγχρονικότητας Μέρος 1 Βάσεις Δεδομένων Διδάσκων: Μαρία Χαλκίδη

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ. Ενότητα: ΔΟΜΕΣ ΕΠΑΝΑΛΗΨΗΣ ΚΥΡΟΠΟΥΛΟΣ ΚΩΝΣΤΑΝΤΙΝΟΣ. Τμήμα Διοίκηση Επιχειρήσεων (Κοζάνη)

Λογιστικές Εφαρμογές Εργαστήριο

ΙΑΧΕΙΡΙΣΗ ΟΣΟΛΗΨΙΩΝ Να θυµηθούµε:

Προγραμματισμός Η/Υ 1 (Εργαστήριο)

ΥΠΟΛΟΓΙΣΤΕΣ ΙI. Άδειες Χρήσης. Δείκτες Διδάσκοντες: Αν. Καθ. Δ. Παπαγεωργίου, Αν. Καθ. Ε. Λοιδωρίκης

Αρχιτεκτονική Υπολογιστών

Αλγόριθμοι Αναζήτησης

Προγραμματισμός Η/Υ 1 (Εργαστήριο)

Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών

Αυτοματοποιημένη χαρτογραφία

Γεωγραφικά Συστήµατα Πληροφοριών και Αρχές Τηλεπισκόπησης

Προγραμματισμός H/Y Ενότητα 4: Δείκτες. Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

Πληροφορική. Εργαστηριακή Ενότητα 3 η : Επεξεργασία Κελιών Γραμμών & Στηλών. Ι. Ψαρομήλιγκος Τμήμα Λογιστικής & Χρηματοοικονομικής

Προγραμματισμός Υπολογιστών & Υπολογιστική Φυσική

Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύ

Εικονική Μνήμη (Virtual Μemory)

Αυτοματοποιημένη χαρτογραφία

Δομημένος Προγραμματισμός

Προγραμματισμός Η/Υ. 7 η ενότητα: Αρχεία. Τμήμα. Τεχνολόγων Περιβάλλοντος. ΤΕΙ Ιονίων Νήσων. Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων

Δίκτυα Υψηλών Ταχυτήτων Ενότητα 7: Διευθυνσιοδότηση Internet Protocol (IP) v4

Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύ

ΣΥΣΚΕΥΕΣ ΑΠΟΘΗΚΕΥΣΗΣ (ΜΝΗΜΗ)

Εισαγωγή στους Αλγορίθμους

Στατιστική για Πολιτικούς Μηχανικούς Λυμένες ασκήσεις μέρους Α

Υπολογιστικά & Διακριτά Μαθηματικά

Ασκήσεις Caches. Αρχιτεκτονική Υπολογιστών. 5ο εξάμηνο ΣΗΜΜΥ ακ. έτος: Νεκ. Κοζύρης

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ. Πανεπιστήμιο Πειραιώς Τμήμα Ψηφιακών Συστημάτων Μανουσόπουλος Χρήστος

Διαχείριση Δοσοληψιών

Υπολογιστές Ι. Άδειες Χρήσης. Εισαγωγή. Διδάσκοντες: Αν. Καθ. Δ. Παπαγεωργίου, Αν. Καθ. Ε. Λοιδωρίκης

Στατιστική Επιχειρήσεων Ι

Αλγόριθμοι και Δομές Δεδομένων(Θ) Ευάγγελος Γ. Ούτσιος

Τεχνολογία Πολυμέσων. Ενότητα # 3: Συστήματα πολυμέσων Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής

Υπολογιστές Ι. Άδειες Χρήσης. Δομή του προγράμματος. Διδάσκοντες: Αν. Καθ. Δ. Παπαγεωργίου, Αν. Καθ. Ε. Λοιδωρίκης

Συντομότερα Μονοπάτια για Όλα τα Ζεύγη Κορυφών

Προγραμματισμός Υπολογιστών & Υπολογιστική Φυσική

ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Ι

Τεχνολογίες & Εφαρμογές Πληροφορικής Ενότητα 6: Συμπίεση Windows

Υδραυλικά & Πνευματικά ΣΑΕ

Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύ

Γνωστική Ψυχολογία 3

Αρχιτεκτονική Υπολογιστών

ΣΤΑΤΙΣΤΙΚΗ ΕΠΙΧΕΙΡΗΣΕΩΝ

Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχανικών - Μηχανικών Υπολογιστών. Αρχιτεκτονική Υπολογιστών Νεκτάριος Κοζύρης.

Εισαγωγή στους Αλγορίθμους

Αρχιτεκτονική Υπολογιστών Εργαστήριο

Έλεγχος Κίνησης

Επιστηµονικός Υπολογισµός Ι Ενότητα 1 - Εισαγωγή. Ευστράτιος Γαλλόπουλος

ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ

Ηλεκτρονικοί Υπολογιστές IV

Συστήματα Παράλληλης και Κατανεμημένης Επεξεργασίας

Ηλεκτρονικοί Υπολογιστές I

ΣΤΑΤΙΣΤΙΚΗ ΑΝΑΛΥΣΗ ΜΕ ΧΡΗΣΗ Η/Υ

Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύ

Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών

Τίτλος Μαθήματος: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ

Θεωρία Πιθανοτήτων & Στατιστική

Βάσεις Δεδομένων ΙΙ Ενότητα 2

Εισαγωγή στους Αλγορίθμους

Ανάκτηση Πληροφορίας

Στατιστική Επιχειρήσεων Ι

Λογιστικές Εφαρμογές Εργαστήριο

Δομημένος Προγραμματισμός

Κύρια & Περιφερειακή Μνήµη

Συστήματα Αναμονής. Ενότητα 1: Εισαγωγή. Αγγελική Σγώρα Τμήμα Μηχανικών Πληροφορικής ΤΕ

Αρχιτεκτονική Υπολογιστών

Εικονική Μνήμη (Virtual Μemory)

Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Ι. Ενότητα 9α: Περιορισμοί (Constraints) Εναύσματα (Triggers) Ευαγγελίδης Γεώργιος Τμήμα Εφαρμοσμένης Πληροφορικής

Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύ

Αρχιτεκτονική-ΙI Ενότητα 4 :

Εισαγωγή στους Ηλεκτρονικούς Υπολογιστές. 6 ο Μάθημα. Λεωνίδας Αλεξόπουλος Λέκτορας ΕΜΠ. url:

Κατανεμημένες δοσοληψίες

Transcript:

Προχωρημένα Θέματα Βάσεων Δεδομένων Τεχνικές Ανάνηψης Διδάσκων: Νεκτάριος Κοζύρης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Ε.Μ.Π.

Άδεια Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άδεια χρήσης άλλου τύπου, αυτή πρέπει να αναφέρεται ρητώς. Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια του εκπαιδευτικού έργου του διδάσκοντα. Το έργο «Ανοικτά Ακαδημαϊκά Μαθήματα» του ΕΜΠ έχει χρηματοδοτήσει μόνο την αναδιαμόρφωση του υλικού. Το έργο υλοποιείται στο πλαίσιο του Επιχειρησιακού Προγράμματος «Εκπαίδευση και Δια Βίου Μάθηση» και συγχρηματοδοτείται από την Ευρωπαϊκή Ένωση (Ευρωπαϊκό Κοινωνικό Ταμείο) και από εθνικούς πόρους.

Τεχνικές Ανάνηψης Περιεχόµενα Εισαγωγή & υποθέσεις εργασίας Αλγόριθµος Write-Ahead Log (WAL) Ανάνηψη τη παρουσία WAL 2

Επίπεδα αποθήκευσης Κυρίως µνήµη RAM, cache Ταχύτητα στην προσπέλαση Τα δεδοµένα χάνονται σε περίπτωση αποτυχίας ευτερεύουσα µνήµη Σκληρός ίσκος, Ταινίες Πιο αργά, λόγω ηλεκτροµηχανικής κίνησης Πιο αξιόπιστα σε επίπεδο αστοχίας Υπόκεινται και αυτά σε αστοχίες όµως 3 Επιπλέον επίπεδα αποθήκευσης Σταθερή αποθήκευση Π.χ., συστήµατα RAID [k αντίγραφα του ιδίου αποθηκευτικού µέσου] Hard-copies 4

Αστοχίες του συστήµατος Κακό πρόγραµµα (µε λάθη, δηλ.) Αστοχία δοσοληψίας (αδιέξοδο, abort από τον χρήστη, κλπ) Αστοχία του συστήµατος (πτώση ρεύµατος, αδιέξοδο λειτουργικού συστήµατος) Αστοχία υλικού (καταστροφή σκληρού δίσκου) Failure: αστοχία ή αποτυχία 5 Read & Write a b read(a,a) A buffer buffer write(b,b) B Main Memory Οι διακεκοµµένες αναπαριστούν λειτουργίες που µπορεί να καθυστερήσουν/ αγνοηθούν Disk 6

Επανάληψη: Τι πάει να πει read(a) ; a είναι µια µεταβλητή του προγράµµατος read(a) σηµαίνει: ιάβασε από το δίσκο την αντίστοιχη µε το a εγγραφή στη βάση, Φέρε την σε κάποιο buffer Αντίγραψέ την στην περιοχή µνήµης του προγράµµατος 7 Επανάληψη... Hard Disk Buffer Program memory Το αντίστοιχο συµβαίνει και µε τη write Όπως έχουµε πει, το a, εν γένει, δεν είναι εγγραφή, αλλά σελίδα στο δίσκο... 8

Εµείς θα ασχοληθούµε µε... Αστοχίες δοσοληψίας (αδιέξοδο, abort από τον χρήστη, κλπ) Αστοχίες του συστήµατος (πτώση ρεύµατος, αδιέξοδο λειτουργικού συστήµατος) Τα αποτελέσµατα τροποποιούνται για να αντιµετωπίσουµε και αστοχίες υλικού... 9 Αυτό µεταφράζεται πρακτικά ως... Τα δεδοµένα από την κυρίως µνήµηχάνονται οριστικά Τα δεδοµένα που έχουν αποθηκευθεί στο σκληρό δίσκο είναι ασφαλή Η Β πιθανώς βρίσκεται σε ασυνεπή µορφή. 10

A: 150 B: 200 «ασυνεπή»; read(a); A := A - 50; write(a); --CRASH-- read(b); B := B + 50; write(b). A: 100 B: 200 A+B=350 A+B=300 11 Σε περίπτωση αποτυχίας... Σκοπός είναι να διατηρήσουµε τη συνέπεια του συστήµατος. Πρέπει να επαναλάβουµε (REDO) όλες τις δοσοληψίες που έκαναν commit Πρέπει να αναιρέσουµε (UNDO) όσες παρενέργειες επέφεραν οι δοσοληψίες που δεν πρόλαβαν να κάνουν commit 12

Περιεχόµενα Εισαγωγή & υποθέσεις εργασίας Αλγόριθµος Write-Ahead Log (WAL) Ανάνηψη τη παρουσία WAL 13 Log (Ιστορικό) Log (Ιστορικό/Ίχνος/Ηµερολόγιο): ένα αρχείο στο σκληρό δίσκο που καταγράφει όλη την ιστορία των ενεργειών που εκτελέστηκαν από το DBMS Ενέργειες: BOT/EOT (Begin/End Of Transaction) INS/UPD/DEL (ήτοι, write) ένα record COMMIT/ABORT µια δοσοληψία UNDO/REDO µια ενέργεια εγγραφής (write) 14

Βασικές έννοιες για το Log Το log ως αρχείο είναι ένα σύνολο από εγγραφές (log records) Κάθε log record χαρακτηρίζεται µονοσήµαντα από ένα Log Sequence Number (LSN). Το σύστηµα εκδίδει αυτόµατα το max(lsn)+1 για κάθε νέα log record 15 Log Record τύπου Write LSN Transaction ID (TID) Σελίδα που κάνουµε update Offset στην εν λόγω σελίδα Μήκος σε bytes που αλλάζουµε Παλιά τιµή Νέα τιµή T1: UPDATE EMP SET ID = 30 WHERE ID = 3 Log Entry: LSN12,T1,PAGE32,0xFFF32,8,3,30 16

εν φτάνουν αυτά PrevLSN: To ακριβώς προηγούµενο LSN της ίδιας δοσοληψίας Τι γίνεται αν αλλάξει σελίδα η εγγραφή; BOT (T1) LSN12,T1, PAGE32, LSN13,T1, PAGE32, BOT (T2) EOT (T1) LSN16,T2, PAGE45, και τα ΕΟΤ/ΒΟΤ έχουν LSN (oops ) 17 Βασική Αρχή Write Ahead Log Προτού γράψεις οτιδήποτε στη Β, καταχώρησε την αντίστοιχη εγγραφή στο log Φυσικά υπάρχουν τεχνικές λεπτοµέρειες... 18

Τι θα πει write ; Hard Disk Πότε; Buffer Άµεσα Program memory Σε κάθε commit; Σε κάθε µια ενέργεια write (ασχέτως commit); Σε τακτά χρονικά διαστήµατα; Κάθε όποτε δεν έχει δουλειά το µηχάνηµα ;... Dirty page: σελίδα που έχει αλλαχθεί στον buffer, αλλά όχι στο σκληρό δίσκο 19 ύο βασικοί τρόποι εγγραφής Steal: επιτρέπουµε µια σελίδα να γραφτεί στο δίσκο, χωρίς να έχει κάνει commit η δοσοληψία που την άλλαξε [No-steal, αν γράφω µόνο committed σελίδες] Force: επιβάλλουµε σε όλες τις σελίδες µιας δοσοληψίας να γραφτούν στο δίσκο, αµέσως µετά το commit [No-Force, αν κάποιες µπορεί και να µη γραφτούν] 20

Στην πράξη: Steal Γράφω µια µη commited σελίδα στο δίσκο, είτε γιατί γέµισαν οι buffers, είτε γιατί αν κάνει commit η δοσοληψία χωρίς να αλλάξει ξανά τη σελίδα κέρδισα σε χρόνο Κι αν αποτύχει η δοσοληψία; Τότε πρέπει να κάνω UNDO στην αλλαγή της σελίδας Dirty bit: κρατάω ένα bit που λέει αν η σελίδα είναι dirty ή όχι 21 Στην πράξη: No-Force εν γράφω µια commited σελίδα στο δίσκο, για να αποφύγω το κόστος εγγραφής (π.χ., λόγω φόρτου του συστήµατος εκείνη τη στιγµή) Κι αν αποτύχει το σύστηµα; Τότε πρέπει να κάνω REDO στην αλλαγή της σελίδας στο δίσκο 22

Write Ahead Log revisited Προτού γράψεις οτιδήποτε στη Β, καταχώρησε την αντίστοιχη εγγραφή στο log Για να γράψεις µια updated σελίδα από το buffer πίσω στο δίσκο, πρέπει στο log (στο δίσκο) να έχουν περαστεί οι παλιές τιµές για τα records της Για να κάνεις commit µια δοσοληψία πρέπει στο log (στο δίσκο) να έχουν γραφτεί όλες οι σχετικές log records 23 Με άλλα λόγια... ΠΡΙΝ γράψω µια σελίδα στη Β, γράφω όλα τα log records που την αφορούν στο δίσκο ΠΡΙΝ κάνω commit µια δοσοληψία, γράφω όλα τα log records που την αφορούν στο δίσκο Προσοχή: τα παραπάνω είναι περιορισµοί ορθότητας και όχι αλγόριθµος 24

Σχόλια Steal: και να πας να κλέψεις στη Β, ΕΝ µπορείς να κλέψεις στο log No-Force: και να µην εξαναγκάσεις τις εγγραφές της Β να γραφούν στο δίσκο, πρέπει να γραφούν όλες οι log records Μην ξεχνάτε ότι και το log περνά από buffering! 25 Και τι κέρδισα; Για να γράψεις µια updated σελίδα από το buffer πίσω στο δίσκο, πρέπει στο log (στο δίσκο) να έχουν περαστεί οι παλιές τιµές για τα records της Σε περίπτωση αποτυχίας της δοσοληψίας, µπορώ να κάνω UNDO Για να κάνεις commit µια δοσοληψία πρέπει στο log (στο δίσκο) να έχουν γραφτεί όλες οι σχετικές log records Σε περίπτωση αποτυχίας του συστήµατος, µπορώ να κάνω REDO 26

Checkpoints Σηµεία ελέγχου Περιοδικά, το σύστηµα κάνει τις εξής ενέργειες: Σταµατά κάθε άλλη ενέργεια Καταγράφει το σύνολο των ενεργών δοσοληψιών Γράφει (flush) όλους τους buffers µε log records, στο δίσκο Γράφει (flush) όλους τους buffers µε records της Β, στο δίσκο Γράφει στο log µια εγγραφή CHK (checkpoint) 27 Οπότε το log θα δείχνει κάπως έτσι... BOT (T1) LSN12,T1, PAGE32, LSN13,T1, PAGE32, BOT (T2) EOT (T1) LSN16,T2, PAGE45, CHK {T2} {T2} είναι το σύνολο των ενεργών δοσοληψιών 28

Checkpoints Sharp checkpoint: το προαναφερθέν είδος checkpoint Fuzzy checkpoint: αντί να σταµατήσει το σύστηµα, γράφει µόνο ποιες είναι οι dirty pages και στέλνει την εγγραφή των σελίδων αυτών στο background. ικαιούµαστε να ξαναπάρουµε checkpoint µόνο όταν η παρασκηνιακή διεργασία τελειώσει. Θεωρήστε sharp checkpoints 29 Περιεχόµενα Εισαγωγή & υποθέσεις εργασίας Αλγόριθµος Write-Ahead Log (WAL) Ανάνηψη τη παρουσία WAL 30

Ανάνηψη αν έχουµε WAL Έστω ότι το σύστηµα αποτυγχάνει και πρέπει να το επαναφέρουµε (ήτοι, να επαναφέρουµε τη Β σε συνεπή µορφή). Η διαδικασία αυτή ονοµάζεται ανάνηψη (recovery) ή ανάκαµψη ή επαναφορά Αν έχουµε χρησιµοποιήσει WAL κατά την κανονική λειτουργία του συστήµατος, η ανάνηψη έχει 3 φάσεις: 1. Ανάλυση 2. UNDO 3. REDO 31 Φάση Ανάλυσης ιαβάζουµε το log από το τελευταίο CHK ως το τέλος Ανακαλύπτουµε νικητές (winners), ήτοι, δοσοληψίες που πρόλαβαν και έκαναν commit µέσα σε αυτό το διάστηµα ηττηµένους (losers), ήτοι δοσοληψίες που είτε δεν πρόλαβαν να κάνουν commit, είτε οι χρήστες τους τις έκαναν abort Εντοπίζουµε τις dirty pages τη στιγµή της αποτυχίας (βλ. στη συνέχεια) 32

T r a n s a c t i o n s Winners & losers Time tc tf T1 T2 T3 T4 Checkpoint (time tc) Source: An Introduction to Database Systems, C.J. Date, p. 381 T5 System failure (time tf) 33 Winners & losers Time tc tf T1 T2 T3 T4 T5 δε µας αφορά winner loser Checkpoint (time tc) System failure (time tf) 34

Φάση UNDO UNDO losers! ιαβάζουµε ανάποδα το log, από το τέλος προς την αρχή Κάθε πράξη που ανήκει σε δοσοληψία loser γίνεται UNDO Προσοχή: µπορεί µια loser να έχει ξεκινήσει πριν το checkpoint! 35 Φάση REDO REDO winners! ιαβάζουµε κανονικά το log, από το σηµείο που κάναµε update την πιο παλιά buffer page ως το τέλος Κάθε πράξη που ανήκει σε δοσοληψία winner γίνεται REDO 36

Ανάνηψη αν έχουµε WAL CHK Αποτυχία LOG BOT παλαιότερης loser δοσοληψία UNDO Πιο παλιά dirty page ANALYSIS REDO 37 Εδώ τι θα κάναµε ; Αποτυχία CHK BOT (T1) LSN12,T1, PAGE32, LSN13,T1, PAGE32, BOT (T2) EOT (T1) LSN16,T2, PAGE45, 38

Πώς εντοπίζω τις dirty pages; Έστω ότι σε κάθε σελίδα κρατάω ένα πεδίο pagelsn που καταγράφει το LSN της τελευταίας ενέργειας που έκανε update κάποιο record στη σελίδα Πώς µπορώ να βρω τις dirty pages όταν ανανήψει το σύστηµα; Τι θα άλλαζε αν δεν κρατούσα αυτή την πληροφορία; 39 Ερωτήσεις κρίσεως... Πώς µπορώ να προφυλαχθώ από αποτυχίες του υλικού [µε βάση όλα τα προηγούµενα]; Τι θα κέρδιζα/έχανα/άλλαζε αν πέρναγα τα updates στο δίσκο, µόνο στο commit [και όχι πιο πριν] ; Τι θα κέρδιζα/έχανα/άλλαζε αν έκανα υποχρεωτικώς flush τις dirty pages στο commit ; 40

Ερωτήσεις κρίσεως Τι θα γίνει αν κατά τη διάρκεια της ανάνηψης το σύστηµα αποτύχει ξανά; Τι θα άλλαζε αν αντί για [παλιά τιµή,νέα τιµή] στο log record έγραφα [παλιά τιµή,διαφορά]; Έχει σηµασία η σειρά των UNDO και REDO; Μέσα σε κάθε µια από αυτές τις φάσεις, έχει σηµασία η σειρά; 41