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

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

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

Επεξεργασία οσοληψιών

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

ΒΑΣΕΙΣ Ε ΟΜΕΝΩΝ ΙΙ. Επεξεργασία οσοληψιών. το πώς βλέπει το Σ Β τα προγράµµατα των χρηστών. οσοληψία (transaction)

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

Επεξεργασία οσοληψιών (συνέχεια)

ΒΑΣΕΙΣ Ε ΟΜΕΝΩΝ ΙΙ. Σχετικά µε το µάθηµα: Αξιολόγηση. Σχετικά µε το µάθηµα:faq ΟΧΙ ΝΑΙ. Λιγότερος! (ας πούµε το 1/3-1/4)

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

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

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

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

Βάσεις Δεδομένων ΙΙ. Διάλεξη 1 η Επεξεργασία Δοσοληψιών. Σύστημα Επεξεργασίας Δοσοληψιών

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

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

Επεξεργασία οσοληψιών (συνέχεια)

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

Επεξεργασία οσοληψιών

ΗΥ360 Αρχεία και Βάσεις εδοµένων ιδάσκων: ημήτρης Πλεξουσάκης

ΗΥ360 Αρχεία και Βάσεις εδοµένων ιδάσκων: ημήτρης Πλεξουσάκης

Επεξεργασία οσοληψιών

ΗΥ360 Αρχεία και Βάσεις εδοµένων ιδάσκων:. Πλεξουσάκης

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

Μάθημα Βάσεις Δεδομένων ΙΙ - Ασκήσεις Επανάληψης. 01 Εκφώνηση

Βάσεις Δεδομένων. Τ.Ε.Ι. Ιονίων Νήσων Σχολή Διοίκησης και Οικονομίας - Λευκάδα

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

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

Σηµειώσεις Βάσεων εδοµένων. ιαχείριση οσοληψιών. Γιάννης Θεοδωρίδης. Τµήµα Πληροφορικής, Πανεπιστήµιο Πειραιά.

Επεξεργασία οσοληψιών

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

Βάσεις Δεδομένων και Ευφυή Πληροφοριακά Συστήματα Επιχειρηματικότητας. Πληροφοριακά Συστήματα και Βάσεις Δεδομένων. Δρ. Κωνσταντίνος Χ.

Υ- 07 Παράλληλα Συστήματα Transac9onal memory

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

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ - ΤΜΗΥΠ ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ ΙI

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ - ΤΜΗΥΠ ΒΑΣΕΙΣ Ε ΟΜΕΝΩΝ ΙI

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

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

Άσκηση 1 (15 μονάδες) (Επεκτατός Κατακερματισμός)

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

ΕΙΣΑΓΩΓΗ ΣΤΑ ΣΥΣΤΗΜΑΤΑ ΔΙΑΧΕΙΡΙΣΗΣ ΒΑΣΕΩΝ ΔΕΔΟΜΕΝΩΝ

10 η Διάλεξη Python Βάσεις δεδομένων στη python

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

Δοσοληψίες. Κατανεμημένα Συστήματα

Δοσοληψίες. Κατανεμημένα Συστήματα

Πανεπιστήµιο Κρήτης Τµήµα Επιστήµης Υπολογιστών. ΗΥ-460 Συστήµατα ιαχείρισης Βάσεων εδοµένων ηµήτρης Πλεξουσάκης Βασίλης Χριστοφίδης

Βάσεις Δεδομένων και Ευφυή Πληροφοριακά Συστήματα Επιχειρηματικότητας. Πληροφοριακά Συστήματα και Βάσεις Δεδομένων. Δρ. Κωνσταντίνος Χ.

Αποθήκευση και Οργάνωση αρχείων. Βάσεις Δεδομένων Μάθημα 2ο Διδάσκων: Μαρία Χαλκίδη

Συνάφεια Κρυφής Μνήµης σε Επεκτάσιµα Μηχανήµατα

Βάσεις Δεδομένων ΙΙ. Διάλεξη 4 η Aρχιτεκτονικές ΣΒΔ. Αρχιτεκτονικές Συστημάτων Βάσεων Δεδομένων

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ

Σχεδίαση Βάσεων Δεδομένων. Ενότητα 5-Κατανεμημένα συστήματα ΒΔ Μανώλης Μαραγκουδάκης

