©Silberschatz, Korth and Sudarshan1ΒΔ ΙΙ: Σύστημα επαναφοράς Σύστημα Επαναφοράς (Recovery System)  Κατηγοριοποίηση αποτυχιών/βλαβών  Δομή αποθήκευσης.

Slides:



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

Βάσεις Δεδομένων II Ευαγγελία Πιτουρά 1 Επεξεργασία Δοσοληψιών.
MicroWorlds Pro Διαδικασίες.
Κώστας Διαμαντάρας Τμήμα Πληροφορικής ΤΕΙ Θεσσαλονίκης 2011 Πολυεπεξεργαστές.
Λειτουργικό Σύστημα 2ο μέρος.
ΣΤΟΙΧΕΙΑ ΨΕΥΔΟΚΩΔΙΚΑ ΒΑΣΙΚΕΣ ΔΟΜΕΣ ΒΑΣΙΚΟΙ ΑΛΓΟΡΙΘΜΟΙ ΠΙΝΑΚΩΝ
Ζητήματα Σελιδοποίησης
1 Επεξεργασία Συναλλαγών. 2 Συναλλαγές m Η ταυτόχρονη εκτέλεση προγραμμάτων χρηστών είναι απαραίτητη για την καλή απόδοση ενός ΣΔΒΔ m Επειδή οι προσπελάσεις.
Προχωρημένα Θέματα Τεχνολογίας και Εφαρμογών Βάσεων Δεδομένων
1515 Διαχείριση Συναλλαγών  Συναλλαγές  Έλεγχος ταυτοχρονισμού  Επανάκτηση δεδομένων.
Εργασία Η υλοποίηση του αλγορίθμου συγχώνευσης θα πρέπει να χρησιμοποιεί την ιδέα των ροών (streams). Θα πρέπει να υπάρχουν δύο διαφορετικά είδη.
Βάσεις Δεδομένων II Διαχείριση Δοσοληψιών Πάνος Βασιλειάδης Σεπτέμβρης 2002
©Silberschatz, Korth and Sudarshan1 ΒΔ ΙΙ: Διαχείριση συναλλαγών Διαχείριση Συναλλαγών (Transaction Management)  Ορισμός της συναλλαγής  Καταστάσεις.
Μνημη τυχαιας προσπελασης (Random Access Memory - RAM)
ΔΕΞΙΟΤΗΤΕΣ ΕΠΙΚΟΙΝΩΝΙΑΣ 1 ΠΕΡΙΓΡΑΦΗ ΤΩΝ ΜΝΗΜΩΝ ΕΝΟΣ Η/Υ ΤΜΗΜΑ: Τ6 ΟΝΟΜΑΤΑ: ΣΕΛΑΛΜΑΖΙΔΗΣ ΤΑΣΟΣ ΦΙΛΙΑΣ ΑΝΤΩΝΗΣ ΦΙΛΙΑΣ ΑΝΤΩΝΗΣ ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙΔΕΥΤΙΚΟ ΙΔΡΥΜΑ.
Βάσεις Δεδομένων II Ευαγγελία Πιτουρά 1 Τεχνικές Ανάκαμψης.
Κεφάλαιο 2 Το Εσωτερικό του υπολογιστή
Κεφάλαιο 19 Τεχνικές Ανάκαμψης Βάσεων Δεδομένων (Recovery)
ΘΕΜΑΤΙΚΗ ΕΝΟΤΗΤΑ 2: ΘΕΜΑΤΑ ΘΕΩΡΗΤΙΚΗΣ ΕΠΙΣΤΗΜΗΣ Η/Υ
Βάσεις Δεδομένων II Ενότητα 6: Ανάκαμψη Γεωργία Γκαράνη Επίκουρος Καθηγήτρια Τμήμα Μηχανικών Πληροφορικής Τ.Ε. T.E.I. Θεσσαλίας.
ΕΣ 08: Επεξεργαστές Ψηφιακών Σημάτων © 2006 Nicolas Tsapatsoulis Αρχιτεκτονική Μνήμης Τμήμα Επιστήμη και Τεχνολογίας Τηλεπικοινωνιών Πανεπιστήμιο Πελοποννήσου.
Προχωρημένα Θέματα Τεχνολογίας και Εφαρμογών Βάσεων Δεδομένων Διαχείριση Συναλλαγών Πάνος Βασιλειάδης Μάρτιος 2014
1 Βάσεις Δεδομένων ΙII Επιμέλεια: ΘΟΔΩΡΗΣ ΜΑΝΑΒΗΣ Διαχείριση συναλλαγών Transaction Management T Manavis.
Βάσεις Δεδομένων II Ενότητα 7: Ταυτοχρονισμός Γεωργία Γκαράνη
Βάσεις Δεδομένων II Περίληψη: Τεχνικές Ανάνηψης Πάνος Βασιλειάδης Νοέμβρης 2002
ΘΕΜΑΤΙΚΗ ΕΝΟΤΗΤΑ 2: ΘΕΜΑΤΑ ΘΕΩΡΗΤΙΚΗΣ ΕΠΙΣΤΗΜΗΣ Η/Υ
Η Δομή Επανάληψης οι 3 Δομές Επανάληψης ή αλλιώς οι τρεις σωματοφύλακες… Η παρουσίαση της εντολής Μέχρις_ότου είναι από την εισήγηση των κ. Σ. Δουκάκη.
Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1 Εισαγωγή στην Επεξεργασία Ερωτήσεων.
Βάσεις Δεδομένων II Ευαγγελία Πιτουρά 1 Τεχνικές Ανάκαμψης.
ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ
Κεφάλαιο 10 – Υποπρογράμματα
1 Α. Βαφειάδης Αναβάθμισης Προγράμματος Σπουδών Τμήματος Πληροφορικής Τ.Ε.Ι Θεσσαλονίκης Μάθημα Προηγμένες Αρχιτεκτονικές Υπολογιστών Κεφαλαίο Τρίτο Συστήματα.
Βάσεις Δεδομένων II Ευαγγελία Πιτουρά 1 Τεχνικές Ανάκαμψης.
Βάσεις Δεδομένων II Ευαγγελία Πιτουρά 1 Επεξεργασία Δοσοληψιών.
Βάσεις Δεδομένων II Ευαγγελία Πιτουρά 1 ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ ΙΙ.
Βάσεις Δεδομένων II Ευαγγελία Πιτουρά 1 Τεχνικές Ανάκαμψης.
Κεφάλαιο 17 Εισαγωγή στη Θεωρία των Δοσοληψιών. Δοσοληψίες Η Έννοια της Δοσοληψίας Κατάσταση Δοσοληψίας Ταυτόχρονες Εκτελέσεις Σειριοποιησιμότητα Ανάκαμψη.
Προχωρημένα Θέματα Τεχνολογίας και Εφαρμογών Βάσεων Δεδομένων Τεχνικές Ανάνηψης Πάνος Βασιλειάδης Ιανουάριος 2008
Βάσεις Δεδομένων II Ευαγγελία Πιτουρά 1 ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ ΙΙ.
Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1 Ευρετήρια.
Μέγιστη ροή TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A AA A A Συνάρτηση χωρητικότητας Κατευθυνόμενο γράφημα.
1 Διαχείριση Έργων Πληροφορικής Διάλεξη 7 η Διαχείριση Πόρων.
Κρυφή μνήμη (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) είναι ειδικές θέσεις μνήμης υψηλής ταχύτητας που χρησιμοποιούνται για.
Για μτ από ατ μέχρι ττ [με_βήμα β] εντολές Τέλος_επανάληψης : περιοχή εντολών μτ : η μεταβλητή της οποίας η τιμή θα περάσει από την αρχική.
Μαγνητικός δίσκος (magnetic disk) Εισαγωγή στην Πληροφορκή1 Ο μαγνητικός δίσκος χρησιμοποιείται για μόνιμη αποθήκευση δεδομένων, παρέχοντας σχετικά μικρό.
1 State Diagrams. 2 Τα διαγράμματα καταστάσεων (State diagrams) χρησιμοποιούνται: Για να βοηθήσουν στην ανάπτυξη ενός συστήματος Για να βοηθήσουν στην.
ΜΑΘΗΜΑ: ΣΥΓΧΡΟΝΟ ΛΟΓΙΣΜΙΚΟ ΟΡΓΑΝΩΣΗ ΓΡΑΦΕΙΟΥ 5 ο ΕΡΓΑΣΤΗΡΙΟ: ΕΓΚΑΤΑΣΤΑΣΗ ΕΚΤΥΠΩΤΩΝ ΚΑΘΗΓΗΤΗΣ: ΓΡΗΓΟΡΙΟΣ Ν. ΚΑΡΑΤΑΣΙΟΣ.
Λειτουργικά Συστήματα
Δομή επιλογής Πολλές φορές για να λυθεί ένα πρόβλημα πρέπει να ελεγχθεί αν ισχύει κάποια συνθήκη Παράδειγμα 2: Να διαβαστεί ένας αριθμός και να επιστραφεί.
Ευρετήρια Βάσεις Δεδομένων Ευαγγελία Πιτουρά.
Δυναμικός Κατακερματισμός
ΑΛΓΟΡΙΘΜΟΣ ΠΡΟΒΛΗΜΑ ΑΛΓΟΡΙΘΜΟΣ ΛΥΣΗ
Μέγιστη ροή Κατευθυνόμενο γράφημα 12 Συνάρτηση χωρητικότητας
Λειτουργικά Συστήματα και Ασφάλεια Πληροφοριακών Συστημάτων ΔΙΕΡΓΑΣΙΕΣ
Αρχεσ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Η/Υ ΤΑξη Β΄
ΜΝΗΜΗ ΥΠΟΛΟΓΙΣΤΗ Ο υπολογιστής κατασκευάστηκε από τον άνθρωπο για να τον “διευκολύνει” σε κάποιες δύσκολες και επίπονες σωματικές μα πιο πολύ νοητικές.
Διάλεξη 6: Εξίσωση διάχυσης (συνέχεια)
Πίνακας Συμβόλων Διαλέξεις στο μάθημα: Μεταφραστές Γιώργος Μανής.
ΑΛΓΟΡΙΘΜΟΣ.
ΕΦΑΡΜΟΓΗ Κ.Ε.Α. Γνωριμία με την πλατφόρμα διαχείρισης του Κοινωνικού Εισοδήματος Αλληλεγγύης για χρήστες Δήμων Η.ΔΙ.Κ.Α. Α.Ε.
Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον ΑΕΠΠ
οι 3 Δομές Επανάληψης ή αλλιώς οι τρεις σωματοφύλακες…
Από τη Δομή Ακολουθίας στις Δομές Επανάληψης
Διαχρονικές Δομές Δεδομένων
Δυναμικός Κατακερματισμός
Μεταγράφημα παρουσίασης:

