Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

1515 Διαχείριση Συναλλαγών  Συναλλαγές  Έλεγχος ταυτοχρονισμού  Επανάκτηση δεδομένων.

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


Παρουσίαση με θέμα: "1515 Διαχείριση Συναλλαγών  Συναλλαγές  Έλεγχος ταυτοχρονισμού  Επανάκτηση δεδομένων."— Μεταγράφημα παρουσίασης:

1 1515 Διαχείριση Συναλλαγών  Συναλλαγές  Έλεγχος ταυτοχρονισμού  Επανάκτηση δεδομένων

2 Κεφάλαιο 15: Διαχείριση Συναλλαγών Συναλλαγές Ένα σύνολο λειτουργιών το οποίο αποτελεί μία λογική λειτουργική μονάδα καλείται συναλλαγή (transaction). Μια συναλλαγή περιέχει: –εντολές ανάγνωσης, –εντολές εισαγωγής, –εντολές διαγραφής, ή –εντολές ενημέρωσης των δεδομένων της ΒΔ.

3 Κεφάλαιο 15: Διαχείριση Συναλλαγών Συναλλαγές Η πολυπλοκότητα των σύγχρονων βάσεων δεδομένων οδηγεί στην ανάπτυξη αξιόπιστων μηχανισμών ελέγχου της ακεραιότητας των δεδομένων –πολλές συναλλαγές μπορεί να βρίσκονται σε εξέλιξη, προσπελαύνοντας κοινά δεδομένα Ο έλεγχος ταυτοχρονισμού (concurrency control) διαχειρίζεται τις συναλλαγές έτσι ώστε να αποφεύγονται οι παθολογικές καταστάσεις

4 Κεφάλαιο 15: Διαχείριση Συναλλαγών Συναλλαγές Μια ΒΔ μπορεί να βρεθεί σε ασταθή κατάσταση: –από μία βλάβη του συστήματος (βλάβη του φυσικού μέσου αποθήκευσης) ή (άλλου μέρους του συστήματος), –μετά την αποκατάσταση της βλάβης πραγματοποιείται έλεγχος των δεδομένων. Υπάρχει ανάγκη ύπαρξης μηχανισμών επανάκτησης (recovery) δεδομένων, ώστε να επανέλθει η ΒΔ στην κανονική της κατάσταση όπου πληρούνται όλοι οι περιορισμοί ακεραιότητας.

5 Κεφάλαιο 15: Διαχείριση Συναλλαγών Συναλλαγές Μία συναλλαγή είναι συνήθως το αποτέλεσμα της εκτέλεσης ενός προγράμματος που είναι γραμμένο σε μία γλώσσα προγραμματισμού υψηλού επιπέδου. Οι εντολές που προσδιορίζουν μια συναλλαγή περικλείονται μεταξύ των εκφράσεων: –BEGIN TRANSACTION, και –END TRANSACTION.

6 Κεφάλαιο 15: Διαχείριση Συναλλαγών Καταστάσεις Συναλλαγών Μια συναλλαγή μπορεί να έχει τις εξής καταστάσεις:

7 Κεφάλαιο 15: Διαχείριση Συναλλαγών Καταστάσεις Συναλλαγών Ενεργή (active) Κατάσταση: –η συναλλαγή εισέρχεται στην ενεργή κατάσταση κατά την αρχή της επεξεργασίας της και παραμένει σε αυτή ενόσω εκτελείται. Κατάσταση Μερικής Δέσμευσης (partial commit): –η συναλλαγή θεωρείται μερικώς δεσμευμένη όταν έχει ολοκληρωθεί και η τελευταία εντολή της συναλλαγής. Κατάσταση Αποτυχίας (failed): –η συναλλαγή αποτυγχάνει όταν το ΣΔΒΔ αντιληφθεί ότι δεν μπορεί να συνεχίσει την ομαλή επεξεργασία της

8 Κεφάλαιο 15: Διαχείριση Συναλλαγών Καταστάσεις Συναλλαγών Κατάσταση Απόρριψης (aborted): –η συναλλαγή βρίσκεται στην κατάσταση αυτή όταν τα δεδομένα έχουν επανέλθει στην προηγούμενη σταθερή κατάσταση, πριν την αρχή της εκτέλεσης της συναλλαγής. –στην κατάσταση απόρριψης το ΣΔΒΔ έχει δύο επιλογές: (α) την επανεκκίνηση της συναλλαγής από την αρχή ή (β) την καταστροφή της συναλλαγής. Κατάσταση Δέσμευσης (committed) –η συναλλαγή έχει ολοκληρώσει επιτυχώς την εκτέλεσή της.