περισσότερα από ένα παραδείγµατα εντολών της Στήλης Β).

#2 Αλγόριθµοι, οµές εδοµένων και Πολυπλοκότητα

Οργάνωση αρχείων: πως είναι τοποθετηµένες οι εγγραφές ενός αρχείου όταν αποθηκεύονται στο δίσκο

Τεχνικές Ελέγχου Συνδροµικότητας

Ακεραιότητα και Ασφάλεια Μέρος 1 Σχεδιασμός Βάσεων Δεδομένων

ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ : ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΤΑΞΗ : Γ ΛΥΚΕΙΟΥ ΣΠΟΥΔΕΣ ΟΙΚΟΝΟΜΙΑΣ & ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΜΗΜΑ: Γ2

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

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

Κεφάλαιο 13 Δοσοληψίες

Κατανεμημένες Βάσεις Δεδομένων

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ

Τα δεδοµένα συνήθως αποθηκεύονται σε αρχεία στο δίσκο Για να επεξεργαστούµε τα δεδοµένα θα πρέπει αυτά να βρίσκονται στη

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

Οργάνωση Η/Υ. Γιώργος ηµητρίου. Μάθηµα 9 ο. Πανεπιστήµιο Θεσσαλίας - Τµήµα Μηχανικών Η/Υ, Τηλεπικοινωνιών και ικτύων

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΤΕΧΝΟΛΟΓΙΚΗΣ ΚΑΤΕΥΘΥΝΣΗΣ (ΚΥΚΛΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΗΡΕΣΙΩΝ) Γ ΤΑΞΗΣ 2003

Λειτουργικά Συστήματα (ΗΥ321)

30 min κάθε «φάση» Pipeline: Ένα παράδειγµα από.τη καθηµερινή ζωή. 1. Πλυντήριο. 2. Στεγνωτήριο. 3. ίπλωµα. 4. αποθήκευση. προσέγγιση για 4.

Πρόβληµα : Πώς θα λύναµε αυτό το πρόβληµα αν είχαµε µόνο χαρτί και µολύβι, και κάποιος µας έλεγε τους αριθµούς προφορικά?

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ - ΤΜΗΥΠ ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ ΙI

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

Δυναμικός Κατακερματισμός. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Επεξεργασία Ερωτήσεων

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

Μετάδοση εδοµένων και ίκτυα υπολογιστών ΙΙ Εργαστηριακή Άσκηση 3. Σύνδεση υπολογιστών στα Windows

ΠΛΗ111. Ανοιξη Μάθηµα 3 ο. Συνδεδεµένες Λίστες. Τµήµα Ηλεκτρονικών Μηχανικών και Μηχανικών Υπολογιστών Πολυτεχνείο Κρήτης

ΑΣΚΗΣΗ 1. Structural Programming

Βασικές Έννοιες Δοµών Δεδοµένων

Προγραµµατισµός Ι (ΗΥ120)

Κεφάλαιο 7 : Είδη, Τεχνικές, και Περιβάλλοντα Προγραµµατισµού

Θεµατολόγιο. Α) Πρακτικά Θέµατα στον Έλεγχο Ταυτοχρονισµού

Ανοχή απέναντι σε Σφάλµατα Fault Tolerance

Παράδειγµα: Προσοµοίωση µιας ουράς FIFO Οι λειτουργίες που υποστηρίζονται από µια ουρά FIFO είναι: [enq(q,x), ack(q)] [deq(q), return(q,x)] όπου x είν

ΠΛΗ111. Ανοιξη Μάθηµα 7 ο. έντρο. Τµήµα Ηλεκτρονικών Μηχανικών και Μηχανικών Υπολογιστών Πολυτεχνείο Κρήτης

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

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΤΕΧΝΟΛΟΓΙΚΗΣ ΚΑΤΕΥΘΥΝΣΗΣ (ΚΥΚΛΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΗΡΕΣΙΩΝ) Γ ΤΑΞΗΣ 2003

Τεχνικές Αναπαράστασης αλγορίθµων Ψευδοκώδικας Διάγραµµα Ροής Αλγοριθµικές δοµές (Ακολουθία Επιλογή Επανάληψη)

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

