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

Slides:



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

Βάσεις Δεδομένων II Ευαγγελία Πιτουρά 1 Επεξεργασία Δοσοληψιών.
ΤΟ ΥΛΙΚΟ ΤΟΥ ΥΠΟΛΟΓΙΣΤΗ Κεφάλαιο 3 ο - Συνέχεια Ελληνογαλλική Σχολή Καλαμαρί - Τίκβα Χριστίνα.
Βάσεις Δεδομένων Ευαγγελία Πιτουρά1 Αποθήκευση Δεδομένων.
Κώστας Διαμαντάρας Τμήμα Πληροφορικής ΤΕΙ Θεσσαλονίκης 2011 Πολυεπεξεργαστές.
ΥΛΙΚΟ ΥΠΟΛΟΓΙΣΤΗ.
©Silberschatz, Korth and Sudarshan1ΒΔ ΙΙ: Σύστημα επαναφοράς Σύστημα Επαναφοράς (Recovery System)  Κατηγοριοποίηση αποτυχιών/βλαβών  Δομή αποθήκευσης.
ΤΑΞΗ Γ ΓΥΜΝΑΣΙΟΥ Βασικές Έννοιες Επανάληψη (2).
Το υλικο του Υπολογιστη
Λειτουργικό Σύστημα 2ο μέρος.
ΕΝΟΤΗΤΑ 1 – Κεφάλαιο 2: Το Υλικό του Υπολογιστή
1 Επεξεργασία Συναλλαγών. 2 Συναλλαγές m Η ταυτόχρονη εκτέλεση προγραμμάτων χρηστών είναι απαραίτητη για την καλή απόδοση ενός ΣΔΒΔ m Επειδή οι προσπελάσεις.
By Τζέρυ, Κώστας και Λέντι. είναι όρος που χρησιμοποιούμε για ηλεκτρονικές διατάξεις προσωρινής αποθήκευσης ηλεκτρονικές οι οποίες επιτρέπουν πρόσβαση.
Βάσεις Δεδομένων II Περίληψη: Προχωρημένα Θέματα Διαχείρισης Ταυτοχρονισμού Πάνος Βασιλειάδης Οκτώβρης 2002
Προχωρημένα Θέματα Τεχνολογίας και Εφαρμογών Βάσεων Δεδομένων
Εργασία Η υλοποίηση του αλγορίθμου συγχώνευσης θα πρέπει να χρησιμοποιεί την ιδέα των ροών (streams). Θα πρέπει να υπάρχουν δύο διαφορετικά είδη.
Linear Hashing Τμήμα Πληροφορικής & Τηλ/νών, ΕΚΠΑ Υλοποίηση Συστημάτων Βάσεων Δεδομένων
Πώς βρίσκουμε το πλήθοςτων επαναλήψεων μιας Δομής Επανάληψης με βήμα διάφορο του 1
Βάσεις Δεδομένων II Διαχείριση Δοσοληψιών Πάνος Βασιλειάδης Σεπτέμβρης 2002
Προχωρημένα Θέματα Τεχνολογίας και Εφαρμογών Βάσεων Δεδομένων Εσωτερική Αρχιτεκτονική Βάσεων Δεδομένων Πάνος Βασιλειάδης Σεπτέμβρης 2009.
Βάσεις Δεδομένων II Ευαγγελία Πιτουρά 1 Τεχνικές Ανάκαμψης.
Κεφάλαιο 2 Το Εσωτερικό του υπολογιστή
Κεφάλαιο 19 Τεχνικές Ανάκαμψης Βάσεων Δεδομένων (Recovery)
Βάσεις Δεδομένων II Ενότητα 6: Ανάκαμψη Γεωργία Γκαράνη Επίκουρος Καθηγήτρια Τμήμα Μηχανικών Πληροφορικής Τ.Ε. T.E.I. Θεσσαλίας.
Δομές Δεδομένων.
2.2 Η ΕΝΝΟΙΑ ΤΗΣ ΤΑΧΥΤΗΤΑΣ.
Προχωρημένα Θέματα Τεχνολογίας και Εφαρμογών Βάσεων Δεδομένων Διαχείριση Συναλλαγών Πάνος Βασιλειάδης Μάρτιος 2014
Βάσεις Δεδομένων II Περίληψη: Τεχνικές Ανάνηψης Πάνος Βασιλειάδης Νοέμβρης 2002
1 Α. Βαφειάδης Αναβάθμισης Προγράμματος Σπουδών Τμήματος Πληροφορικής Τ.Ε.Ι Θεσσαλονίκης Μάθημα Προηγμένες Αρχιτεκτονικές Υπολογιστών Κεφαλαίο Τρίτο Συστήματα.
Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1 Εισαγωγή στην Επεξεργασία Ερωτήσεων.
Βάσεις Δεδομένων II Ευαγγελία Πιτουρά 1 Τεχνικές Ανάκαμψης.
Κεφάλαιο 10 – Υποπρογράμματα
Βάσεις Δεδομένων II Ευαγγελία Πιτουρά 1 Ασκήσεις Επεξεργασία Δοσοληψιών, Τεχνικές Ελέγχου Συνδρομικότητας, Τεχνικές Ανάκαμψεις από Σφάλματα.
1 Α. Βαφειάδης Αναβάθμισης Προγράμματος Σπουδών Τμήματος Πληροφορικής Τ.Ε.Ι Θεσσαλονίκης Μάθημα Προηγμένες Αρχιτεκτονικές Υπολογιστών Κεφαλαίο Τρίτο Συστήματα.
Βάσεις Δεδομένων II Ευαγγελία Πιτουρά 1 Τεχνικές Ανάκαμψης.
Βάσεις Δεδομένων II Ευαγγελία Πιτουρά 1 Επεξεργασία Δοσοληψιών.
Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1 Επεξεργασία Ερωτήσεων.
Βάσεις Δεδομένων II Ευαγγελία Πιτουρά 1 ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ ΙΙ.
Βάσεις Δεδομένων II Ευαγγελία Πιτουρά 1 Τεχνικές Ανάκαμψης.
Βάσεις Δεδομένων II Ανανηψιμότητα Δοσοληψιών Πάνος Βασιλειάδης Οκτώβρης 2002
Κεφάλαιο 17 Εισαγωγή στη Θεωρία των Δοσοληψιών. Δοσοληψίες Η Έννοια της Δοσοληψίας Κατάσταση Δοσοληψίας Ταυτόχρονες Εκτελέσεις Σειριοποιησιμότητα Ανάκαμψη.
Βάσεις Δεδομένων II Ευαγγελία Πιτουρά 1 ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ ΙΙ.
1 Προχωρημένα Θέματα Τεχνολογίας και Εφαρμογών Βάσεων Δεδομένων Παραγωγή πλάνων στην βελτιστοποίηση ερωτήσεων Πάνος Βασιλειάδης Φλεβάρης.
Translation Lookaside Buffers Φροντιστήριο του μαθήματος “Προηγμένοι Μικροεπεξεργαστές”
Βάσεις Δεδομένων II Περίληψη: Διαχείριση Δοσοληψιών Πάνος Βασιλειάδης Οκτώβρης 2002
Βάσεις Δεδομένων II Περίληψη: Βασικές Αρχές Διαχείρισης Ταυτοχρονισμού Πάνος Βασιλειάδης Οκτώβρης 2002
ΕΝΟΤΗΤΑ 2 – Κεφάλαιο 5: Γνωριμία με το Λογισμικό
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.,
Κρυφή μνήμη (cache memory) (1/2) Εισαγωγή στην Πληροφορκή1 Η κρυφή μνήμη είναι μία πολύ γρήγορη μνήμη – πιο γρήγορη από την κύρια μνήμη – αλλά πιο αργή.
Διοίκηση Επιχειρήσεων Βάσεις Δεδομένων και Ευφυή Πληροφοριακά Συστήματα Επιχειρηματικότητας Βάσεις Δεδομένων και Ευφυή Πληροφοριακά Συστήματα Επιχειρηματικότητας.
Διοίκηση Επιχειρήσεων Βάσεις Δεδομένων και Ευφυή Πληροφοριακά Συστήματα Επιχειρηματικότητας Βάσεις Δεδομένων και Ευφυή Πληροφοριακά Συστήματα Επιχειρηματικότητας.
Κύρια Μνήμη Διάφοροι τύποι μνήμης RAM Από πάνω προς τα κάτω, DIP, SIPP, SIMM (30-pin), SIMM (72-pin), DIMM (168-pin), DDR DIMM (184-pin). Μνήμη RΟM.
Καταχωρητές (Registers) (1/3) Εισαγωγή στην Πληροφορκή1 Οι Καταχωρητές (Registers) είναι ειδικές θέσεις μνήμης υψηλής ταχύτητας που χρησιμοποιούνται για.
1 Είδη μέσων αποθήκευσης Πρωτεύοντα μέσα αποθήκευσης κεντρική μνήμη και όλες οι υπόλοιπες μνήμες (π.χ καταχωρητές, cache memory) Δευτερεύοντα μέσα αποθήκευσης.
Security and Confidentiality Ασφάλεια και Εμπιστευτικότητα.
Δευτερεύουσες Μονάδες Α π οθήκευσης Δεδομένων Διάλεξη 4.
Μαγνητικός δίσκος (magnetic disk) Εισαγωγή στην Πληροφορκή1 Ο μαγνητικός δίσκος χρησιμοποιείται για μόνιμη αποθήκευση δεδομένων, παρέχοντας σχετικά μικρό.
ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι
ΤΙΤΛΟΣ ΕΡΓΑΣΙΑΣ ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Ανδρέου Βασίλης.
Δυναμικός Κατακερματισμός
Χειρισμός Χρόνου και Μεθοδολογίες Προσομοίωσης
Java DataBase Connectivity
ΕΛΛΗΝΟΓΑΛΛΙΚΗ ΣΧΟΛΗ ΠΕΙΡΑΙΑ <<ΑΓΙΟΣ ΠΑΥΛΟΣ>>
ΤΑΞΗ Γ ΓΥΜΝΑΣΙΟΥ Βασικές Έννοιες Επανάληψη (2).
Προχωρημένα Θέματα Τεχνολογίας και Εφαρμογών Βάσεων Δεδομένων
Προχωρημένα Θέματα Τεχνολογίας και Εφαρμογών Βάσεων Δεδομένων
Εξωτερική Αναζήτηση Ιεραρχία Μνήμης Υπολογιστή Εξωτερική Μνήμη
Διαχρονικές Δομές Δεδομένων
Δυναμικός Κατακερματισμός
ΕΚΦΡΑΣΕΙΣ, ΑΝΑΜΟΝΕΣ (DELAYS), ΗΧΟΙ
Μεταγράφημα παρουσίασης:

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

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

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

