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

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

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

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

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

Έλεγχος Ταυτοχρονισμού

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Έλεγχος Ταυτοχρονισμού

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

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

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

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

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

Έλεγχος Ταυτοχρονισμού

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

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

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

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

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

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

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

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

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

Μέσα Αποθήκευσης. Ιεραρχία μνήμης Μαγνητικοί δίσκοι Συστοιχίες δίσκων RAID Οπτικοί δίσκοι Μαγνητικές ταινίες Άλλα μέσα αποθήκευσης

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

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

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

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

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

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

Κατανεµηµένες Συναλλαγές Ασφαλείας Πολλών Επιπέδων

ΚΕΦΑΛΑΙΟ 9 ΒΑΣΙΚΕΣ ΕΝΤΟΛΕΣ

ΕΥΧΑΡΙΣΤΙΕΣ. της εφαρµογής που υλοποιήσαµε, αλλά και προτάσεις για µελλοντικές εφαρµογές µε βάση την τεχνογνωσία που αποκτήσαµε.

Διαχείριση Πολιτισμικών Δεδομένων

Θέματα Υλοποίησης Σχεσιακών ΣΔΒΔ

Κεφ. 10: Δομές Αποθήκευσης

Λειτουργικά Συστήματα Κεφάλαιο 2 Οργάνωση Συστήματος Αρχείων 2.1 Διαχείριση Αρχείων και Σύστημα Αρχείων(File System)

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

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

Πίνακας περιεχομένων. Πρόλογος...xi. 1. Παρουσίαση της Oracle Αρχιτεκτονική της Oracle...42

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

Τμήμα Μηχανικών Παραγωγής και Διοίκησης

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

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

Οργάνωση και Αρχιτεκτονική Υπολογιστών. Κεφάλαιο 7.4

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

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

Εισαγωγή στο περιβάλλον Code::Blocks

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

ΕΡΓΑΣΤΗΡΙΟ 3: Προγραμματιστικά Περιβάλλοντα και το Πρώτο Πρόγραμμα C

Θέμα: Σκληρός Δίσκος

Βάσεις Περιβαλλοντικών Δεδομένων

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

Οργάνωση Υπολογιστών (IΙI)

Μάθημα 2 ο ΟΡΓΑΝΩΣΗ ΣΥΣΤΗΜΑΤΟΣ ΑΡΧΕΙΩΝ

Διαχείριση Πολιτισμικών Δεδομένων

Symantec Backup Exec System Recovery 7.0 Server Edition. Πλήρης Επαναφορά Συστημάτων Windows Μέσα σε Λίγα Λεπτά και όχι σε Ώρες ή Ημέρες

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