ΕΠΕΞΕΡΓΑΣΙΑ ΚΑΙ ΒΕΛΤΙΣΤΟΠΟΙΗΣΗ ΕΡΩΤΗΣΕΩΝ

Πως θα αποθηκεύσει τη λίστα με τα ψώνια του και θα την ανακτήσει στο Σ/Μ; και πως θα προσθέσει στη λίστα του επιπλέον προϊόντα;

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΛΥΣΗ ΣΤΗΝ ΕΥΤΕΡΗ ΑΣΚΗΣΗ

Δυναμικός Κατακερματισμός. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

(Κεφάλαιο 2.7 και 12) Αρχεία στην C. ( ιάλεξη 13) ιδάσκων: ηµήτρης Ζεϊναλιπούρ

ΗΜΥ 100 Εισαγωγή στην Τεχνολογία ιάλεξη 11

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

Ιδιοκτησία Αντικειµένου

Αποθήκευση Δεδομένων. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Προγραμματισμός Ι. Είσοδος/Έξοδος. Δημήτρης Μιχαήλ. Ακ. Έτος Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

Transcript:

Επιθυµητές Ιδιότητες µιας οσοληψίας Τεχνικές Ανάκαµψης Ιδιότητες οσοληψιών Αtomicity (ατοµικότητα) - είτε όλες οι πράξεις είτε καµία Consistency (συνέπεια) - διατήρηση συνέπειας της Β Isolation (αποµόνωση) - δεν αποκαλύπτει ενδιάµεσα αποτελέσµατα Durability (µονιµότητα ή διάρκεια) -µετά την επικύρωση µιας δοσοληψίας οι αλλαγές δεν είναι δυνατόν να χαθούν 1 2 Επιθυµητές Ιδιότητες µιας οσοληψίας Ανάκαµψη από Αποτυχίες Αtomicity (ατοµικότητα) Consistency (συνέπεια) Isolation (αποµόνωση) Durability (µονιµότητα ή διάρκεια) ΤΕΧΝΙΚΕΣ ΑΝΑΚΑΜΨΕΙΣ ΥΠΕΥΘΥΝΟΤΗΤΑ ΤΟΥ ΠΡΟΓΡΑΜΜΑΤΙΣΤΗ ΕΛΕΓΧΟΣ ΣΥΝ ΡΟΜΙΚΟΤΗΤΑΣ ΤΕΧΝΙΚΕΣ ΑΝΑΚΑΜΨΕΙΣ Είδη Αποτυχιών υο κατηγορίες: καταστροφή ή όχι της µόνιµης αποθήκευσης (δίσκου) Παραδείγµατα αποτυχιών... 3 4 Παραδείγµατα Αποτυχιών Είδη Αποτυχιών 1. Αποτυχία του υπολογιστή (system crash) 2. Σφάλµα δοσοληψίας ή συστήµατος (π.χ., προγραµµατιστικό λάθος) 3. Εφαρµογή ελέγχου συνδροµικότητας 4. Πρόβληµα δίσκου 5. Φυσικά προβλήµατα και καταστροφές Στόχος της ανάκαµψης: επαναφορά στην πιο πρόσφατη συνεπή κατάσταση ακριβώς πριν τη στιγµή της αποτυχίας Ηµερολόγιο Συστήµατος (system log) Πληροφορίες για κάθε δοσοληψία DB βδ στο δίσκο το µοντέλο του συστήµατος σελίδες Προσωρινή αποθήκευση (καταχωρητές µνήµης) ή cache 5 6