4 Επίπεδα αποθήκευσης Κυρίως μνήμη RAM, cache Ταχύτητα στην προσπέλαση Τα δεδομένα χάνονται σε περίπτωση αποτυχίας Δευτερεύουσα μνήμη Σκληρός Δίσκος, Ταινίες Πιο αργά, λόγω ηλεκτρομηχανικής κίνησης Πιο αξιόπιστα σε επίπεδο αστοχίας Υπόκεινται και αυτά σε αστοχίες όμως Στη συνέχεια, Siberschatz, Korth & Sudarsan

5 Επιπλέον επίπεδα αποθήκευσης Σταθερή αποθήκευση Π.χ., συστήματα RAID [k αντίγραφα του ιδίου αποθηκευτικού μέσου] Hard-copies

6 Αστοχίες του συστήματος Κακό πρόγραμμα (με λάθη, δηλ.) Αστοχία δοσοληψίας (αδιέξοδο, abort από τον χρήστη, κλπ) Αστοχία του συστήματος (πτώση ρεύματος, αδιέξοδο λειτουργικού συστήματος) Αστοχία υλικού (καταστροφή σκληρού δίσκου) Failure: αστοχία ή αποτυχία

7 Read & Write Main Memory a Disk B b read(A,a) write(B,b) buffer A Οι διακεκομμένες αναπαριστούν λειτουργίες που μπορεί να καθυστερήσουν/ αγνοηθούν