©Silberschatz, Korth and Sudarshan1ΒΔ ΙΙ: Σύστημα επαναφοράς Σύστημα Επαναφοράς (Recovery System)  Κατηγοριοποίηση αποτυχιών/βλαβών  Δομή αποθήκευσης  Επαναφορά και ατομικότητα  Επαναφορά βασισμένη στο ιστορικό (ή ημερολόγιο, Log) του συστήματος Πηγή: Silberschatz et al., “Database System Concepts”, 4 th ed. (Chapter 17) Μετάφραση στα Ελληνικά: © Γιάννης Θεοδωρίδης,

©Silberschatz, Korth and Sudarshan2ΒΔ ΙΙ: Σύστημα επαναφοράς Κατηγοριοποίηση αποτυχιών  Αποτυχία συναλλαγής :  Λογικά λάθη: η συναλλαγή δε μπορεί να ολοκληρωθεί εξαιτίας λάθους κάποιας εσωτερικής συνθήκης.  Λάθη συστήματος: το σύστημα της βάσης δεδομένων πρέπει να τερματίσει μια ενεργή συναλλαγή εξαιτίας μιας λανθασμένης συνθήκης (π.χ. αδιέξοδο).  Κατάρρευση συστήματος (system crash): μια απώλεια ισχύος ή κάποια άλλη αποτυχία λογισμικού ή υλικού προκαλεί ένα system crash.  Υπόθεση Fail-stop: τα περιεχόμενα της μόνιμης αποθήκευσης υποθέτουμε πως δε διαφθείρονται από ένα system crash.  Τα συστήματα βάσεων δεδομένων έχουν πολυάριθμους ελέγχους ακεραιότητας για την αποτροπή φθοράς των δεδομένων του δίσκου.  Αποτυχία του δίσκου: μια καταστροφή της κεφαλής ή παρόμοια αποτυχία του δίσκου καταστρέφει ολόκληρο ή ένα μέρος της αποθηκευμένης πληροφορίας στο δίσκο.  Η καταστροφή υποθέτουμε πως μπορεί να εντοπιστεί: τα συστήματα δίσκων χρησιμοποιούν αθροίσματα ελέγχου (checksums) για να εντοπίσουν τις αποτυχίες.