Ηµερολόγιο Συστήµατος (Log) Ανάκαµψη από Αποτυχίες Για να είναι δυνατή η ανάκαµψη από αποτυχίες, καταχωρούνται πληροφορίες για τις πράξεις των δοσοληψιών Αποθηκεύονται στο δίσκο Τύποι πληροφορίας: έναρξη δοσοληψίας εγγραφή στοιχείου (παλιά, νέα τιµή) Περιπτώσεις αποτυχίας 1. Καταστροφική αποτυχία (δίσκου) Backup + (backuped) log 2. Μη καταστροφική αποτυχία Χρήση µόνο του disk log ανάγνωση στοιχείου επικύρωση/ακύρωση 7 8 Ιδιότητες οσοληψιών Επιθυµητές Ιδιότητες µιας οσοληψίας Αtomicity (ατοµικότητα) - είτε όλες οι πράξεις είτε καµία Durability (µονιµότητα ή διάρκεια) - µετά την επικύρωση µιας δοσοληψίας οι αλλαγές δεν είναι δυνατόν να χαθούν Ατοµικότητα: Οι δοσοληψίες µπορεί να αναιρεθούν ( Rollback ). ιάρκεια: Tι θα συµβεί αν το Σ Β καταρρεύσει? Επιθυµητή συµπεριφορά µετά από µια αποτυχία: T1, T2 & T3 πρέπει να έχουν διάρκεια (redoεπανάληψη) T4 & T5 πρέπει να αναιρεθούν (undoαναίρεση) T1 T2 T3 T4 T5 αποτυχία 9 Ατοµικότητα: όχι επικυρωµένες -- undo -- αναίρεση ιάρκεια: επικυρωµένες -- redo -- επανάληψη Στην πιο εύκολη περίπτωση όλες οι ενηµερώσεις µιας δοσοληψίας γράφονται στον τοπικό χώρο εργασίας της δοσοληψίας η βδ ενηµερώνεται µόνον αφού µια δοσοληψία φτάσει στο σηµείο επικύρωσής της 11 12

Στην πραγµατικότητα --Steal (flush) :: κάποιες ενηµερώσεις µιας δοσοληψίας γράφονται στον δίσκο (βδ) πριν η δοσοληψία επικυρωθεί Γιατί; βελτίωση throughput Πρόβληµα: Ατοµικότητα (αναίρεση (undo) στην περίπτωση που η δοσοληψία αποτύχει) Στην πραγµατικότητα -- No Force :: κάποιες ενηµερώσεις µιας δοσοληψίας δε γράφονται στον δίσκο (βδ) ακόµα και αφού η δοσοληψία επικυρωθεί Γιατί; βελτίωση χρόνου απόκρισης Πρόβληµα: ιάρκεια (επανάληψη (redo) στην περίπτωση που το σύστηµα αποτύχει) 13 14 Κάποια ορολογία: Force No Steal Εύκολο Steal όλες οι ενηµερώσεις µιας δοσοληψίας γράφονται στον τοπικό χώρο εργασίας της δοσοληψίας -- η βδ ενηµερώνεται µόνον αφού µια δοσοληψία φτάσει στο σηµείο επικύρωσης της ετεροχρονισµός των ενηµερώσεων -- deferred updates χωρίς αναίρεση/ µε επανάληψη (no undo/redo) No Force Επιθυµητό κάποιες ενηµερώσεις µιας δοσοληψίας γράφονται στη βδ πριν µια δοσοληψία φτάσει στο σηµείο επικύρωσης της άµεση ενηµέρωση -- immediate updates µε αναίρεση/ µε επανάληψη (undo/no redo) 15 16 Πίνακας Τροποποίησης Ηµερολόγιο Συστήµατος (Log) Κατάλογος σελίδων που είναι στη µνήµη (cache) υαδικό ψηφίο τροποποίησης (dirty bit) Καταχώρηση τύπου ΕΠΑΝΑΛΗΨΗ (REDO) Περιέχει την νέα τιµή (AFter IMage) Καταχώρηση τύπου ANAIΡΕΣΗ (UNDO) Περιέχει την παλιά τιµή (BeFore IMage) 17 18

