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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ΑΣΚΗΣΗ 1. Structural Programming

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

ΗΥ360 Αρχεία και Βάσεις εδοµένων

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

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

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

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

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

Εικονική Μνήµη. Κεφάλαιο 8. Dr. Garmpis Aristogiannis - EPDO TEI Messolonghi

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

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

3. Σελιδοποίηση μνήμης 4. Τμηματοποίηση χώρου διευθύνσεων

ΠΡΟΓΡΑΜΜΑ ΣΠΟΥ ΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ

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

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

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

Initialize each person to be free. while (some man is free and hasn't proposed to every woman) { Choose such a man m w = 1 st woman on m's list to

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

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

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

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

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

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

Φύλλο εργασίας 3 - Χριστουγεννιάτικα φωτάκια (σταδιακή αύξηση και μείωση φωτεινότητας ενός LED) Το κύκλωμα σε breadboard

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 10 Ατοµικότητα: όχι επικυρωµένες -- 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 20 Ηµερολόγιο Συστήµατος (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 για να γίνει undo η εγγραφή Καταχωρήσεις του 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 10 20 30 40 45 50 60 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 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 30

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 10 20 30 40 45 50 60 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 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: Ανάκαµψη από Αποτυχία Άσκηση 8 Φάση της Ανάλυσης 00 begin_checkpoint 10 end_checkpoint 20 update: T1 writes P5 40 T2 Commit 50 T2 end 60 update: T3 writes P3 Τ1 abort 70 T3 running 60 P5 20 P3 60 Πίνακας Τροποποιηµένων ΑΝΑΛΥΣΗ -- Τρεις Φάσεις ΕΠΑΝΑΛΗΨΗ (REDO) -- επανάληψη όλων των δοσοληψιών 70 T1 abort ΑΚΥΡΩΣΗ (UNDO) -- αναίρεση των δοσοληψιών που δεν ήταν επικυρωµένες 43 44 ARIES: Η Φάση της Επανάληψης ARIES: Η Φάση της Επανάληψης Επαναλαµβάνουµε το log ώστε να φτάσουµε στην κατάσταση τη στιγµή της αποτυχίας Επαναλαµβάνουµε τις εγγραφές ακόµα και των δοσοληψιών που ακυρώθηκαν (aborted) Προχωράµε στο log forward ξεκινώντας από το µικρότερο στον Πίνακα Τροποποιηµένων Αρχαιότερη ενηµέρωση που ίσως να µην έχει γραφτεί στο δίσκο Για κάθε καταχώρηση τύπου update ή CLR, επανέλαβε την πράξη εκτός αν: η σελίδα δεν είναι στον Πίνακα Τροποποιηµένων η σελίδα είναι στον Πίνακα Τροποποιηµένων αλλά > LSN pagelsn(στο δίσκο) LSN Σηµείωση: δε γνωρίζουµε ποιες σελίδες έχουν γραφτεί στο δίσκο 45 46 ARIES: Η Φάση της Επανάληψης Τεχνικές Ανάκαµψης από Σφάλµατα Για να επαναλάβεις µια πράξη: επανεκτέλεση θέσε pagelsn = LSN δε χρειάζεται log Άσκηση 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 P5 20 T3 running 60 P3 60 Πίνακας Τροποποιηµένων Φάση της Επανάληψης (REDO) Ξεκινάµε από το 20, γιατί; Στο τέλος end για όσες τύπου C 47 48

ARIES: Ανάκαµψη από Αποτυχία ARIES: Η Φάση της Αναίρεσης ΑΝΑΛΥΣΗ -- Τρεις Φάσεις ΕΠΑΝΑΛΗΨΗ (REDO) -- επανάληψη όλων των δοσοληψιών ΑΚΥΡΩΣΗ (UNDO) -- αναίρεση των δοσοληψιών που δεν ήταν επικυρωµένες Κατασκευή λίστας ToUndo = { της Τ Τ δοσοληψία προς αναίρεση} δοσοληψίες προς αναίρεση: δοσοληψίες ενεργές κατά την αποτυχία 49 50 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. Άσκηση 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 P5 20 T3 running 60 P3 60 Πίνακας Τροποποιηµένων Φάση της Επανάληψης (REDO) Ξεκινάµε από το 20, γιατί; Φάση της Αναίρεσης (UNDO) ToUndo = {70, 60} 51 52 ARIES: Ανάκαµψη από Αποτυχία ARIES: Παράδειγµα Παλιότερη καταχώρηση log δοσοληψίας ενεργής κατά την αποτυχία Μικρότερο στον Πίνακα Τροποποιηµένων µετά την Ανάλυση Τελευταίο chkpt ΑΠΟΤΥΧΙΑ A R U Άρχισε από ένα σηµείο ελέγχου (που βρίσκεται µέσω του master record). Τρεις Φάσεις. Εύρεση ποιες δοσοληψίες µετά το σηµείο ελέγχου επικυρώθηκαν, ποιες ακυρώθηκαν (ΑΝΑΛΥΣΗ). REDO όλες τις δοσοληψίες. (repeat history) UNDO το αποτέλεσµα των αποτυχηµένων δοσοληψιών 53 Πίνακας Τροποποιηµένων ToUndo LSN 00 05 10 20 30 40 45 50 60 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 prevlsns 54

Πίνακας Τροποποιηµένων ToUndo LSN 00,05 10 20 30 40,45 50 60 70 80,85 90 ARIES: Παράδειγµα begin_checkpoint, end_checkpoint update: T1 writes P5 update T2 writes P3 undonextlsn 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 55 Τεχνικές Ανάκαµψης από Σφάλµατα Στο ΑRIES υποθέτουµε αυστηρό 2PL, άρα όχι διάδοση ανακλήσεων, εγγραφές Γενικά µπορεί να χρειαστεί ανάκληση (άρα στο log εκτός των εντολών εγγραφής και εντολές ανάγνωσης, για να ελέξουµε ποιες πρέπει να ανακληθούν) 56 Τεχνικές Ανάκαµψης Εφεδρικά αντίγραφα Σκιώδης Σελιδοποίηση 57