8 Επανάληψη: Τι πάει να πει read(a) ? a είναι μια μεταβλητή του προγράμματος read(a) σημαίνει: Διάβασε από το δίσκο την αντίστοιχη με το a εγγραφή στη βάση, Φέρε την σε κάποιο buffer Αντίγραψέ την στην περιοχή μνήμης του προγράμματος

9 Επανάληψη... Το αντίστοιχο συμβαίνει και με τη write Όπως έχουμε πει, το a, εν γένει, δεν είναι εγγραφή, αλλά σελίδα στο δίσκο... Hard Disk Buffer Program memory

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

11 Αυτό μεταφράζεται πρακτικά ως... Τα δεδομένα από την κυρίως μνήμη χάνονται οριστικά Τα δεδομένα που έχουν αποθηκευθεί στο σκληρό δίσκο είναι ασφαλή Η ΒΔ πιθανώς βρίσκεται σε ασυνεπή μορφή.

12 «ασυνεπή»? Κάτι μου θυμίζει... A: 150 € B: 200 € A: 100 € B: 200 € A+B=350A+B=300 read(A); A := A - 50; write(A); --CRASH-- read(B); B := B + 50; write(B).

13 Σε περίπτωση αποτυχίας... Σκοπός είναι να διατηρήσουμε τη συνέπεια του συστήματος. Πρέπει να επαναλάβουμε (REDO) όλες τις δοσοληψίες που έκαναν commit Πρέπει να αναιρέσουμε (UNDO) όσες παρενέργειες επέφεραν οι δοσοληψίες που δεν πρόλαβαν να κάνουν commit

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

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