Προεγγραφή Ηµερολογίου Προεγγραφή Ηµερολογίου Το πρωτόκολλο προεγγραφής ηµερολογίου (Write Ahead Log) (1) Η καταχώρηση στο log για µια εγγραφή γράφεται στο δίσκο πριν οι αντίστοιχες σελίδες να γραφούν στο δίσκο (2) Πριν την επικύρωση (commit) µιας δοσοληψίας όλες οι καταχωρήσεις του log που την αφορούν γράφονται στο δίσκο Το (1) δίνει ατοµικότητα Το (2) δίνει διάρκεια Θα δούµε µια συγκεκριµένη υλοποίηση (ARIES) 19 Ηµερολόγιο Συστήµατος (Log) ARIES Σειριακή εγγραφή στο log Για κάθε εγγραφή στοιχείου, στο log µια καταχώρηση: <XID, pageid, offset, length, old data, new data> ID δοσοληψίας αριθµός σελίδας θέση στη σελίδα µήκος παλιά τιµή (undo) νέα τιµή (redo) Κάθε καταχώρηση στο log έχει ένα µοναδικό αριθµό Log Sequence Number (LSN). LSNs πάντα αυξάνουν. Το log γράφεται στο δίσκο. Το σύστηµα κρατά τη µεταβλητή : το µέγιστο LSN που γράφτηκε στο δίσκο µέχρι τώρα Καταχωρήσεις του log ήδη flushed στο δίσκο Log tail στην 21 22 ARIES ARIES: Καταχωρήσεις Log Πεδία LogRecord: Κάθε σελίδα δεδοµένων περιέχει έναν pagelsn: το πιο πρόσφατο LSN για εγγραφή σε αυτή τη σελίδα WAL: Πριν γραφτεί µια σελίδα, pagelsn WAL(1) Η καταχώρηση στο log για µια εγγραφή γράφεται στο δίσκο πριν οι αντίστοιχες σελίδες να γραφούν στο δίσκο Καταχωρήσεις του log ήδη flushed στο δίσκο pagelsn Προηγούµενο LSN για τη δοσοληψία Μόνο για εγγραφές prevlsn XID type pageid length offset before-image after-image Τύποι καταχωρήσεων Update Commit Abort End Compensation Log Records (CLRs) για πράξεις UNDO 23 24

ARIES: Άλλες δοµές ARIES: Άλλες δοµές : Μια εγγραφή για κάθε ενεργή δοσοληψία Πεδία εγγραφής: XID,, (running/commited/aborted), (τελευταίο LSN που αφορά τη δοσοληψία). XID Πίνακας Τροποποιηµένων : Μια εγγραφή για κάθε τροποποιηµένη σελίδα στη µνήµη. Πεδία εγγραφής -- LSN της καταχώρησης του log της πρώτης αλλαγής στη σελίδα PID 25 26 ARIES: H Γενική Εικόνα ARIES: Παράδειγµα LSN LogRecords prevlsn XID type pageid length offset before-image after-image DB Σελίδες εδοµένων σε κάθε σελίδα pagelsn Πίνακας Τροποποιηµένων Πίνακας Τροποποιηµένων 00 05 40 45 60 begin_checkpoint end_checkpoint update: T1 writes P5 update T2 writes P3 T1 abort CLR: Undo T1 LSN T1 End update: T3 writes P1 update: T2 writes P5 prevlsns 27 28 ARIES: Οµαλή Εκτέλεση οσοληψίας ARIES: Επικύρωση οσοληψίας Μια ακολουθία από reads & writes, που τελειώνουν µε commit ή abort. Υποθέτουµε ότι οι εγγραφές στο δίσκο είναι ατοµικές Αυστηρό 2PL αυστηρά χρονοπρογράµµατα STEAL, NO-FORCE, µε προεγγραφή log (Write- Ahead Logging) 1. Γράψε µια καταχώρηση τύπου commit στο log 2. Γράψε στο δίσκο όλες τις καταχωρήσεις του log έως το της δοσοληψίας (WAL) 3. Τέλος του Commit 4. Γράψε µια καταχώρηση τύπου end στο log 29