9 Κεφάλαιο 15: Διαχείριση Συναλλαγών Ιδιότητες Συναλλαγών (ACID) Ατομικότητα (atomicity): –αν υπάρχει έστω και μία εντολή της συναλλαγής, η οποία αποτυγχάνει να εκτελεσθεί, τότε ολόκληρη η συναλλαγή αποτυγχάνει επίσης. Απομόνωση (isolation): –κάθε συναλλαγή πρέπει να εκτελείται ανεξάρτητα από άλλες συναλλαγές Μονιμότητα (durability): –αν μία συναλλαγή ολοκληρωθεί με επιτυχία, τότε οι αλλαγές που έχει επιφέρει καταγράφονται μόνιμα στη ΒΔ και δεν μπορούν να ανακληθούν.

10 Κεφάλαιο 15: Διαχείριση Συναλλαγών Ιδιότητες Συναλλαγών (ACID) Συνέπεια (consistency): –η συναλλαγή πρέπει να μετατρέπει τη βάση δεδομένων από μία συνεπή κατάσταση σε μία άλλη συνεπή κατάσταση (τα δεδομένα πρέπει να είναι ορθά). –οι μηχανισμοί ακεραιότητας δεδομένων δεν επαρκούν για την εγγύηση της συνέπειας. Θεωρείστε τη μεταφορά ενός ποσού από έναν τραπεζικό λογαριασμό σε άλλον. Η αφαίρεση του ποσού από τον πρώτο πρέπει να συνοδεύεται από την πρόσθεση του ποσού στο δεύτερο. Αν το αφαιρούμενο ποσό διαφέρει από το προστιθέμενο, τότε τα δεδομένα της βάσης δεν έχουν συνέπεια (δεν είναι ορθά).

11 Κεφάλαιο 15: Διαχείριση Συναλλαγών Τρόποι επεξεργασίας Ακολουθιακή ή σειριακή εκτέλεση –όπου οι συναλλαγές εκτελούνται η μία μετά την άλλη αλλά εμφανίζονται σημαντικές καθυστερήσεις με αποτέλεσμα να μειώνεται η γενική απόδοση του συστήματος. Ταυτόχρονη εκτέλεση πολλών συναλλαγών –όπου ο δίσκος ή η CPU μπορούν να απασχολούνται με άλλη συναλλαγή, οπότε αυξάνεται ο αριθμός των συναλλαγών που ολοκληρώνονται στη μονάδα του χρόνου (throughput). –Πλεονέκτημα: μειώνονται οι καθυστερήσεις (waiting time) και ο μέσος χρόνος εκτέλεσης των συναλλαγών (mean response time). –Μειονέκτημα: ενδέχεται να επιφέρει προβλήματα στην ακεραιότητα και συνέπεια των δεδομένων της ΒΔ.

12 Κεφάλαιο 15: Διαχείριση Συναλλαγών Έλεγχος ταυτοχρονισμού Ο σωστός συντονισμός των συναλλαγών είναι ευθύνη του ΣΔΒΔ, το οποίο μέσω του μηχανισμών ελέγχου ταυτοχρονισμού εγγυάται την ομαλή εκτέλεση των συναλλαγών. Ο τρόπος συντονισμού και εκτέλεσης ενός συνόλου συναλλαγών καλείται χρονοδιάγραμμα (schedule). Το ΣΔΒΔ πρέπει να επιλέξει ένα χρονοδιάγραμμα που να ικανοποιεί τις απαιτήσεις συνέπειας των δεδομένων.

13 Κεφάλαιο 15: Διαχείριση Συναλλαγών Παραδείγματα χρονοδιαγραμμάτων

14 Κεφάλαιο 15: Διαχείριση Συναλλαγών Σειριακό χρονοδιάγραμμα Σε ένα σειριακό (serial) χρονοδιάγραμμα οι εντολές μίας συναλλαγής δεν περιπλέκονται χρονικά με εντολές των άλλων συναλλαγών.