©Silberschatz, Korth and Sudarshan3ΒΔ ΙΙ: Σύστημα επαναφοράς Αλγόριθμοι επαναφοράς  Οι αλγόριθμοι επαναφοράς είναι τεχνικές που εγγυώνται τη συνέπεια της βάσης δεδομένων και την ατομικότητα και τη μονιμότητα μιας συναλλαγής παρά τις οποιεσδήποτε αποτυχίες.  Οι αλγόριθμοι επαναφοράς έχουν δύο μέρη: 1. Δράσεις που αναπτύσσονται κατά τη διάρκεια της εκτέλεσης των συναλλαγών για να εγγυηθούν την ύπαρξη επαρκούς πληροφορίας για την επαναφορά από αποτυχίες. 2. Δράσεις που αναπτύσσονται μετά από μία αποτυχία για την επαναφορά των περιεχομένων της βάσης σε μια κατάσταση που εγγυάται την ατομικότητα, συνέπεια και μονιμότητα.

©Silberschatz, Korth and Sudarshan4ΒΔ ΙΙ: Σύστημα επαναφοράς Δομή αποθήκευσης  Ασταθής (volatile) αποθήκευση:  Δεν επιβιώνει μετά από system crashes.  Παραδείγματα: κύρια μνήμη, μνήμη cache.  Σταθερή (non-volatile) αποθήκευση:  Επιβιώνει μετά από system crashes.  Παραδείγματα: δίσκοι, ταινίες, μνήμη flash, μόνιμη (battery backed up) RAM.  Ακλόνητη (stable) αποθήκευση:  Μια “μυθική” μορφή αποθήκευσης που επιβιώνει μετά από όλες τις αποτυχίες.  Προσεγγίζεται συντηρώντας πολλαπλά αντίγραφα σε διακριτά μόνιμα μέσα.