16 Βασικές έννοιες για το Log Το log ως αρχείο είναι ένα σύνολο από εγγραφές (log records) Κάθε log record χαρακτηρίζεται μονοσήμαντα από ένα Log Sequence Number (LSN). Το σύστημα εκδίδει αυτόματα το max(LSN)+1 για κάθε νέα log record

17 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

18 Δεν φτάνουν αυτά … PrevLSN: To ακριβώς προηγούμενο LSN της ίδιας δοσοληψίας Τι γίνεται αν αλλάξει σελίδα η εγγραφή? …και τα ΕΟΤ/ΒΟΤ έχουν LSN (oops…) BOT (T1) LSN12,T1, PAGE32,… LSN13,T1, PAGE32,… BOT (T2) EOT (T1) LSN16,T2, PAGE45,…

19 Βασική Αρχή Write Ahead Log Προτού γράψεις οτιδήποτε στη ΒΔ, καταχώρησε την αντίστοιχη εγγραφή στο log Φυσικά υπάρχουν τεχνικές λεπτομέρειες...

20 Τι θα πει write ? Σε κάθε commit? Σε κάθε μια ενέργεια write (ασχέτως commit)? Σε τακτά χρονικά διαστήματα? Κάθε όποτε δεν έχει δουλειά το μηχάνημα ?... Dirty page: σελίδα που έχει αλλαχθεί στον buffer, αλλά όχι στο σκληρό δίσκο Hard Disk Buffer Program memory Άμεσα Πότε?

21 Δύο βασικοί τρόποι εγγραφής Steal: επιτρέπουμε μια σελίδα να γραφτεί στο δίσκο, χωρίς να έχει κάνει commit η δοσοληψία που την άλλαξε [No-steal, αν γράφω μόνο committed σελίδες] Force: επιβάλλουμε σε όλες τις σελίδες μιας δοσοληψίας να γραφτούν στο δίσκο, αμέσως μετά το commit [No-Force, αν κάποιες μπορεί και να μη γραφτούν]