15 Κεφάλαιο 15: Διαχείριση Συναλλαγών Σειριακό χρονοδιάγραμμα Υπάρχουν n! δυνατά σειριακά χρονοδιαγράμματα εκτέλεσης για n συναλλαγές. Ο τρόπος εκτέλεσης των συναλλαγών ορίζεται από τη μέθοδο χρονοδρομολόγησης που χρησιμοποιεί το λειτουργικό σύστημα και επομένως δεν μπορούμε να γνωρίζουμε με ακρίβεια το χρόνο εκτέλεσης της κάθε εντολής μίας συναλλαγής.

16 Κεφάλαιο 15: Διαχείριση Συναλλαγών Σειριοποίηση Για να διατηρεί τη συνέπεια των δεδομένων της ΒΔ θα πρέπει το χρονοδιάγραμμα εκτέλεσης συναλλαγών να είναι ισοδύναμο με κάποιο σειριακό χρονοδιάγραμμα. Δύο χρονοδιαγράμματα καλούνται ισοδύναμα αν μετά την εκτέλεσή τους επιφέρουν τις ίδιες αλλαγές στη ΒΔ. Η παραγωγή ενός χρονοδιαγράμματος ισοδύναμου με ένα σειριακό χρονοδιάγραμμα καλείται σειριοποίηση (serializability) και έχει δύο μορφές: –σειριοποίηση σύγκρουσης (conflict), και –σειριοποίηση όψης (view).

17 Κεφάλαιο 15: Διαχείριση Συναλλαγών Σειριοποίηση σύγκρουσης Έστω χρονοδιάγραμμα S και δύο χρονικά συνεχόμενες εντολές E i, E j (που αναφέρονται στα ίδια δεδομένα D) των συναλλαγών Σ 1, Σ 2, αντιστοίχως. Διακρίνουμε τις εξής περιπτώσεις: –E i = read(D) και E j = read(D) –E i = read(D) και E j = write(D) –E i = write(D) και E j = read(D) –E i = write(D) και E j = write(D) Αν τουλάχιστον μία εντολή είναι εντολή αποθήκευσης, τότε οι εντολές E i και E j βρίσκονται σε σύγκρουση

18 Κεφάλαιο 15: Διαχείριση Συναλλαγών Σειριοποίηση σύγκρουσης Αν ένα χρονοδιάγραμμα εκτέλεσης S μπορεί να μετασχηματισθεί σε ένα άλλο χρονοδιάγραμμα S' αλλά- ζοντας τη σειρά εκτέλεσης των εντολών, τότε τα S και S' καλούνται ισοδύναμα ως προς τις συγκρούσεις. Το χρονοδιάγραμμα S καλείται σειριοποιήσιμο ως προς τις συγκρούσεις (conflict serializable) αν είναι ισοδύναμο ως προς τις συγκρούσεις με ένα σειριακό χρονοδιάγραμμα.

19 Κεφάλαιο 15: Διαχείριση Συναλλαγών Σειριοποίηση σύγκρουσης – Παράδειγμα

20 Κεφάλαιο 15: Διαχείριση Συναλλαγών Σειριοποίηση σύγκρουσης – Αντιπαράδειγμα

21 Κεφάλαιο 15: Διαχείριση Συναλλαγών Σειριοποίηση όψης Έστω δύο χρονοδιαγράμματα S και S΄ με τα ίδια σύνολα συναλλαγών. Τα S και S΄ ονομάζονται ισοδύναμα αν για κάθε στοιχείο δεδομένων D: –αν η συναλλαγή Σ i διαβάζει την αρχική τιμή του D στο χρονο- διάγραμμα S, τότε πρέπει η συναλλαγή Σ i επίσης να διαβάζει την αρχική τιμή του D στο χρονοδιάγραμμα S΄, –αν η συναλλαγή Σ i εκτελεί την εντολή Read(D) στο χρονοδιά- γραμμα S και αυτή η τιμή έχει παραχθεί από τη συναλλαγή Σ j, τότε η Σ i πρέπει επίσης να διαβάσει την τιμή που παράγει η Σ j στο χρονοδιάγραμμα S΄, –η συναλλαγή που εκτελεί την τελευταία εντολή Write(D) στο χρονοδιάγραμμα S, πρέπει και στο χρονοδιάγραμμα S' να εκτελεί την τελευταία εντολή Write(D).

22 Κεφάλαιο 15: Διαχείριση Συναλλαγών Σειριοποίηση όψης Ένα χρονοδιάγραμμα S καλείται σειριοποιήσιμο ως προς την όψη (view serializable) αν είναι ισοδύναμο ως προς την όψη με κάποιο σειριακό χρονοδιάγραμμα.