©Silberschatz, Korth and Sudarshan5ΒΔ ΙΙ: Σύστημα επαναφοράς Προσπέλαση δεδομένων (1)  Τα φυσικά blocks είναι εκείνα τα blocks που βρίσκονται στο δίσκο.  Τα Buffer blocks είναι εκείνα τα blocks που βρίσκονται προσωρινά στην κύρια μνήμη.  Οι μετακινήσεις των blocks μεταξύ της κυρίας μνήμης και του δίσκου ξεκινούν μέσω των ακόλουθων δύο λειτουργιών:  input(B): μεταφέρει το φυσικό block B στην κύρια μνήμη.  output(B): μεταφέρει το buffer block B στο δίσκο και αντικαθιστά εκεί το κατάλληλο φυσικό block.  Κάθε συναλλαγή T i έχει τη δική της ιδιωτική περιοχή λειτουργίας, στην οποία φυλάσσονται τοπικά αντίγραφα από όλα τα αντικείμενα δεδομένων που προσπελαύνονται και ενημερώνονται από αυτήν.  Το τοπικό αντίγραφο του αντικειμένου Χ που ανήκει στην T i καλείται x i.  Υποθέτουμε, για απλοποίηση, ότι κάθε αντικείμενο δεδομένων χωρά σε ένα απλό block και αποθηκεύεται μέσα σε αυτό.

