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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Στοιχεία από την αρχιτεκτονική των μικροϋπολογιστών

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

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

Το «κλειστό» σύστημα. Ανοικτές επικοινωνίες... Εισαγωγή στην Τεχνολογία της Πληροφορικής. Εισαγωγή στην τεχνολογία της πληροφορικής

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

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

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

Γενική οργάνωση υπολογιστή «ΑΒΑΚΑ»

Εισαγωγή στο Προγραμματισμό για Μηχανολόγους Οδηγός Προετοιμασίας για τη Τελική Εξέταση

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

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

Αρχεία Ένα αρχείο αποτελείται από μία σειρά ομοειδών δεδομένων που ονομάζονται λογικές εγγραφές (logical record)

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

ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙΔΕΥΤΙΚΟ ΙΔΡΥΜΑ ΛΑΜΙΑΣ. A. Μετατροπή αριθμών 1. Μετατροπή αριθμών από δεκαδικό σε δυαδικό σύστημα αρίθμησης

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

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

ΘΕΜΑ 1ο Α. 1-6 Σωστό Λάθος Μονάδες 12 Β. Στήλης Στήλης Β Στήλης Α Στήλης Β).

Συναλλαγές. Εαρινό Εξάμηνο Τμήμα Μηχανικών Η/Υ και Πληροϕορικής Πολυτεχνική Σχολή, Πανεπιστήμιο Πατρών. Συναλλαγές. Βάσεις Δεδομένων ΙΙ

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

Βάσεις Δεδομένων 2. Φροντιστήριο Δοσοληψίες Τεχνικές ελέγχου συνδρομικότητας. Ημερ: 05/5/2009 Ακ.Έτος

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

Υ- 07 Παράλληλα Συστήματα Συνέπεια και συνοχή μνήμης

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

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

ΟΡΓΑΝΩΣΗ ΚΑΙ ΣΧΕΔΙΑΣΗ Η/Υ

Πανεπιστήμιο Θεσσαλίας Τμήμα Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών Τμήμα Πληροφορικής

Σκοπός. Εργαστήριο 6 Εντολές Επανάληψης

ΡΟΜΠΟΤΙΚΗ. ΕΡΓΑΣΙΑ ΠΑΝΩ ΣΤΗΝ ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΝΧΤ ΚΑΙ ΤΑ ΠΡΩΤΟΚΟΛΛΑ ΕΠΙΚΟΙΝΩΝΙΑΣ BLUETOOTH, I2C και serial communication

Επαναληπτικές ασκήσεις

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

2η ΑΣΚΗΣΗ ΣΤΗΝ ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΥΠΟΛΟΓΙΣΤΩΝ Ακ. έτος , 5ο Εξάμηνο Σχολή ΗΜ&ΜΥ

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

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

Προτεινόμενες εργασίες Προγραμματισμού Διαδικτύου

Υ- 01 Αρχιτεκτονική Υπολογιστών Back- end: χρονοπρογραμματισμός, εντολές προσπέλασης μνήμης

Πλειάδες φαντάσματα (phantoms)

Επαναληπτικό διαγώνισμα στην Α.Ε.Π.Π - 18 / Απριλίου / 2010 ΘΕΜΑ 1

Υπάρχουν δύο τύποι μνήμης, η μνήμη τυχαίας προσπέλασης (Random Access Memory RAM) και η μνήμη ανάγνωσης-μόνο (Read-Only Memory ROM).

Πληροφορική 2. Δομές δεδομένων και αρχείων

Κεφ.11: Ευρετήρια και Κατακερματισμός

Εργαστήριο 4. Εαρινό Εξάμηνο ΠΡΟΣΟΧΗ: Αρχίστε νωρίς το Εργαστήριο 4. Οι ασκήσεις είναι πιο απαιτητικές από τα προηγούμενα εργαστήρια.

Προβλήματα ταυτόχρονης εκτέλεσης (για νήματα με κοινή μνήμη)

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

Οργάνωση επεξεργαστή (2 ο μέρος) ΜΥΥ-106 Εισαγωγή στους Η/Υ και στην Πληροφορική

ΤΡΙΩΡΗ ΓΡΑΠΤΗ ΔΟΚΙΜΑΣΙΑ