23 Κεφάλαιο 15: Διαχείριση Συναλλαγών Μηχανισμοί κλειδώματος Η κλειδαριά (lock) αντιστοιχεί σε ένα τμήμα δεδομένων και είναι μεταβλητή που περιγράφει την κατάσταση του τμήματος των δεδομένων σε σχέση με τις λειτουργίες που ενεργούν στα συγκεκριμένα δεδομένα.

24 Κεφάλαιο 15: Διαχείριση Συναλλαγών Μηχανισμοί κλειδώματος Δύο είναι οι βασικοί τύποι κλειδαριών: –κλειδαριά ανάγνωσης (read) ή κλειδαριά διαμοιρασμού (share), που επιτρέπει σε μία συναλλαγή να διαβάσει τα δεδομένα αλλά όχι να τα ενημερώσει ή να τα διαγράψει, –κλειδαριά αποθήκευσης (write) ή αποκλειστική κλειδαριά (exclusive), που επιτρέπει σε μία συναλλαγή να διαβάσει ή να ενημερώσει τα δεδομένα.

25 Κεφάλαιο 15: Διαχείριση Συναλλαγών Μηχανισμοί κλειδώματος Ι Ο μηχανισμός κλειδαριών λειτουργεί ως εξής: –μία συναλλαγή που αφορά ανάγνωση δεδομένων, ζητά να της χορηγηθεί μία κλειδαριά ανάγνωσης, –αν απαιτείται ενημέρωση δεδομένων, τότε ζητά μία κλειδαριά αποθήκευσης, –αν δεν υπάρχει άλλη κλειδαριά για τη συγκεκριμένη σελίδα δεδομένων, τότε η κλειδαριά χορηγείται στη συναλλαγή, –αν υπάρχει ήδη άλλη κλειδαριά που έχει χορηγηθεί σε άλλη συναλλαγή, τότε πραγματοποιείται έλεγχος για το αν θα χορηγηθεί η κλειδαριά στη νέα συναλλαγή η όχι.

26 Κεφάλαιο 15: Διαχείριση Συναλλαγών Μηχανισμοί κλειδώματος ΙΙ –αν η σελίδα δεδομένων έχει κλειδωθεί με χρήση κλειδαριάς ανάγνωσης και η νέα συναλλαγή ζητά επίσης κλειδαριά ανάγνωσης, τότε το σύστημα επιτρέπει τη χορήγηση της κλειδαριάς. Σε διαφορετική περίπτωση η νέα συναλλαγή πρέπει να περιμένει μέχρι η προηγούμενη συναλλαγή ολοκληρώσει την εργασία με τη σελίδα δεδομένων και απελευθερώσει την κλειδαριά. –μία συναλλαγή απελευθερώνει την κλειδαριά όταν η εκτέλεσή της ολοκληρωθεί είτε με επιτυχία είτε με αποτυχία. –οι μόνιμες αλλαγές στα δεδομένα είναι ορατές από τις υπόλοιπες συναλλαγές μόνο μετά την απελευθέρωση της κλειδαριάς αποθήκευσης από τη συναλλαγή.

27 Κεφάλαιο 15: Διαχείριση Συναλλαγών Μηχανισμοί κλειδώματος ΙΙΙ –μια συναλλαγή που πρέπει να ενημερώσει κάποια δεδομένα μπορεί να ζητήσει αναβάθμιση (upgrade) της κλειδαριάς από κλειδαριά ανάγνωσης σε κλειδαριά αποθήκευσης. –αν η εγγραφή των δεδομένων έχει ολοκληρωθεί αλλά η συναλλαγή δεν έχει ολοκληρώσει την ανάγνωση των δεδομένων, τότε μπορεί να ζητήσει υποβάθμιση (downgrade) της κλειδαριάς από αποθήκευσης σε ανάγνωσης.

28 Κεφάλαιο 15: Διαχείριση Συναλλαγών Μηχανισμοί κλειδώματος – Αντιπαράδειγμα