©Silberschatz, Korth and Sudarshan6ΒΔ ΙΙ: Σύστημα επαναφοράς Προσπέλαση δεδομένων (2)  Η συναλλαγή μεταφέρει αντικείμενα δεδομένων μεταξύ των buffer blocks του συστήματος και της ιδιωτικής περιοχής λειτουργίας της με χρήση των ακόλουθων λειτουργιών:  read(X): αναθέτει την τιμή του αντικειμένου δεδομένων X στην τοπική μεταβλητή x i.  write(X): αναθέτει την τιμή της τοπικής μεταβλητής x i στο αντικείμενο δεδομένων {X} στο buffer block.  Και οι δυο αυτές εντολές μπορεί να επιβάλλουν την εισαγωγή μιας εντολής input(B X ) πριν την ανάθεση, εάν το block B X στο οποίο ανήκει το X δεν είναι ήδη στη μνήμη.  Οι συναλλαγές  Εκτελούν την read(X) όταν προσπελαύνουν το X για πρώτη φορά.  Όλες οι επακόλουθες προσπελάσεις γίνονται στο τοπικό αντίγραφο.  Μετά την τελευταία προσπέλαση, η συναλλαγή εκτελεί την write(X).  Η output(B X ) δε χρειάζεται να ακολουθεί αμέσως την write(X). Το σύστημα μπορεί να εκτελέσει την output λειτουργία, όταν θεωρεί πως πρέπει.

©Silberschatz, Korth and Sudarshan7ΒΔ ΙΙ: Σύστημα επαναφοράς Παράδειγμα προσπέλασης δεδομένων x Y A B x1x1 y1y1 buffer Buffer Block A Buffer Block B input(A) output(B) read(X) write(Y) δίσκος χώρος λειτουργίας της T 1 χώρος λειτουργίας της T 2 μνήμη x2x2

©Silberschatz, Korth and Sudarshan8ΒΔ ΙΙ: Σύστημα επαναφοράς Επαναφορά και ατομικότητα (1)  Η τροποποίηση της βάσης χωρίς εγγύηση ότι η συναλλαγή θα επικυρωθεί μπορεί να αφήσει τη βάση δεδομένων σε μια ασυνεπή κατάσταση.  Θεωρήστε τη συναλλαγή T i που μεταφέρει $50 από το λογαριασμό A στο λογαριασμό B. Ο στόχος είναι είτε να πραγματοποιηθούν όλες οι τροποποιήσεις στη βάση που γίνονται από την T i ή καμιά από αυτές.  Μπορεί να απαιτούνται πολλαπλές λειτουργίες εξόδου για την T i (για την εξαγωγή των A και B). Μια αποτυχία μπορεί να συμβεί αφού έχει γίνει μια από αυτές τις τροποποιήσεις, αλλά πριν γίνουν όλες.

©Silberschatz, Korth and Sudarshan9ΒΔ ΙΙ: Σύστημα επαναφοράς Επαναφορά και ατομικότητα (2)  Για να εγγυηθούμε για την ατομικότητα παρά τις πιθανές αποτυχίες, εξάγουμε πρώτα πληροφορία που περιγράφει τις τροποποιήσεις στην ακλόνητη αποθήκευση χωρίς να τροποποιείται η ίδια η βάση.  Μελετάμε την εξής προσέγγιση:  Επαναφορά βασισμένη στο ιστορικό του συστήματος (Log)  Υποθέτουμε (αρχικά) ότι οι συναλλαγές εκτελούνται σειριακά, δηλαδή η μία μετά την άλλη.