ARIES: Aκύρωση οσοληψίας ARIES: Aκύρωση οσοληψίας Αρχικά, ας θεωρήσουµε ότι δε συµβαίνουν αποτυχίες ΣΤΟΧΟΣ: UNDO (αναίρεση) των εγγραφών (updates) «Παίζουµε» το log της δοσοληψίας ανάποδα 1. Γράφουµε στο log µια καταχώρηση τύπου abort 2. Παίρνουµε το της δοσοληψίας από τον Πίνακα οσοληψιών 3. Ακολουθούµε την αλυσίδα των καταχωρήσεων στο log βάσει του πεδίου prevlsn 31 32 ARIES: Aκύρωση οσοληψίας ARIES: Σηµεία Ελέγχου Για να το εκτελέσουµε την αναίρεση πρέπει να έχουµε κλειδί στα δεδοµένα Πριν να γράψουµε την προηγούµενη τιµή σε µια σελίδα, γράφουµε στο log µια καταχώρηση τύπου CLR Η καταχώρηση CLR έχει ένα πεδίο undonextlsn: επόµενο LSN προς αναίρεση Μια καταχώρηση τύπου CLR δε χρειάζεται να αναιρεθεί (αλλά µπορεί να χρειαστεί να επαναληφθεί) Στο τέλος, γράψε µια καταχώρηση τύπου end Περιοδικά, το Σ Β δηµιουργεί ένα σηµείο ελέγχου (checkpoint), µε σκοπό τη µείωση του χρόνου που χρειάζεται για ανάκαµψη στην περίπτωση αποτυχίας Γράφει τον Πίνακα οσοληψιών και τον Πίνακα Τροποποιηµένων στο log Γράφει στο log: µια εγγραφή begin_checkpoint: που δηλώνει πότε άρχισε το chkpt. µια εγγραφή end_checkpoint: που δηλώνει πότε τέλειωσε το chkpt 33 34 ARIES: Σηµεία Ελέγχου ARIES: H Γενική Εικόνα Ασαφές (fuzzy) Οι δοσοληψίες εξακολουθούν να εκτελούνται. Οι πίνακες είναι ακριβείς ως προς το begin_checkpoint εν γράφονται τροποποιηµένες σελίδες στο δίσκο Το LSN της εγγραφής του chkpt γράφεται σε ασφαλή χώρο (master record) LogRecords prevlsn XID type pageid length offset before-image after-image DB Σελίδες εδοµένων σε κάθε σελίδα pagelsn master record Πίνακας Τροποποιηµένων 35 36

ARIES: Παράδειγµα ARIES: Ανάκαµψη από Αποτυχία Πίνακας Τροποποιηµένων LSN 00 05 40 45 60 begin_checkpoint end_checkpoint update: T1 writes P5 update T2 writes P3 T1 abort CLR: Undo T1 LSN T1 End update: T3 writes P1 update: T2 writes P5 CRASH, RESTART prevlsns Τρεις Φάσεις ΑΝΑΛΥΣΗ -- ανακατασκευή τον πινάκων του συστήµατος: ποιες σελίδες είναι τροποποιηµένες, ποια είναι η κατάσταση των δοσοληψιών ΕΠΑΝΑΛΗΨΗ (REDO) -- επανάληψη όλων των δοσοληψιών ΑΚΥΡΩΣΗ (UNDO) -- αναίρεση των δοσοληψιών που δεν ήταν επικυρωµένες 37 38 ARIES: Η Φάση της Ανάλυσης ARIES: Η Φάση της Ανάλυσης ΑΝΑΛΥΣΗ -- ανακατασκευή τον πινάκων του συστήµατος (ΠΙΝΑΚΑΣ ΟΣΟΛΗΨΙΩΝ & ΠΙΝΑΚΑΣ ΤΡΟΠΟΠΟΙΗΜΕΝΩΝ ΣΕΛΙ ΩΝ) χρησιµοποιώντας το τελευταίο ολοκληρωµένο checkpoint: ποια είναι η κατάσταση των δοσοληψιών από τότε ποιες σελίδες είναι τροποποιηµένες από τότε Αρχή από το τελευταίο checkpoint Εύρεση του µε χρήση του master record Βρίσκουµε το αντίστοιχο begin_chkpoint 39 40 ARIES: Η Φάση της Ανάλυσης ARIES: Η Φάση της Ανάλυσης ιαβάζουµε το log forward ξεκινώντας από το begin_chkpoint. Αν βρούµε καταχώρηση τύπου: end: σβήνουµε τη δοσοληψία από τον Πίνακα οσοληψιών άλλο τύπο: εισαγωγή δοσοληψίας (αν δεν υπάρχει ήδη) αλλαγή = LSN, και αλλαγή κατάστασης αν commit (αλλιώς πρέπει να αναιρεθεί) update (εγγραφή): Αν η P δεν είναι στον Πίνακα Τροποποιηµένων εισαγωγή του P στον πίνακα µε = LSN. Αποτέλεσµα οι πίνακες όπως ήταν τη στιγµή που γράψαµε το τελευταίο log στο δίσκο (τελευταία επικύρωση δοσοληψίας) : όλες οι δοσοληψίες που ήταν ενεργές τη στιγµή της αποτυχίας Πίνακας Τροποποιηµένων : όλες οι σελίδες που έχουν τροποποιηθεί (κάποιες µπορεί να έχουν γραφτεί ήδη στο δίσκο, µα δεν έχουµε αυτή τη πληροφορία στο log) 41 42