29 Κεφάλαιο 15: Διαχείριση Συναλλαγών Πρωτόκολλο κλειδώματος Ένας μηχανισμός κλειδώματος πρέπει να ικανοποιεί κανόνες εγγύησης της συνέπειας των δεδομένων. Οι κανόνες αυτοί ορίζουν ένα πρωτόκολλο κλειδώματος (locking protocol) και εγγυώνται ότι το χρονοδιάγραμμα που προκύπτει είναι σειριοποιήσιμο. Πρωτόκολλο Κλειδώματος Δύο Φάσεων (two-phase locking) –φάση ανάπτυξης (growing phase), όπου η συναλλαγή ζητά τη χορήγηση κλειδαριών και δεν επιτρέπεται η απελευθέρωση κλειδαριών, –φάση συρρίκνωσης (shrinking phase), όπου η συναλλαγή απελευθερώνει κλειδαριές και δεν επιτρέπεται να ζητήσει τη χορήγηση νέων κλειδαριών.

30 Κεφάλαιο 15: Διαχείριση Συναλλαγών Πρωτόκολλο κλειδώματος δύο φάσεων

31 Κεφάλαιο 15: Διαχείριση Συναλλαγών Πρωτόκολλο κλειδώματος δύο φάσεων

32 Κεφάλαιο 15: Διαχείριση Συναλλαγών Πρωτόκολλο κλειδώματος βασισμένο σε γράφο Όταν είναι γνωστή η σειρά προσπελάσεων των δεδομένων από τη συναλλαγή χρησιμοποιείται το πρωτόκολλο κλειδώματος βασισμένο σε γράφο. Έστω D={d 1,d 2,…,d n } ένα σύνολο n δεδομένων που προσπελαύνονται από τις συναλλαγές είτε για ανάγνωση είτε για αποθήκευση. Ορίζουμε μία μερική διάταξη στο σύνολο D ως εξής: –τα δεδομένα d i και d j συνδέονται με τη σχέση  αν κάθε συναλλαγή που προσπελαύνει τα d i και d j προσπελαύνει το d i πριν από το d j. Η μερική διάταξη επιτρέπει την αναπαράσταση του συνόλου ως κατευθυνόμενο άκυκλο γράφο (dag).

33 Κεφάλαιο 15: Διαχείριση Συναλλαγών Πρωτόκολλο κλειδώματος βασισμένο σε γράφο Ειδική περίπτωση του κατευθυνόμενου άκυκλου γράφου είναι ο δενδρικός γράφος, όπου εφαρμόζεται το δενδρικό πρωτόκολλο (tree protocol) που υποστηρίζει μόνο κλειδαριές ανάγνωσης.

34 Κεφάλαιο 15: Διαχείριση Συναλλαγών Δενδρικό πρωτόκολλο Το δενδρικό πρωτόκολλο έχει τους εξής κανόνες: –η κάθε συναλλαγή μπορεί να ζητήσει χορήγηση της πρώτης κλειδαριάς σε οποιοδήποτε δεδομένο, –μία συναλλαγή μπορεί να ζητήσει τη χορήγηση κλειδαριάς στο δεδομένο d j μόνο αν έχει ήδη κλειδώσει το δεδομένο d i και ισχύει d i  d j –μία συναλλαγή μπορεί να απελευθερώσει μία κλειδαριά οποιαδήποτε χρονική στιγμή, –ένα δεδομένο που έχει κλειδωθεί από μία συναλλαγή και στη συνέχεια η κλειδαριά έχει απελευθερωθεί, δεν επιτρέπεται να κλειδωθεί για δεύτερη φορά από τη ίδια συναλλαγή.

35 Κεφάλαιο 15: Διαχείριση Συναλλαγών Δενδρικό πρωτόκολλο Παράδειγμα παραβίασης του 2ου κανόνα

36 Κεφάλαιο 15: Διαχείριση Συναλλαγών Διαχείριση αδιεξόδου Ένα σύνολο συναλλαγών βρίσκεται σε αδιέξοδο (deadlock), όταν καμία συναλλαγή δεν είναι εφικτό να συνεχίσει την εκτέλεσή της, λόγω αναμονής για την απελευθέρωση κλειδαριών. Το αδιέξοδο αποτελεί παθολογική κατάσταση και πρέπει να αποφεύγεται.