©Silberschatz, Korth and Sudarshan10ΒΔ ΙΙ: Σύστημα επαναφοράς Επαναφορά βασισμένη στο ιστορικό συστήματος (1)  Ένα ιστορικό συστήματος (log) φυλάσσεται στην ακλόνητη αποθήκευση.  Το ιστορικό συστήματος είναι μια ακολουθία από εγγραφές ιστορικού και συντηρεί μια καταγραφή των ενημερώσεων που έγιναν στη βάση.  Όταν μια συναλλαγή T i ξεκινά, καταχωρεί τον εαυτό της στο ιστορικό γράφοντας μια εγγραφή ιστορικού.  Πριν η T i εκτελέσει την λειτουργία write(X), προστίθεται μια εγγραφή στο ιστορικό, όπου V 1 είναι η τιμή του X πριν τη γραφή και V 2 είναι η τιμή που πρόκειται να γραφεί στο X.  Η εγγραφή ιστορικού σημειώνει ότι ότι η T i έχει εκτελέσει μια γραφή στο αντικείμενο δεδομένων X j. Το X j είχε τιμή V 1 πριν τη γραφή και θα έχει τιμή V 2 μετά τη γραφή.

©Silberschatz, Korth and Sudarshan11ΒΔ ΙΙ: Σύστημα επαναφοράς Επαναφορά βασισμένη στο ιστορικό συστήματος (2)  Όταν η T i ολοκληρώσει και την τελευταία της εντολή, γράφεται στο ιστορικό η εγγραφή.  Υποθέτουμε για την ώρα ότι οι εγγραφές ιστορικού γράφονται απευθείας στην ακλόνητη αποθήκευση (δηλαδή δεν τοποθετούνται σε έναν buffer).  Δυο προσεγγίσεις με χρήση ιστορικού:  Ετεροχρονισμένη τροποποίηση της βάσης.  Άμεση τροποποίηση της βάσης.

©Silberschatz, Korth and Sudarshan12ΒΔ ΙΙ: Σύστημα επαναφοράς Ετεροχρονισμένη τροποποίηση της βάσης (1)  Το σχήμα ετεροχρονισμένης τροποποίησης μιας βάσης δεδομένων καταγράφει όλες τις τροποποιήσεις στο ιστορικό, αλλά καθυστερεί όλες τις γραφές στη βάση έως ότου η συναλλαγή επικυρωθεί μερικώς.  Υποθέτει ότι οι συναλλαγές εκτελούνται σειριακά.  Η συναλλαγή ξεκινά γράφοντας την εγγραφή στο ιστορικό.  Μια λειτουργία write(X) προκαλεί την προσθήκη στο ιστορικό μιας εγγραφής, όπου V είναι η νέα τιμή για το X.  Σημείωση: η παλιά τιμή δε χρειάζεται για αυτό το σχήμα.  Η γραφή στο X δε γίνεται αυτή τη στιγμή, αλλά αναβάλλεται.  Όταν η T i επικυρώνεται μερικώς, η εγγραφή γράφεται στο ιστορικό.  Τέλος, οι εγγραφές του ιστορικού διαβάζονται και χρησιμοποιούνται για την πραγματική εκτέλεση των προηγούμενων γραφών που έχουν αναβληθεί.

©Silberschatz, Korth and Sudarshan13ΒΔ ΙΙ: Σύστημα επαναφοράς Ετεροχρονισμένη τροποποίηση της βάσης (2)  Κατά τη διάρκεια της επαναφοράς μετά από ένα crash, μια συναλλαγή χρειάζεται να εκτελεστεί ξανά αν και μόνο αν και η και η υπάρχουν στο ιστορικό.  Η εκ νέου εκτέλεση μιας συναλλαγής T i (redoT i ) θέτει την τιμή όλων των αντικειμένων δεδομένων που ενημερώνονται από τη συναλλαγή στις νέες τιμές.  Αποτυχίες συστήματος μπορούν να συμβούν ενώ:  Η συναλλαγή εκτελεί τις αρχικές ενημερώσεις, ή  Εκτελείται η διαδικασία επαναφοράς.  Παράδειγμα συναλλαγών T 0 and T 1 (η T 0 εκτελείται πριν T 1 ): T 0 : read (A)T 1 : read (C) A: - A - 50 C:-C- 100 Write (A) write (C) read (B) B:- B + 50 write (B)