ARIES: Ανάκαµψη από Αποτυχία ARIES: Η Φάση της Επανάληψης ΑΝΑΛΥΣΗ -- Τρεις Φάσεις Επαναλαµβάνουµε το log ώστε να φτάσουµε στην κατάσταση τη στιγµή της αποτυχίας Επαναλαµβάνουµε τις εγγραφές ακόµα και των δοσοληψιών που ακυρώθηκαν (aborted) ΕΠΑΝΑΛΗΨΗ (REDO) -- επανάληψη όλων των δοσοληψιών ΑΚΥΡΩΣΗ (UNDO) -- αναίρεση των δοσοληψιών που δεν ήταν επικυρωµένες Προχωράµε στο log forward ξεκινώντας από το µικρότερο στον Πίνακα Τροποποιηµένων Αρχαιότερη ενηµέρωση που ίσως να µην έχει γραφτεί στο δίσκο 43 44 ARIES: Η Φάση της Επανάληψης ARIES: Η Φάση της Επανάληψης Για κάθε καταχώρηση τύπου update ή CLR, επανέλαβε την πράξη εκτός αν: η σελίδα δεν είναι στον Πίνακα Τροποποιηµένων η σελίδα είναι στον Πίνακα Τροποποιηµένων αλλά > LSN pagelsn(στο δίσκο) LSN Σηµείωση: δε γνωρίζουµε ποιες σελίδες έχουν γραφτεί στο δίσκο Για να επαναλάβεις µια πράξη: επανεκτέλεση θέσε pagelsn = LSN δε χρειάζεται log Στο τέλος end για όσες τύπου C 45 46 ARIES: Ανάκαµψη από Αποτυχία ARIES: Η Φάση της Αναίρεσης ΑΝΑΛΥΣΗ -- Τρεις Φάσεις ΕΠΑΝΑΛΗΨΗ (REDO) -- επανάληψη όλων των δοσοληψιών ΑΚΥΡΩΣΗ (UNDO) -- αναίρεση των δοσοληψιών που δεν ήταν επικυρωµένες Κατασκευή λίστας ToUndo = { της Τ Τ δοσοληψία προς αναίρεση} δοσοληψίες προς αναίρεση: δοσοληψίες ενεργές κατά την αποτυχία 47 48

ARIES: Η Φάση της Αναίρεσης 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. 49 Παλιότερη καταχώρηση log δοσοληψίας ενεργής κατά την αποτυχία Μικρότερο στον Πίνακα Τροποποιηµένων µετά την Ανάλυση Τελευταίο chkpt ΑΠΟΤΥΧΙΑ A R U Άρχισε από ένα σηµείο ελέγχου (που βρίσκεται µέσω του master record). Τρεις Φάσεις. Εύρεση ποιες δοσοληψίες µετά το σηµείο ελέγχου επικυρώθηκαν, ποιες ακυρώθηκαν (ΑΝΑΛΥΣΗ). REDO όλες τις δοσοληψίες. (repeat history) UNDO το αποτέλεσµα των αποτυχηµένων δοσοληψιών ARIES: Παράδειγµα ARIES: Παράδειγµα Πίνακας Τροποποιηµένων ToUndo LSN 00 05 40 45 60 begin_checkpoint end_checkpoint update: T1 writes P5 update T2 writes P3 T1 abort CLR: Undo T1 LSN T1 End update: T3 writes P1 update: T2 writes P5 CRASH, RESTART prevlsns 51 Πίνακας Τροποποιηµένων ToUndo LSN 00,05 40,45 60 70 80,85 90 begin_checkpoint, end_checkpoint update: T1 writes P5 update T2 writes P3 undonextlsn T1 abort CLR: Undo T1 LSN, T1 End update: T3 writes P1 update: T2 writes P5 CRASH, RESTART CLR: Undo T2 LSN 60 CLR: Undo T3 LSN, T3 end CRASH, RESTART CLR: Undo T2 LSN, T2 end 52 Τεχνικές Ανάκαµψης Εφεδρικά αντίγραφα Σκιώδης Σελιδοποίηση 53