Αναφορά (1/2) Μπορούμε να ορίσουμε μια άλλη, ισοδύναμη αλλά ίσως πιο σύντομη, ονομασία για ποσότητα (μεταβλητή, σταθερή, συνάρτηση, κλπ.

Πίνακας περιεχομένων. Πρόλογος...xi. 1. Παρουσίαση της Oracle Αρχιτεκτονική της Oracle...42

Λιβανός Γιώργος Εξάμηνο 2017Β

ΠΛΗΡΟΦΟΡΙΚΗ Ι Εργαστήριο 1 MATLAB ΠΛΗΡΟΦΟΡΙΚΗ Ι ΕΡΓΑΣΤΗΡΙΟ 1. Θέμα εργαστηρίου: Εισαγωγή στο MATLAB και στο Octave

STORAGE AREA NETWORK. Σπουδαστές: Δόση Νικολέτα Καρακούση Πελαγία 30/5/2014 1

Λειτουργικά Συστήματα Ι. Καθηγήτρια Παπαδάκη Αναστασία

ΔΙΑΧΥΤΑ ΚΑΙ ΕΝΣΩΜΑΤΩΜΕΝΑ ΣΥΣΤΗΜΑΤΑ

Λιβανός Γιώργος Εξάμηνο 2017Β

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

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

Οδηγός γρήγορης εκκίνησης του PowerSuite

ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ Η/Υ, ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ ΚΑΙ ΔΙΚΤΥΩΝ, ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ

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

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

Αρχιτεκτονική Υπολογιστών

Προγραμματισμός Ι (HY120)

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

Αρχιτεκτονική υπολογιστών

Μάριος Αγγελίδης

Transcript:

Επανάκτηση δεδομένων (εμπλουτισμένο υλικό) http://delab.csd.auth.gr/courses/c_dbimpl/

Ευχαριστίες Μέρος του υλικού είναι βασισμένο στο βιβλίο Database Systems: The Complete Book 2

Επανάκτηση ηδεδομένων Οι συχνότερες αιτίες βλάβης ή αστοχίας (failure) που οδηγούν σε διακοπή της λειτουργίας του συστήματος είναι: πτώση συστήματος, λόγω εσφαλμένης λειτουργίας του υλικού ή του λογισμικού συστήματος, πρόβλημα στο μέσο αποθήκευσης, το οποίο μπορεί να οφείλεται σε καταστροφή της μαγνητικής επιφάνειας του δίσκου, του μηχανικού ή του ηλεκτρονικού υλικού του δίσκου, σφάλμα λογισμικού εφαρμογής, το οποίο οφείλεται συνήθως σε σφάλμα εκτέλεσης (run time error) κατά τη διάρκεια ενημέρωσης των δεδομένων της ΒΔ, φυσικά αίτια,, όπως πυρκαγιές, σεισμοί κλπ. Υπάρχει ανάγκη ύπαρξης μηχανισμών επανάκτησης (recovery) δεδομένων, ώστε, μετά από βλάβη ή αστοχία, να επανέλθει η ΒΔ στην κανονική της κατάσταση, όπου πληρούνται όλοι οι περιορισμοί ακεραιότητας. 3

Ιδιότητες συναλλαγών ACID Ατομικότητα (Αtomicity): αν υπάρχει έστω και μία εντολή της συναλλαγής, η οποία αποτυγχάνει να εκτελεσθεί, τότε ολόκληρη η συναλλαγή αποτυγχάνει επίσης. Συνέπεια (Consistency): it η συναλλαγή πρέπει να μετατρέπει τη βάση δεδομένων από μία συνεπή κατάσταση σε μία άλλη συνεπή κατάσταση η( (τα δεδομένα πρέπει να είναι ορθά). Οι μηχανισμοί ακεραιότητας δεδομένων δεν επαρκούν για την εγγύηση της συνέπειας. Απομόνωση (Isolation): lti κάθε συναλλαγή πρέπει να εκτελείται ανεξάρτητα από άλλες συναλλαγές. Μονιμότητα (Durability): αν μία συναλλαγή ολοκληρωθεί με επιτυχία, τότε οι αλλαγές που έχει επιφέρει καταγράφονται μόνιμα στη ΒΔ και δεν μπορούν να ανακληθούν. 4

Απαιτήσεις επανάκτησης ηςδεδομένων Για να είναι εφικτή η λειτουργία της επανάκτησης δεδομένων, το ΣΔΒΔ πρέπει να διαθέτει: μηχανισμό μ δημιουργίας αντιγράφων ασφαλείας (backup) για τα δεδομένα της ΒΔ, καταγραφή ημερολογίου (log) όπου να αποθηκεύεται η κατάσταση της κάθε συναλλαγής και οι αλλαγές που έχουν πραγματοποιηθεί στη ΒΔ, μηχανισμό χρονικών σημείων ελέγχου (checkpoints) που σηματοδοτούν τις στιγμές που οι αλλαγές που έχουν επιφέρει οι συναλλαγές έχουν γίνει μόνιμες, μέθοδο επανάκτησης, η οποία λαμβάνοντας υπόψη τα αντίγραφα ασφαλείας, τις πληροφορίες ημερολογίου και τα χρονικά σημεία ελέγχου, επαναφέρει τη ΒΔ σε κατάσταση συνέπειας. 5

Ημερολόγιο Οι εγγραφές στο ημερολόγιο έχουν τις ακόλουθες μορφές: <START T>: Η συναλλαγή Τ άρχισε την εκτέλεσή της. <COMMIT T>: H συναλλαγή Τ ολοκλήρωσε επιτυχώς την εκτέλεσή της. Γενικά, είναι ευθύνη του buffer/log manager το πότε τροποποιημένα δεδομένα λόγω της Τ θα αποθηκευτούν στον δίσκο <ABORT T>: H συναλλαγή Τ δεν ολοκλήρωσε επιτυχώς την εκτέλεσή της. Π.χ. λόγω σφάλματος ή συμμετοχής σε αδιέξοδο. Ό,τι αλλαγές στα δεδομένα έχουν γίνει πρέπει να μην εμφανίζονται στο δίσκο. <T, X, ov, nv>: H συναλλαγή Τ τροποποίησε τα δεδομένα δ Χ. Η παλαιά τιμή του Χ ήταν ov (old value) και η νέα nv (new value). 6

Βασικές πράξεις συναλλαγών......που σχετίζονται με την επανάκτηση: Input (x): Το block x μεταφέρεται στην μνήμη. Output (x): Το block x αποθηκεύεται στο δίσκο. Read(x,t): (,) input(x) //αν χρειάζεται t τιμή του block x Write (x,t): input(x) //αν χρειάζεται t τιμή του block x Flush (log): τα περιεχόμενα του ημερολογίου αποθηκεύονται στο δίσκο. 7

Παράδειγμα παραβίασης ατομικότητας T1: Read (A,t); t t 2 Write (A,t); Read (B,t); t t 2 Write (B,t); Output (A); Output (B); αποτυχία! A: 8 16 A: 8 16 B: 8 16 B: 8 μνήμη δίσκος 8

Επανάκτηση η βασισμένη σε ROLLBACK Σε περίπτωση αποτυχίας κάποιες πράξεις που είναι καταγεγραμμένες στο ημερολόγιο θα πρέπει να αναιρεθούν (πράξη undo ή rollback). Στο ημερολόγιο καταγράφονται μόνο οι παλαιές τιμές των τροποποιημένων δεδομένων. Βασίζεται σε δυο κανόνες αναφορικά με το χειρισμό του ημερολογίου: 1. Αν η συναλλαγή Τ τροποποιεί τα δεδομένα Χ, τότε η εγγραφή <T, X, ov> εγγράφεται στον δίσκο πριν αποθηκευτεί στο δίσκο η νέα τιμή του Χ. 2. Αν η συναλλαγή T ολοκληρωθεί επιτυχώς, η εγγραφή <COMMIT T> αποθηκεύεται στον δίσκο αφού αποθηκευτούν στον δίσκο 9 όλες οι αλλαγές της Τ.

Παράδειγμα εκτέλεσης συναλλαγής Βήμα Πράξη Τ Α (μνήμη) Β (μνήμη) Α (δίσκος) Β (δισκος) Ημερο λόγιο 1 8 8 StartT 2 Read(A,t) 8 8 8 8 3 T 2*T 16 8 8 8 4 Write(A,t) 16 16 8 8 <T,A,8> 5 Read(B,t) 8 16 8 8 8 6 T 2*T 16 16 8 8 8 7 Wit Write(B,t) (Bt) 16 16 16 8 8 <T,B,8> TB8 8 Flush(log) 9 Output(A) 16 16 16 16 8 10 Output(B) 16 16 16 16 16 11 Commit T 12 Flush(log) 10

Κανόνες επανάκτησης ης Για κάθε συναλλαγή με αντίστοιχη εγγραφή <start Ti> στο ημερολόγιο: Αν υπάρχει <commit Ti> ή <abort Τi> στο ημερολόγιο, τότε η Ti αγνοείται. Διαφορετικά, για κάθε <Ti, X, οv>: write (X, οv) output (X ) Καταχώρηση εγγραφής <abort Ti> στο ημερολόγιο. Το ημερολόγιο εξετάζεται από το τέλος προς την αρχή. 11

Σκεπτικό 1 ου κανόνα Αποφεύγεται η παρακάτω προβληματική κατάσταση μετά από αποτυχία κατά την εκτέλεση της συναλλαγής. μνήμη A: 8 16 B: 8 16 A: 8 16 B: 8 δίσκος Log: <T1,start> <T1, A, 8> <T1, B, 8> ημερολόγιο στο δίσκο 12

Σκεπτικό 2 ου κανόνα Αποφεύγεται η παρακάτω προβληματική κατάσταση μετά από αποτυχία κατά την εκτέλεση της συναλλαγής. μνήμη A: 8 16 B: 8 16 Log: <T1,start> <T1, A, 8> <T1, B, 8> <T1,commit> A: 8 16 B: 8 <T1, B, 8> <T1,commit> δίσκος ημερολόγιο στο δίσκο 13

Αποτυχίες κατά την επανάκτηση η Δεν δημιουργούν πρόβλημα. Οι εγγραφές στο ημερολόγιο μπορούν να επαναεξεταστούν πολλαπλές φορές. 14

Eπανάκτηση η η βασισμένη σε ROLLFORWARD Ονομάζεταικαι redo logging ή deferred update. Στο ημερολόγιο καταγράφονται μόνο οι νέες τιμές των τροποποιημένων δεδομένων. Βασίζεται σε δυο (διαφορετικούς) φ ρ κανόνες αναφορικά με το χειρισμό του ημερολογίου: 1. Αν η συναλλαγή Τ τροποποιεί τα δεδομένα Χ, τότε η εγγραφή <T, X, nv> εγγράφεται στον δίσκο πριν αποθηκευτεί στο δίσκο η νέα τιμή του Χ. 2. Αν η συναλλαγή T ολοκληρωθεί επιτυχώς, η εγγραφή <COMMIT T> αποθηκεύεται στον δίσκο πριν αποθηκευτούν στον δίσκο οποιεσδήποτε οι αλλαγές της Τ. 15

Παράδειγμα εκτέλεσης συναλλαγής Βήμα Πράξη Τ Α (μνήμη) Β (μνήμη) Α (δίσκος) Β (δισκος) Ημερο λόγιο 1 8 8 StartT 2 Read(A,t) 8 8 8 8 3 T 2*T 16 8 8 8 4 Write(A,t) 16 16 8 8 <T,A,16> 5 Read(B,t) 8 16 8 8 8 6 T 2*T 16 16 8 8 8 7 Wit Write(B,t) (Bt) 16 16 16 8 8 <T,B,16> TB16 8 Commit T 9 Flush(log) 10 Output(A) 16 16 16 16 8 11 Output(B) 16 16 16 16 16 Τα βήματα 10 και 11 μπορεί να είναι πολύ πιο μετά χρονικά από το 10. 16

Κανόνες επανάκτησης ης Για κάθε συναλλαγή Ti με εγγραφή <commit Τi> στο ημερολόγιο: Για κάθε εγγραφή <Ti, X, nv>: Write(X, nv) Output(X) Οι συναλλαγές εξετάζονται από την αρχή προς το τέλος του ημερολογίου. 17

Σύγκριση τεχνικών Undo logging: αυξημένο I/O κόστος Redo logging: αυξημένες απαιτήσεις μνήμης καθώς όλα τα τροποποιημένα blocks πρέπει να είναι στην κύρια μνήμη μέχρι την δέσμευση (commit). Undo/Redo logging: Αν η συναλλαγή Τ τροποποιεί τα δεδομένα Χ, τότε η εγγραφή <T, X, ov, nv> εγγράφεται στον δίσκο πριν αποθηκευτεί στο δίσκο η νέα τιμή του Χ. Δεν υπάρχει περιορισμός για το πότε πρέπει να αποθηκευτούν στον δίσκο οι εγγραφές commit του ημερολογίου. 18

Παράδειγμα εκτέλεσης συναλλαγής Βήμα Πράξη Τ Α (μνήμη) Β (μνήμη) Α (δίσκος) Β (δισκος) Ημερο λόγιο 1 8 8 StartT 2 Read(A,t) 8 8 8 8 3 T 2*T 16 8 8 8 4 Write(A,t) 16 16 8 8 <T,A,8,16> 5 Read(B,t) 8 16 8 8 8 6 T 2*T 16 16 8 8 8 7 Wit Write(B,t) (Bt) 16 16 16 8 8 <T,B,8,16> TB816 8 Flush(log) 9 Output(A) 16 16 16 16 8 10 Commit T 11 Output(B) 16 16 16 16 16 Το βήμα 10 (Commit) θα μπορούσε να είναι και πριν το Output(A) ή μετά από το Output(B). 19

Επανάκτηση η Λειτουργία redo/rollforward για όσες συναλλαγές ολοκλήρωσαν επιτυχώς την εκτέλεσή τους (με χρονική σειρά) Λειτουργία undo/rollbackγια όσες συναλλαγές ΔΕΝ ολοκλήρωσαν επιτυχώς την εκτέλεσή τους (με αντίστροφη χρονική σειρά) 20

Ταυτοχρονισμός και επανάκτηση η Αντιπαράδειγμα: Tj Ti Wj(A) ri(a) Commit itti Abort Tj Η σειριοποίηση ηδεν αρκεί από μόνη της. Το πρόβλημα λύνεται με αναδρομικά rollback (cascading rollback). Πρέπει να αναιρεθεί και η εντολή commit Ti, που είναι ανεπιθύμητο. Καλύτερη προσέγγιση: επανακτήσιμα χρονοδιαγράμματα. 21

Επανακτήσιμα χρονοδιαγράμματα Ένα χρονοδιάγραμμα S είναι επανακτήσιμο (recoverable) αν κάθε συναλλαγή δεσμεύεται (φάση commit) ) μόνο αφού έχουν δεσμευτεί όλες οι υπόλοιπες συναλλαγές από τις οποίες έχει διαβάσει δεδομένα. 22

ACR χρονοδιαγράμματα Ένα χρονοδιάγραμμα αποφεύγει τα αναδρομικά rollback αν κάθε συναλλαγή διαβάζει δεδομένα δ από συναλλαγές που έχουν ήδη δεσμευτεί. 23

Συνέχεια αντιπαραδείγματος Tj Wj(A) Ti ri(a) wi(b) Abort Tj [Commit Ti] Παραμένει η ανάγκη για αναδρομικά rollback (cascading rollback) στα επανακτήσιμα χρονοδιαγράμματα. Τα αναδρομικά rollback αποφεύγονται στα avoids cascading rollback (ACR) χρονοδιαγράμματα. 24

Συνδυασμός τατυχρονισμού και επανάκτησης ης Αυστηρό (strict) 2PL: οι κλειδαριές κρατούνται μέχρι τη φάση δέσμευσης: Tj.... Wj(A)... Cj uj(a)... Ti............ ri(a) Κάθε αυστηρό 2PL χρονοδιάγραμμα, εκτός από σειριοποιήσιμο, είναι και ACR. Κάθε αυστηρό χρονοδιάγραμμα, διαβάζει ή γράφει δεδομένα που έχουν τροποποιηθεί μόνο από δεσμευμένες (committed) συναλλαγές. 25

Επισκόπηση ηχρονοδιαγραμμάτων επανακτήσιμα σειριοποιήσιμα ACR αυστηρά σειριακά 26

Παραδείγματα Επανακτήσιμο: w 1 (A) w 1 (B) w 2 (A) r 2 (B) c 1 c 2 ACR: w 1 (A) w 1 (B) w 2 (A) c 1 r 2 (B) c 2 Αυστηρό: w 1 (A) w 1 (B) c 1 w 2 (A) r 2 (B) c 2 27