©Silberschatz, Korth and Sudarshan14ΒΔ ΙΙ: Σύστημα επαναφοράς Ετεροχρονισμένη τροποποίηση της βάσης (3)  Παρακάτω δείχνουμε το ιστορικό όπως εμφανίζεται σε τρεις χρονικές στιγμές.  Εάν τη στιγμή της αποτυχίας το ιστορικό στην ακλόνητη αποθήκευση είναι όπως στην περίπτωση: (a) καμιά επανεκτέλεση δε χρειάζεται. (b) η redo(T 0 ) πρέπει να εκτελεστεί αφού η είναι παρούσα. (c) η redo(T 0 ) πρέπει να εκτελεστεί ακολουθούμενη από την redo(T 1 ) αφού οι και είναι παρούσες.

©Silberschatz, Korth and Sudarshan15ΒΔ ΙΙ: Σύστημα επαναφοράς Άμεση τροποποίηση της βάσης (1)  Το σχήμα άμεσης τροποποίησης μιας βάσης δεδομένων επιτρέπει οι ενημερώσεις της βάσης από μια μη επικυρωμένη συναλλαγή να γίνονται αμέσως μόλις εκτελεστούν οι αντίστοιχες εντολές γραφής.  Αφού μπορεί να χρειαστεί κάποια ακύρωση, τα ενημερωμένα ιστορικά πρέπει να έχουν και την παλιά τιμή και τη νέα τιμή.  Η ενημέρωση της εγγραφής του ιστορικού πρέπει να γίνει πριν ενημερωθεί το αντικείμενο της βάσης δεδομένων.  Υποθέτουμε ότι η εγγραφή του ιστορικού εξάγεται αμέσως στην ακλόνητη αποθήκευση.  Η έξοδος ενημερωμένων blocks μπορεί να λάβει χώρα οποιαδήποτε στιγμή πριν ή μετά την επικύρωση μιας συναλλαγής.  Η σειρά με την οποία εξάγονται τα blocks μπορεί να είναι διαφορετική από τη σειρά με την οποία γράφονται.

©Silberschatz, Korth and Sudarshan16ΒΔ ΙΙ: Σύστημα επαναφοράς Παράδειγμα άμεσης τροποποίησης της βάσης Ιστορικό Γραφή Έξοδος T o, B, 2000, 2050 A = 950 B = 2050 C = 600 B B, B C B A  Σημείωση: το B X δηλώνει το block που περιέχει το X. x1x1

©Silberschatz, Korth and Sudarshan17ΒΔ ΙΙ: Σύστημα επαναφοράς Άμεση τροποποίηση της βάσης (2)  Η διαδικασία επαναφοράς έχει δυο λειτουργίες αντί μίας:  undo(T i ): επαναφέρει όλα τα αντικείμενα δεδομένων που ενημερώθηκαν από την T i στις παλιές τους τιμές, πηγαίνοντας προς τα πίσω από την τελευταία εγγραφή του ιστορικού για την T i  redo(T i ): θέτει όλα τα αντικείμενα δεδομένων που ενημερώθηκαν από την T i στις νέες τιμές, πηγαίνοντας προς τα εμπρός από την πρώτη εγγραφή του ιστορικού για την T i.  Και οι δυο λειτουργίες πρέπει να είναι μοναδιαίες (idempotent), δηλαδή, ακόμα και αν η λειτουργία εκτελείται πολλές φορές, το αποτέλεσμα είναι το ίδιο σαν να εκτελούνταν μια φορά.  Απαραίτητο, αφού οι λειτουργίες μπορεί να εκτελεστούν εκ νέου κατά τη διάρκεια της επαναφοράς.  Κατά την επαναφορά μετά από μια αποτυχία:  Η συναλλαγή T i χρειάζεται να ακυρωθεί, εάν το ιστορικό περιέχει την εγγραφή, αλλά δεν περιέχει την εγγραφή.  Η συναλλαγή T i χρειάζεται να εκτελεστεί εκ νέου, εάν το ιστορικό περιέχει και την εγγραφή και την εγγραφή.  Οι ακυρώσεις των λειτουργιών προηγούνται των εκ νέου εκτελέσεων των λειτουργιών.