22 Στην πράξη: Steal Γράφω μια μη commited σελίδα στο δίσκο, είτε γιατί γέμισαν οι buffers, είτε γιατί αν κάνει commit η δοσοληψία χωρίς να αλλάξει ξανά τη σελίδα κέρδισα σε χρόνο Κι αν αποτύχει η δοσοληψία? Τότε πρέπει να κάνω UNDO στην αλλαγή της σελίδας Dirty bit: κρατάω ένα bit που λέει αν η σελίδα είναι dirty ή όχι

23 Στην πράξη: No-Force Δεν γράφω μια commited σελίδα στο δίσκο, για να αποφύγω το κόστος εγγραφής (π.χ., λόγω φόρτου του συστήματος εκείνη τη στιγμή) Κι αν αποτύχει το σύστημα? Τότε πρέπει να κάνω REDO στην αλλαγή της σελίδας στο δίσκο

24 Write Ahead Log revisited Προτού γράψεις οτιδήποτε στη ΒΔ, καταχώρησε την αντίστοιχη εγγραφή στο log Για να γράψεις μια updated σελίδα από το buffer πίσω στο δίσκο, πρέπει στο log (στο δίσκο) να έχουν περαστεί οι παλιές τιμές για τα records της Για να κάνεις commit μια δοσοληψία πρέπει στο log (στο δίσκο) να έχουν γραφτεί όλες οι σχετικές log records

25 Με άλλα λόγια... ΠΡΙΝ γράψω μια σελίδα στη ΒΔ, γράφω όλα τα log records που την αφορούν στο δίσκο ΠΡΙΝ κάνω commit μια δοσοληψία, γράφω όλα τα log records που την αφορούν στο δίσκο Προσοχή: τα παραπάνω είναι περιορισμοί ορθότητας και όχι αλγόριθμος

26 Log entries στο σκληρό δίσκο και την κύρια μνήμη Έχω buffers στην κύρια μνήμη για το log. Log writer: Υπεύθυνος για να μεταφέρει σελίδες από τους log buffers στο (append only) log file

27 Σχόλια Steal: και να πας να κλέψεις στη ΒΔ, ΔΕΝ μπορείς να κλέψεις στο log No-Force: και να μην εξαναγκάσεις τις εγγραφές της ΒΔ να γραφούν στο δίσκο, πρέπει να γραφούν όλες οι log records Μην ξεχνάτε ότι και το log περνά από buffering!

28 Και τι κέρδισα? Για να γράψεις μια updated σελίδα από το buffer πίσω στο δίσκο, πρέπει στο log (στο δίσκο) να έχουν περαστεί οι παλιές τιμές για τα records της Σε περίπτωση αποτυχίας της δοσοληψίας, μπορώ να κάνω UNDO Για να κάνεις commit μια δοσοληψία πρέπει στο log (στο δίσκο) να έχουν γραφτεί όλες οι σχετικές log records Σε περίπτωση αποτυχίας του συστήματος, μπορώ να κάνω REDO

29 Checkpoints – Σημεία ελέγχου Περιοδικά, το σύστημα κάνει τις εξής ενέργειες: Σταματά κάθε άλλη ενέργεια Καταγράφει το σύνολο των ενεργών δοσοληψιών Γράφει (flush) όλους τους buffers με log records, στο δίσκο Γράφει (flush) όλους τους buffers με records της ΒΔ, στο δίσκο Γράφει στο log μια εγγραφή CHK (checkpoint)

30 Οπότε το log θα δείχνει κάπως έτσι... BOT (T1) LSN12,T1, PAGE32,… LSN13,T1, PAGE32,… BOT (T2) EOT (T1) LSN16,T2, PAGE45,… CHK {T2} {T2} είναι το σύνολο των ενεργών δοσοληψιών