37 Κεφάλαιο 15: Διαχείριση Συναλλαγών Διαχείριση αδιεξόδου Η διαχείριση του αδιεξόδου πραγματοποιείται γενικά με δύο μεθόδους: –αποφυγή αδιεξόδου (deadlock prevention), όπου το σύστημα ελέγχει την πιθανότητα να συμβεί αδιέξοδο και προσπαθεί να το αποφύγει (προτείνεται όταν συμβαίνουν πολλά αδιέξοδα), –αναγνώριση αδιεξόδου και επανάκτηση (deadlock detection and recovery) όπου το σύστημα είναι σε θέση να αναγνωρίσει ένα αδιέξοδο και προβαίνει σε ενέργειες για την κατάργησή του (προτείνεται όταν δεν συμβαίνουν πολλά αδιέξοδα).

38 Κεφάλαιο 15: Διαχείριση Συναλλαγών Αποφυγή αδιεξόδου Μία μέθοδος αποφυγής του αδιεξόδου είναι ο ορισμός ενός μέγιστου χρονικού διαστήματος για την αναμονή χορήγησης μίας κλειδαριάς. Αν εξαντληθεί το χρονικό διάστημα και η κλειδαριά δεν έχει ακόμη χορηγηθεί στη συναλλαγή, το σύστημα τερματίζει τη διαδικασία και την επαναδημιουργεί. Η μέθοδος αυτή αποφυγής αδιεξόδου χρησιμοποιείται από πολλά ΣΔΒΔ λόγω της απλότητάς της.

39 Κεφάλαιο 15: Διαχείριση Συναλλαγών Αποφυγή αδιεξόδου Μια άλλη μέθοδος είναι αυτή των χρονικών σφραγίδων (timestamps) και προτείνονται δύο αλγόριθμοι: –Wait-Die, που επιτρέπει σε μία παλαιότερη συναλλαγή (μικρή χρονική σφραγίδα) να περιμένει την απελευθέρωση μίας κλειδαριάς από μία νεότερη (μεγαλύτερη χρονική σφραγίδα). Διαφορετικά,η συναλλαγή τερματίζεται και το σύστημα την επανεκκινεί. –Wound-Wait, όπου επιτρέπεται σε μία νεότερη συναλλαγή να περιμένει την εκτέλεση μίας παλαιότερης. Αν η παλαιότερη συναλλαγή ζητά τη χορήγηση μίας κλειδαριάς που είναι δεσμευμένη από μία νεότερη συναλλαγή,τότε η νεότερη συναλλαγή τερματίζεται.

40 Κεφάλαιο 15: Διαχείριση Συναλλαγών Αναγνώριση και κατάργηση αδιεξόδου Η αναγνώριση αδιεξόδου σε ένα σύνολο συναλλαγών διαπιστώνεται με τη βοήθεια ενός κατευθυνόμενου γράφου που καλείται γράφος αναμονής (wait graph) Ο γράφος αυτός αποτελείται από ένα σύνολο κορυφών V και ένα σύνολο ακμών E. Για κάθε συναλλαγή υπάρχει και μία αντίστοιχη κορυφή στο γράφο. Αν υπάρχει ακμή από την κορυφή Σ i προς την κορυφή Σ j, τότε αυτό δηλώνει ότι η συναλλαγή Σ i αναμένει μέχρι η συναλλαγή Σ j να απελευθερώσει την κλειδαριά σε ένα τμήμα δεδομένων που πρέπει να προσπελάσει η Σ i.

41 Κεφάλαιο 15: Διαχείριση Συναλλαγών Αναγνώριση και κατάργηση αδιεξόδου Αν στο γράφο αναμονής δεν υπάρχει κύκλος, τότε δεν υπάρχει αδιέξοδο. Αντίθετα, η ύπαρξη έστω και ενός κύκλου σημαίνει ότι ένα υποσύνολο των συναλλαγών βρίσκεται σε αδιέξοδο. Αν συμβαίνουν συχνά αδιέξοδα πρέπει να είναι συχνός και ο έλεγχος του γράφου αναμονής. Το ΣΔΒΔ μπορεί να διατηρεί στατιστικά στοιχεία για τον αριθμό των αδιεξόδων και τη συχνότητα εμφάνισής τους και ανάλογα να προσδιορίζεται και η συχνότητα του ελέγχου για αδιέξοδο.

42 Κεφάλαιο 15: Διαχείριση Συναλλαγών Αναγνώριση και κατάργηση αδιεξόδου

43 Κεφάλαιο 15: Διαχείριση Συναλλαγών Κατάργηση αδιεξόδου Η συχνότερα χρησιμοποιούμενη μέθοδος για την κατάργηση του αδιέξοδου είναι ο τερματισμός μίας η περισσοτέρων συναλλαγών και η επαναφορά των δεδομένων στην κατάσταση που βρισκόταν πριν από την εκτέλεση των συναλλαγών αυτών (ROLLBACK).