Η ΔΟΜΗ ΕΠΑΝΑΛΗΨΗΣ Εντολές Επανάληψης REPEAT UNTIL, FOR, WHILE

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

Transcript:

Βάσεις Δεδομένων ΙΙ Διάλεξη 3 η Tεχνικές Aνάκαμψης Δ. Χριστοδουλάκης - Α. Φωκά Τμήμα Μηχανικών Η/Υ & Πληροφορικής - Εαρινό Εξάμηνο 2007 Επιθυμητές Ιδιότητες μιας Δοσοληψίας Ιδιότητες Δοσοληψιών Αtomicity (ατομικότητα) - είτε όλες οι πράξεις είτε καμία Consistency (συνέπεια) - διατήρηση συνέπειας της ΒΔ Isolation (απομόνωση) - δεν αποκαλύπτει ενδιάμεσα αποτελέσματα Durability (μονιμότητα ή διάρκεια) - μετά την επικύρωση μιας δοσοληψίας οι αλλαγές δεν είναι δυνατόν να χαθούν 1

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

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

Ημερολόγιο Συστήματος (Log) Για να είναι δυνατή η ανάκαμψη από αποτυχίες, καταχωρούνται πληροφορίες για τις πράξεις των δοσοληψιών Αποθηκεύονται στο δίσκο Τύποι πληροφορίας: έναρξη δοσοληψίας εγγραφή στοιχείου (παλιά, νέα τιμή) ανάγνωση στοιχείου επικύρωση/ακύρωση Ανάκαμψη από Αποτυχίες Περιπτώσεις αποτυχίας 1. Καταστροφική αποτυχία (δίσκου) Backup + (backuped) log 2. Μη καταστροφική αποτυχία Χρήση μόνο του disk log 4

Επιθυμητές Ιδιότητες μιας Δοσοληψίας Ιδιότητες Δοσοληψιών Αtomicity (ατομικότητα) - είτε όλες οι πράξεις είτε καμία Durability (μονιμότητα ή διάρκεια) - μετά την επικύρωση μιας δοσοληψίας οι αλλαγές δεν είναι δυνατόν να χαθούν Έννοιες Ανάκαμψης Ατομικότητα: Οι δοσοληψίες μπορεί να αναιρεθούν ( Rollback ). Διάρκεια: Tι θασυμβείαντοσδβδκαταρρεύσει? Επιθυμητή συμπεριφορά μετά από μια αποτυχία: T1, T2 & T3 πρέπει να έχουν διάρκεια (redoεπανάληψη) T4 & T5 πρέπει να αναιρεθούν (undoαναίρεση) T1 T2 T3 T4 T5 αποτυχία 5

Έννοιες Ανάκαμψης Ατομικότητα: όχι επικυρωμένες -- undo αναίρεση Διάρκεια: επικυρωμένες -- redo -- επανάληψη Έννοιες Ανάκαμψης Στην πιο εύκολη περίπτωση όλες οι ενημερώσεις μιας δοσοληψίας γράφονται στον τοπικό χώρο εργασίας της δοσοληψίας η βδ ενημερώνεται μόνον αφού μια δοσοληψία φτάσει στο σημείο επικύρωσής της 6

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

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

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

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

Ημερολόγιο Συστήματος (Log) Σειριακή εγγραφή στο log Για κάθε εγγραφή στοιχείου, στο log μια καταχώρηση: <XID, pageid, offset, length, old data, new data> ID δοσοληψίας αριθμός σελίδας θέση στη σελίδα μήκος παλιά τιμή (undo) νέα τιμή (redo) ARIES Κάθε καταχώρηση στο log έχει ένα μοναδικό αριθμό Log Sequence Number (LSN). LSNs πάντα αυξάνουν. Το log γράφεται στο δίσκο. Το σύστημα κρατά τη μεταβλητή flushedlsn: το μέγιστο LSN που γράφτηκε στο δίσκο μέχρι τώρα flushedlsn Καταχωρήσεις του log ήδη flushed στο δίσκο Αν το σύστημα αποτύχει, μένουμε με το «πράσινο» κομμάτι Log tail στην RAM 11