©Silberschatz, Korth and Sudarshan18ΒΔ ΙΙ: Σύστημα επαναφοράς Παράδειγμα επαναφοράς άμεσης τροποποίησης βάσης  Παρακάτω δείχνουμε το ιστορικό όπως εμφανίζεται σε τρεις χρονικές στιγμές. Οι ενέργειες επαναφοράς σε καθεμιά από τις παραπάνω περιπτώσεις είναι: (a) undo (T 0 ): Το B επαναφέρεται στο 2000 και το A στο (b) undo (T 1 ) και redo (T 0 ): Το C επαναφέρεται στο 700 και μετά τα A και B τίθενται στο 950 και 2050 αντιστοίχως. (c) redo (T 0 ) και redo (T 1 ): Τα A και B τίθενται στο 950 και 2050 αντιστοίχως. Στη συνέχεια, το C γίνεται 600.

©Silberschatz, Korth and Sudarshan19ΒΔ ΙΙ: Σύστημα επαναφοράς Σημεία ελέγχου (1) - Checkpoints  Τα προβλήματα της διαδικασίας επαναφοράς που συζητήσαμε προηγουμένως: 1. Η σάρωση όλου του ιστορικού είναι χρονοβόρα. 2. Μπορεί χωρίς λόγο να εκτελέσουμε εκ νέου συναλλαγές οι οποίες ήδη έχουν εξάγει τα αποτελέσματά τους στη βάση.  Απλοποίηση της διαδικασίας επαναφοράς εκτελώντας περιοδικά ελέγχους σε προκαθορισμένα σημεία ελέγχου (check points) 1. Έξοδος όλων των εγγραφών του ιστορικού που βρίσκονται επί του παρόντος στην κύρια μνήμη στην ακλόνητη αποθήκευση. 2. Έξοδος όλων των τροποποιημένων buffer blocks στο δίσκο. 3. Γράψιμο μιας εγγραφής του ιστορικού στην ακλόνητη αποθήκευση.

©Silberschatz, Korth and Sudarshan20ΒΔ ΙΙ: Σύστημα επαναφοράς Σημεία ελέγχου (2)  Κατά τη διάρκεια της επαναφοράς πρέπει να θεωρήσουμε μόνο την πιο πρόσφατη συναλλαγή T i που ξεκίνησε πριν το σημείο ελέγχου και τις συναλλαγές που ξεκίνησαν μετά την T i. 1. Εξετάστε προς τα πίσω από το τέλος του ιστορικού για να βρείτε την πιο πρόσφατη εγγραφή. 2. Συνεχίστε ψάχνοντας προς τα πίσω μέχρι να βρεθεί μια εγγραφή. 3. Πρέπει να θεωρήσετε μόνο το τμήμα του ιστορικού που ακολουθεί την παραπάνω start εγγραφή. Το προηγούμενο τμήμα του ιστορικού μπορεί να αγνοηθεί κατά τη διάρκεια της επαναφοράς και μπορεί να διαγραφεί όποτε αυτό είναι επιθυμητό. 4. Για όλες τις συναλλαγές (ξεκινώντας από την T i ή έπειτα) χωρίς, εκτελέστε undo(T i ). (Αυτό γίνεται μόνο στην περίπτωση άμεσης τροποποίησης.) 5. Εξετάζοντας προς τα εμπρός το ιστορικό, για όλες τις συναλλαγές που ξεκινούν από την T i ή έπειτα με ένα, εκτελέστε redo(T i ).

©Silberschatz, Korth and Sudarshan21ΒΔ ΙΙ: Σύστημα επαναφοράς Παράδειγμα σημείων ελέγχου  Η συναλλαγή T 1 μπορεί να αγνοηθεί (οι ενημερώσεις έχουν ήδη εξαχθεί στο δίσκο εξαιτίας του σημείου ελέγχου).  Οι συναλλαγές T 2 και T 3 επανεκτελούνται.  Η συναλλαγή T 4 ακυρώνεται. TcTc TfTf T1T1 T2T2 T3T3 T4T4 Σημείο ελέγχου Αποτυχία συστήματος