44 Κεφάλαιο 15: Διαχείριση Συναλλαγών Κατάργηση αδιεξόδου Η μέθοδος ROLLABACK εκτελείται ως εξής: Βήμα 1. Επιλογή συναλλαγών για ROLLABACK. H επιλογή των συναλλαγών πραγματοποιείται με βάση το ελάχιστο κόστος. Σύμφωνα με τους εξής παράγοντες: ο μέχρι στιγμής χρόνος εκτέλεσης της συναλλαγής και ο υπολειπόμενος χρόνος για την ολοκλήρωση της συναλλαγής, ο αριθμός των δεδομένων που έχουν ενημερωθεί από τη συναλλαγή, ο αριθμός των δεδομένων που πρέπει να προσπελασθούν από τη συναλλαγή, Ο αριθμός των συναλλαγών όπου θα εφαρμοσθεί η λειτουργία ROLLBACK.

45 Κεφάλαιο 15: Διαχείριση Συναλλαγών Κατάργηση αδιεξόδου Βήμα 2. Επιλογή σημείου ROLLBACK. –η απλούστερη λύση είναι να γίνει επαναφορά της συναλλαγής στην αρχή, καταργώντας όλες τις αλλαγές που έχει επιφέρει στα δεδομένα, –η λύση αυτή έχει μεγάλο κόστος, διότι η συναλλαγή μπορεί να έχει ενημερώσει ένα μεγάλο αριθμό δεδομένων, –συνήθως, το αδιέξοδο καταργείται εφαρμόζοντας ROLLBACK στις τελευταίες εντολές της συναλλαγής.

46 Κεφάλαιο 15: Διαχείριση Συναλλαγών Κατάργηση αδιεξόδου Βήμα 3. Αποφυγή ατέρμονης αναμονής. –η ατέρμονη αναμονή (starvation) είναι ένα φαινόμενο που μπορεί να εμφανισθεί αν επιλέγεται συνεχώς η ίδια συναλλαγή για την εφαρμογή του ROLLBACK, –αυτό σημαίνει ότι συνεχώς η ίδια συναλλαγή εμποδίζεται να ολοκληρώσει την εκτέλεσή της, –το ΣΔΒΔ μπορεί να αποτρέψει την επιλογή της ίδιας συναλλαγής περισσότερο από έναν αριθμό επιλογών, δίνοντας έτσι την ευκαιρία στη συναλλαγή να ολοκληρώσει την επεξεργασία της.

47 Κεφάλαιο 15: Διαχείριση Συναλλαγών Μηχανισμός χρονικών σφραγίδων Ο μηχανισμός χρονικών σφραγίδων δεν χρησιμοποιεί κλειδαριές για την προστασία μίας περιοχής δεδομένων, άρα δεν υπάρχει περίπτωση να δημιουργηθεί αδιέξοδο. Η χρονική σφραγίδα είναι μία μεταβλητή που προσδιο- ρίζει τη χρονική στιγμή της αρχής της εκτέλεσης μίας συναλλαγής. Μία χρονική σφραγίδα παράγεται είτε από το ρολόι του συστήματος είτε ενημερώνοντας την τιμή μίας μεταβλη- τής κάθε φορά που δημιουργείται μία νέα συναλλαγή. Η χρονική σφραγίδα της συναλλαγής Σ i συμβολίζεται με TS(Σ i ).

48 Κεφάλαιο 15: Διαχείριση Συναλλαγών Μηχανισμός χρονικών σφραγίδων Η προσπέλαση επιτρέπεται μόνο αν η τελευταία ενημέ- ρωση πραγματοποιήθηκε από παλαιότερη συναλλαγή (που θα έχει μικρότερη χρονική σφραγίδα). Αλλιώς πραγματοποιείται τερματισμός και επανεκκίνηση της συναλλαγής με νέα χρονική σφραγίδα. Χρονικές σφραγίδες ορίζονται όχι μόνο για τις συναλλα- γές αλλά και για τα δεδομένα: –σε κάθε σελίδα δεδομένων αντιστοιχεί μία χρονική σφραγίδα ανάγνωσης και μία χρονική σφραγίδα αποθήκευσης, –οι δύο χρονικές σφραγίδες συμβολίζονται με timestamp-W και timestamp-R αντίστοιχα.