ARIES Κάθε σελίδα δεδομένων περιέχει έναν pagelsn: το πιο πρόσφατο LSN για εγγραφή σε αυτή τη σελίδα Καταχωρήσεις του log ήδη flushed στο δίσκο WAL: Πριν γραφτεί μια σελίδα, pagelsn flushedlsn flushedlsn pagelsn WAL(1) Ηκαταχώρησηστοlog για μια εγγραφή γράφεται στο δίσκο πριν οι αντίστοιχες σελίδες να γραφούν στο δίσκο Ακόμα και αν η δοσοληψία αναιρεθεί μπορούμε να χρησιμοποιήσουμε το log γιαναγίνειundo ηεγγραφή Πεδία LogRecord: ARIES: Καταχωρήσεις Log Προηγούμενο LSN για την ίδια δοσοληψία Μόνο για εγγραφές prevlsn XID type pageid length offset before-image after-image Τύποι καταχωρήσεων Update Commit Abort End Compensation Log Records (CLRs) για πράξεις UNDO 12

ARIES: Άλλες δομές Πίνακας Δοσοληψιών: Μιαεγγραφήγιακάθεενεργήδοσοληψία Πεδία εγγραφής: XID, status, (running/commited/aborted), lastlsn (τελευταίο LSN που αφορά τη δοσοληψία). XID status lastlsn ARIES: Άλλες δομές Πίνακας Τροποποιημένων Σελίδων: Μια εγγραφή για κάθε τροποποιημένη σελίδα στη μνήμη. Πεδία εγγραφής reclsn -- LSN της καταχώρησης του log της πρώτης αλλαγής στη σελίδα PID reclsn 13

ARIES: H Γενική Εικόνα LOG LogRecords prevlsn XID type pageid length offset before-image after-image DB Σελίδες Δεδομένων σε κάθε σελίδα pagelsn RAM Πίνακας Δοσοληψιών lastlsn status Πίνακας Τροποποιημένων Σελίδων reclsn flushedlsn ARIES: Παράδειγμα LSN LOG RAM Πίνακας Δοσοληψιών lastlsn status Πίνακας Τροποποιημένων Σελίδων reclsn flushedlsn 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 14

ARIES: Ομαλή Εκτέλεση Δοσοληψίας Μια ακολουθία από reads & writes, που τελειώνουν με commit ή abort. Υποθέτουμε ότι οι εγγραφές στο δίσκο είναι ατομικές Αυστηρό 2PL αυστηρά χρονοπρογράμματα STEAL, NO-FORCE, με προεγγραφή log (Write-Ahead Logging) ARIES: Επικύρωση Δοσοληψίας 1. Γράψε μια καταχώρηση τύπου commit στο log 2. Γράψε στο δίσκο όλες τις καταχωρήσεις του log έως το lastlsn της δοσοληψίας flushedlsn lastlsn (WAL) 3. Τέλος του Commit 4. Γράψε μια καταχώρηση τύπου end στο log 15

ARIES: Aκύρωση Δοσοληψίας Αρχικά, ας θεωρήσουμε ότι δε συμβαίνουν αποτυχίες ΣΤΟΧΟΣ: UNDO (αναίρεση) των εγγραφών (updates) ARIES: Aκύρωση Δοσοληψίας «Παίζουμε» το log της δοσοληψίας ανάποδα 1. Γράφουμε στο log μια καταχώρηση τύπου abort 2. Παίρνουμε το lastlsn της δοσοληψίας από τον Πίνακα Δοσοληψιών 3. Ακολουθούμε την αλυσίδα των καταχωρήσεων στο log βάσει του πεδίου prevlsn 16

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

ARIES: Σημεία Ελέγχου Ασαφές (fuzzy) Οι δοσοληψίες εξακολουθούν να εκτελούνται. Οι πίνακες είναι ακριβείς ως προς το begin_checkpoint Δεν γράφονται τροποποιημένες σελίδες στο δίσκο Το LSN της εγγραφής του chkpt γράφεται σε ασφαλή χώρο (master record) ARIES: H Γενική Εικόνα LOG LogRecords prevlsn XID type pageid length offset before-image after-image DB Σελίδες Δεδομένων σε κάθε σελίδα pagelsn master record RAM Πίνακας Δοσοληψιών lastlsn status Πίνακας Τροποποιημένων Σελίδων reclsn flushedlsn 18