31 Checkpoints Sharp checkpoint: το προαναφερθέν είδος checkpoint Fuzzy checkpoint: αντί να σταματήσει το σύστημα, γράφει μόνο ποιες είναι οι dirty pages και στέλνει την εγγραφή των σελίδων αυτών στο background. Δικαιούμαστε να ξαναπάρουμε checkpoint μόνο όταν η παρασκηνιακή διεργασία τελειώσει. Θεωρήστε sharp checkpoints

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

33 Ανάνηψη αν έχουμε WAL Έστω ότι το σύστημα αποτυγχάνει και πρέπει να το επαναφέρουμε (ήτοι, να επαναφέρουμε τη ΒΔ σε συνεπή μορφή). Η διαδικασία αυτή ονομάζεται ανάνηψη (recovery) ή ανάκαμψη ή επαναφορά Αν έχουμε χρησιμοποιήσει WAL κατά την κανονική λειτουργία του συστήματος, η ανάνηψη έχει 3 φάσεις: 1.Ανάλυση (DO) 2.UNDO 3.REDO

34 Φάση Ανάλυσης Διαβάζουμε το log από το τελευταίο CHK ως το τέλος Ανακαλύπτουμε νικητές (winners), ήτοι, δοσοληψίες που πρόλαβαν και έκαναν commit μέσα σε αυτό το διάστημα ηττημένους (losers), ήτοι δοσοληψίες που είτε δεν πρόλαβαν να κάνουν commit, είτε οι χρήστες τους τις έκαναν abort Εντοπίζουμε τις dirty pages τη στιγμή της αποτυχίας (βλ. στη συνέχεια)

35 Winners & losers Time tc tf Checkpoint (time tc) System failure (time tf) TransactionsTransactions T1 T2 T3 T5 T4 Source: An Introduction to Database Systems, C.J. Date, p. 381

36 Winners & losers Time tc tf Checkpoint (time tc) System failure (time tf) T1 T2 T3 T5 T4 δε μας αφορά winner loser

37 Φάση UNDO UNDO losers! Διαβάζουμε ανάποδα το log, από το τέλος προς την αρχή Κάθε πράξη που ανήκει σε δοσοληψία loser γίνεται UNDO Προσοχή: μπορεί μια loser να έχει ξεκινήσει πριν το checkpoint!

38 Φάση REDO REDO winners! Διαβάζουμε κανονικά το log, από το σημείο που κάναμε update την πιο παλιά buffer page ως το τέλος Κάθε πράξη που ανήκει σε δοσοληψία winner γίνεται REDO

39 Ανάνηψη αν έχουμε WAL LOG CHKΑποτυχία BOT παλαιότερης loser δοσοληψία Πιο παλιά dirty page ANALYSIS REDO UNDO

40 Εδώ τι θα κάναμε ? BOT (T1) LSN12,T1, PAGE32,… LSN13,T1, PAGE32,… BOT (T2) EOT (T1) LSN16,T2, PAGE45,… CHK Αποτυχία

41 Πώς εντοπίζω τις dirty pages? Έστω ότι σε κάθε σελίδα κρατάω ένα πεδίο pageLSN που καταγράφει το LSN της τελευταίας ενέργειας που έκανε update κάποιο record στη σελίδα Πώς μπορώ να βρω τις dirty pages όταν ανανήψει το σύστημα? Τι θα άλλαζε αν δεν κρατούσα αυτή την πληροφορία?

42 Ερωτήσεις κρίσεως... Πώς μπορώ να προφυλαχθώ από αποτυχίες του υλικού [με βάση όλα τα προηγούμενα]? Τι θα κέρδιζα/έχανα/άλλαζε αν πέρναγα τα updates στο δίσκο, μόνο στο commit [και όχι πιο πριν] ? Τι θα κέρδιζα/έχανα/άλλαζε αν έκανα υποχρεωτικώς flush τις dirty pages στο commit ?

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