49 Κεφάλαιο 15: Διαχείριση Συναλλαγών Μηχανισμός χρονικών σφραγίδων Η τιμή της χρονικής σφραγίδας ανάγνωσης είναι η τιμή της χρονικής σφραγίδας της συναλλαγής που πραγματοποίησε τελευταία ανάγνωση στη σελίδα δεδομένων. Η τιμή της χρονικής σφραγίδας αποθήκευσης είναι η χρονική σφραγίδα της συναλλαγής που πραγματοποίησε τελευταία ενημέρωση στη σελίδα δεδομένων. Κάθε φορά που πραγματοποιείται ανάγνωση ή αποθή- κευση της σελίδας δεδομένων D, ενημερώνονται οι τιμές timestamp-W(D) και timestamp-R(D), αντιστοίχως.

50 Κεφάλαιο 15: Διαχείριση Συναλλαγών Πρωτόκολλο διάταξης χρονικών σφραγίδων

51 Κεφάλαιο 15: Διαχείριση Συναλλαγών Πρωτόκολλο διάταξης χρονικών σφραγίδων

52 Κεφάλαιο 15: Διαχείριση Συναλλαγών Κανόνας αποθήκευσης του Thomas Με τη χρήση της μεθόδου των χρονικών σφραγίδων αν μία συναλλαγή προσπαθήσει να αλλάξει την τιμή μίας σελίδας δεδομένων, η οποία έχει ήδη ενημερωθεί από άλλη συναλλαγή, τότε η εκτέλεση της συναλλαγής διακόπτεται και πραγματοποιείται ROLLBACK. Σύμφωνα με τον κανόνα αποθήκευσης του Thomas αρκεί να αγνοήσουμε τη λειτουργία αποθήκευσης, οπότε: –μειώνεται το κόστος λειτουργίας, και –αυξάνεται η απόδοση του συστήματος.

53 Κεφάλαιο 15: Διαχείριση Συναλλαγών Κανόνας αποθήκευσης του Thomas

54 Κεφάλαιο 15: Διαχείριση Συναλλαγών Κανόνας αποθήκευσης του Thomas Το νέο πρωτόκολλο διαφέρει μόνο ως προς τη διαχείριση των εντολών αποθήκευσης: –αν TS(Σ i ) < timestamp-W(D), τότε η συναλλαγή προσπαθεί να ενημερώσει μία τιμή που έχει ήδη αλλάξει από άλλη συναλλαγή. Στην περίπτωση αυτή η εντολή αποθήκευσης μπορεί να αγνοηθεί με ασφάλεια. –αν TS(Σ i ) < timestamp-R(D), τότε η τρέχουσα τιμή του D διαβάσθηκε προηγουμένως από άλλη συναλλαγή. Στην περίπτωση αυτή διακόπτεται η εντολή αποθήκευσης και πραγματοποιείται ROLLBACK. –αν δεν ισχύει καμία από τις δύο συνθήκες, τότε η λειτουργία αποθήκευσης μπορεί να ολοκληρωθεί χωρίς πρόβλημα και timestamp-W(D) = TS(Σ i ).

55 Κεφάλαιο 15: Διαχείριση Συναλλαγών Επανάκτηση δεδομένων Οι συχνότερες αιτίες που οδηγούν σε διακοπή της λειτουργίας του συστήματος είναι: –πτώση συστήματος, λόγω εσφαλμένης λειτουργίας του υλικού ή του λογισμικού συστήματος, –πρόβλημα στο μέσο αποθήκευσης, το οποίο μπορεί να οφείλεται σε καταστροφή της μαγνητικής επιφάνειας του δίσκου, του μηχανικού ή του ηλεκτρονικού υλικού του δίσκου, –σφάλμα λογισμικού εφαρμογής, το οποίο οφείλεται συνήθως σε σφάλμα εκτέλεσης (run-time error) κατά τη διάρκεια ενημέρωσης των δεδομένων της ΒΔ, –φυσικά αίτια, όπως πυρκαγιές, σεισμοί κλπ.

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


Κατέβασμα ppt "1515 Διαχείριση Συναλλαγών  Συναλλαγές  Έλεγχος ταυτοχρονισμού  Επανάκτηση δεδομένων."

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


Διαφημίσεις Google