ARIES: Παράδειγμα LSN LOG RAM Πίνακας Δοσοληψιών lastlsn status Πίνακας Τροποποιημένων Σελίδων reclsn flushedlsn 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 ARIES: Ανάκαμψη από Αποτυχία Τρεις Φάσεις ΑΝΑΛΥΣΗ -- ανακατασκευή τον πινάκων του συστήματος: ποιες σελίδες είναι τροποποιημένες, ποια είναι η κατάσταση των δοσοληψιών ΕΠΑΝΑΛΗΨΗ (REDO) -- επανάληψη όλων των δοσοληψιών ΑΚΥΡΩΣΗ (UNDO) -- αναίρεση των δοσοληψιών που δεν ήταν επικυρωμένες 19

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

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

Τεχνικές Ανάκαμψης από Σφάλματα Άσκηση 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 Πίνακας Τροποποιημένων Σελίδων ARIES: Ανάκαμψη από Αποτυχία Τρεις Φάσεις ΑΝΑΛΥΣΗ -- ΕΠΑΝΑΛΗΨΗ (REDO) -- επανάληψη όλων των δοσοληψιών ΑΚΥΡΩΣΗ (UNDO) -- αναίρεση των δοσοληψιών που δεν ήταν επικυρωμένες 22

ARIES: Η Φάση της Επανάληψης Επαναλαμβάνουμε το log ώστε να φτάσουμε στην κατάσταση τη στιγμή της αποτυχίας Επαναλαμβάνουμε τις εγγραφές ακόμα και των δοσοληψιών που ακυρώθηκαν (aborted) Προχωράμε στο log forward ξεκινώντας από το μικρότερο reclsn στον Πίνακα Τροποποιημένων Σελίδων Αρχαιότερη ενημέρωση που ίσως να μην έχει γραφτεί στο δίσκο ARIES: Η Φάση της Επανάληψης Για κάθε καταχώρηση τύπου update ή CLR, επανέλαβε την πράξη εκτός αν: η σελίδα δεν είναι στον Πίνακα Τροποποιημένων Σελίδων η σελίδα είναι στον Πίνακα Τροποποιημένων Σελίδων αλλά reclsn > LSN pagelsn (στο δίσκο) LSN Σημείωση: δε γνωρίζουμε ποιες σελίδες έχουν γραφτεί στο δίσκο 23

ARIES: Η Φάση της Επανάληψης Για να επαναλάβεις μια πράξη: επανεκτέλεση θέσε pagelsn = LSN δε χρειάζεται log Στο τέλος end για όσες τύπου C Τεχνικές Ανάκαμψης από Σφάλματα Άσκηση 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, γιατί; 24

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

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} 26

ARIES: Ανάκαμψη από Αποτυχία Παλιότερη καταχώρηση log δοσοληψίας ενεργής κατά την αποτυχία Μικρότερο reclsn στον Πίνακα Τροποποιημένων Σελίδων μετά την Ανάλυση Τελευταίο chkpt ΑΠΟΤΥΧΙΑ A R U Άρχισε από ένα σημείο ελέγχου (που βρίσκεται μέσω του master record). Τρεις Φάσεις. Εύρεση ποιες δοσοληψίες μετά το σημείο ελέγχου επικυρώθηκαν, ποιες ακυρώθηκαν (ΑΝΑΛΥΣΗ). REDO όλες τις δοσοληψίες. (repeat history) UNDO το αποτέλεσμα των αποτυχημένων δοσοληψιών ARIES: Παράδειγμα LSN LOG RAM Πίνακας Δοσοληψιών lastlsn status Πίνακας Τροποποιημένων Σελίδων reclsn flushedlsn ToUndo 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 27

RAM Πίνακας Δοσοληψιών lastlsn status Πίνακας Τροποποιημένων Σελίδων reclsn flushedlsn ToUndo LSN 00,05 10 20 30 40,45 50 60 70 80,85 90 ARIES: Παράδειγμα LOG 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 Τεχνικές Ανάκαμψης από Σφάλματα Στο ΑRIES υποθέτουμε αυστηρό 2PL, άρα όχι διάδοση ανακλήσεων, εγγραφές Γενικά μπορεί να χρειαστεί ανάκληση (άρα στο log εκτός των εντολών εγγραφής και εντολές ανάγνωσης, για να ελέξουμε ποιες πρέπει να ανακληθούν) 28

Τεχνικές Ανάκαμψης Εφεδρικά αντίγραφα Σκιώδης Σελιδοποίηση 29