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

Σχετικά έγγραφα
Έλεγχος Ταυτοχρονισμού

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

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

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

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

Χρονοδιάγραμμα/Χρονοπρόγραμμα

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

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

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

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

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

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

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

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

Έλεγχος Συγχρονικότητας. (Concurrency Control)

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

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

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

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

Θεµατολόγιο. Πώς ελέγχουµε σειριοποιησιµότητα στην πράξη;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Αδιέξοδα Ανάθεση Πόρων (Deadlocks Resource Allocation)

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

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

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

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

Αδιέξοδα Ανάθεση Πόρων (Deadlocks Resource Allocation)

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

Μέγιστη ροή. Κατευθυνόμενο γράφημα. Συνάρτηση χωρητικότητας. αφετηρίακός κόμβος. τερματικός κόμβος. Ροή δικτύου. με τις ακόλουθες ιδιότητες

Θέματα Μεταγλωττιστών

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

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

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

ΑΔΙΕΞΟΔΑ (Deadlocks) Παράδειγμα 1 Θανάσιμο αγκάλιασμα (deadly embrace)

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

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

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

Κατανεμημένες δοσοληψίες

Κατανεμημένες δοσοληψίες

Βάσεις Δεδομένων ΙΙ. Διάλεξη 2 η Tεχνικές Ελέγχου Συνδρομικότητας

Θεωρία Υπολογισμού και Πολυπλοκότητα

Μάθημα 3 ο ΔΙΕΡΓΑΣΙΕΣ (PROCESSES)

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

ΑΔΙΕΞΟΔΑ. Λειτουργικά Συστήματα Ι. Διδάσκων: Καθ. Κ. Λαμπρινουδάκης ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι

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

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

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

Εισαγωγή στην Πληροφορική Προγραμματισμός-Λειτουργικά

Σειρά Προβλημάτων 5 Λύσεις

Θεωρία Υπολογισμού και Πολυπλοκότητα Ασυμφραστικές Γλώσσες (2)

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

4.4 Μετατροπή από μία μορφή δομής επανάληψης σε μία άλλη.

Προσπέλαση κοινών πόρων Πρωτόκολλα ελέγχου αμοιβαίου αποκλεισμού

Γιατί υϖάρχει τέτοια καθολική κατάσταση;

Αδιέξοδα (Deadlocks)

Ερωτήσεις πολλαπλής επιλογής - Κεφάλαιο 2. Α1. Ο αλγόριθμος είναι απαραίτητος μόνο για την επίλυση προβλημάτων πληροφορικής

1. Πότε χρησιμοποιούμε την δομή επανάληψης; Ποιες είναι οι διάφορες εντολές (μορφές) της;

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

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

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

Ειδικά θέματα Αλγορίθμων και Δομών Δεδομένων (ΠΛΕ073) Απαντήσεις 1 ου Σετ Ασκήσεων

Ψευδοκώδικας. November 7, 2011

Λειτουργικά Συστήματα

Σειρά Προβλημάτων 5 Λύσεις

3. Προσομοίωση ενός Συστήματος Αναμονής.

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

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

Το Πρόβληµα Οµοφωνίας Σύγχρονα Συστήµατα Μεταβίβασης Μηνύµατος Μοντέλο Κατάρρευσης (crash model) Οι διεργασίες µπορούν να σταµατούν να εκτελούνται σε

Κατανεμημένες δοσοληψίες

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

Διάλεξη 14: Ατομική ΚΚΜ Εγγραφής/Ανάγνωσης στην Παρουσία Σφαλμάτων. ΕΠΛ 432: Κατανεμημένοι Αλγόριθμοι

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

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

Μάθημα 4 ο. Κρίσιμα Τμήματα και Αμοιβαίος Αποκλεισμός

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

Αδιέξοδα Ανάθεση Πόρων (Deadlocks Resource Allocation)

Μάθημα 7 ο. Αλγόριθμοι Χρονοδρομολόγησης

ΚΕΦΑΛΑΙΟ 1ο 3ο. ΚΕΦΑΛΑΙΟ 5ο 6ο. ΚΕΦΑΛΑΙΟ 7ο. Δομημένος Προγραμματισμός - Γενικές Ασκήσεις Επανάληψης

9. Συστολικές Συστοιχίες Επεξεργαστών

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

Αρχιτεκτονική Συστημάτων Βάσεων Δεδομένων. Κατηγορίες χρηστών ΣΔΒΔ Αρχιτεκτονική ANSI/SPARC Γλώσσες ερωτημάτων Μοντέλα δεδομένων Λειτουργίες ΣΔΒΔ

Ο βρόχος for Η εντολή for χρησιμοποιείται για τη δημιουργία επαναληπτικών βρόχων στη C

FAIL PASS PASS οριακά

i Throughput: Ο ρυθμός ολοκλήρωσης έργου σε συγκεκριμένο χρόνο

Μέγιστη ροή. Κατευθυνόμενο γράφημα. Συνάρτηση χωρητικότητας. αφετηρίακός κόμβος. τερματικός κόμβος. Ροή δικτύου. με τις ακόλουθες ιδιότητες

Εξωτερική Αναζήτηση. Ιεραρχία Μνήμης Υπολογιστή. Εξωτερική Μνήμη. Εσωτερική Μνήμη. Κρυφή Μνήμη (Cache) Καταχωρητές (Registers) μεγαλύτερη ταχύτητα

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

Transcript:

Έλεγχος Ταυτοχρονισμού (εμπλουτισμένο λ έ υλικό) http://delab.csd.auth.gr/courses/c_dbimpl/

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

Εισαγωγικά γ Ένα σύνολο λειτουργιών το οποίο αποτελεί μία λογική λειτουργική μονάδα καλείται συναλλαγή (transaction). Μια συναλλαγή περιέχει: εντολές ανάγνωσης, εισαγωγής, διαγραφής ή ενημέρωσης των δεδομένων δ της ΒΔ. Σε επίπεδο σελίδων Χ, μπορούμε να θεωρήσουμε ότι μία συναλλαγή είτε διαβάζει τη Χ, είτε εγγράφει/τροποποιεί τη Χ. Η πολυπλοκότητα των σύγχρονων βάσεων δεδομένων οδηγεί στην ανάπτυξη αξιόπιστων μηχανισμών ελέγχου της ακεραιότητας των δεδομένων: πολλές συναλλαγές μπορεί να βρίσκονται σε εξέλιξη, προσπελαύνοντας κοινά δεδομένα. Ο έλεγχος ταυτοχρονισμού (concurrency control) διαχειρίζεται τις συναλλαγές έτσι ώστε να αποφεύγονται οι παθολογικές καταστάσεις. Συμπληρωματικά, υπάρχει ανάγκη ύπαρξης μηχανισμών επανάκτησης (recovery) δεδομένων. 3

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

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

Προβλήματα με χρονοδιαγράμματα Στο (β) θεωρείται ότι η Σ 1 απέτυχε και απορρίφθηκε. 6

Παράδειγμα T1: Read(A) T2: Read(A) A A+100 A A 2 Write(A) Read(B) Write(A) Read(B) B B+100 B B 2 Write(B) Περιορισμός: AB A=B Write(B) 7

Παράδειγμα Χρονοδιάγραμμα A T1 T2 A B Read(A); A A+100 25 25 Write(A); Read(B); B B+100; Write(B); Read(A);A A 2; Wit Write(A); Read(B);B B 2; Write(B); 125 250 125 250 250 250 8

Παράδειγμα Χρονοδιάγραμμα B T1 T2 A B Read(A);A A 2; 25 25 Read(A); A A+100 Write(A); Read(B); B B+100; Write(B); Write(A); Read(B);B B 2; Write(B); 50 150 50 150 150 150 9

Παράδειγμα Χρονοδιάγραμμα Γ T1 T2 A B Read(A); A A+100 25 25 Write(A); Read(B); B B+100; Wit Write(B); Read(A);A A 2; Write(A); Read(B);B B 2; Write(B); 125 250 125 250 250 250 10

Παράδειγμα Χρονοδιάγραμμα ρ Δ T1 T2 A B Read(A); A A+100 25 25 Write(A); Read(B); B B+100; Write(B); Read(A);A A 2; Write(A); Read(B);B B 2; Write(B); 125 250 50 150 250 150 11

Παράδειγμα Χρονοδιάγραμμα Ε T1 T2 A B Read(A); A A+100 25 25 Write(A); Read(B); B B+100; Write(B); Read(A);A A 1; Write(A); Read(B);B B 1; Write(B); 125 125 25 125 Αλλαγή της συναλλαγής Τ2 σε σχέση µε το Χρονοδιάγραµµα. 125 125 Η τελική κατάσταση είναι συνεπής από σύµπτωση! 12

Σωστά χρονοδιαγράμματα Πρέπει να ορίζονται ανεξάρτητα από: Αρχική κατάσταση. Τρόπο αλλαγής των δεδομένων. Η ορθότητα πρέπει να εξαρτάται απόκλειστικά από την σειρά των αναγνώσεων (reads) και εγγραφών (writes) To χρονοδιάγραμμα Γ ξαναγράφεται: S Γ =r1(a)w1(a)r2(a)w2(a)r1(b)w1(b)r2(b)w2(b) (A)r (A)r (B)w (B)r (B)w (B) 13

Σειριακό χρονοδιάγραμμα Σε ένα σειριακό (serial) χρονοδιάγραμμα οι εντολές μίας συναλλαγής δεν περιπλέκονται χρονικά με εντολές των άλλων συναλλαγών επιτυγχάνεται η συνέπεια. Υπάρχουν n! σειριακά χρονοδιαγράμματα οδ ρά ααγια n συναλλαγές. 14

Σειριοποίηση η Για να διατηρεί τη συνέπεια των δεδομένων της ΒΔ θα πρέπει το χρονοδιάγραμμα εκτέλεσης συναλλαγών να είναι ισοδύναμο με κάποιο σειριακό χρονοδιάγραμμα. Δύο χρονοδιαγράμματα καλούνται ισοδύναμα αν μετά την εκτέλεσή τους επιφέρουν τις ίδιες αλλαγές στη ΒΔ. Η παραγωγή ενός χρονοδιαγράμματος ισοδύναμου με ένα σειριακό χρονοδιάγραμμα καλείται σειριοποίηση (serializability), που μπορεί να έχει δύο μορφές: σειριοποίηση σύγκρουσης (conflict), και σειριοποίηση όψης (view). Σειριοποίηση επίτευξη (και) απομόνωσης!! 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). 16

Σειριοποίηση η όψης Ένα χρονοδιάγραμμα S καλείται σειριοποιήσιμο ως προς την όψη (view serializable) αν είναι ισοδύναμο ως προς την όψη ψημε κάποιο σειριακό χρονοδιάγραμμα. 17

Σειριοποίηση η σύγκρουσης ης( (1) Έστω χρονοδιάγραμμα 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

Σειριοποίηση η σύγκρουσης ης( (2) Αν ένα χρονοδιάγραμμα εκτέλεσης S μπορεί να μετασχηματισθεί σε ένα άλλο χρονοδιάγραμμα S' αλλάζοντας τη σειρά εκτέλεσης διαδοχικών εντολών που δεν συγκρούονται, τότε τα S και S' καλούνται ισοδύναμα ως προς τις συγκρούσεις (conflict equivalent). Το χρονοδιάγραμμα S καλείται σειριοποιήσιμο ως προς τις συγκρούσεις ς( (conflict serializable) αν είναι ισοδύναμο ως προς τις συγκρούσεις με ένα σειριακό χρονοδιάγραμμα. Τα εμπορικά συστήματα συνήθως παράγουν σειριοποιήσιμα ως προς τις συγκρούσεις χρονοδιαγράμματα, παρόλο που υπάρχουν και σειριοποιήσιμα χρονοδιαγράμματα άλλου τύπου (δεν είναι όλα τα σειριοποιήσιμα χρονοδιαγράμματα conflict serializable). 19

Σειριοποίηση η σύγκρουσης παράδειγμα 20

Σειριοποίηση η σύγκρουσης αντιπαράδειγμα Τα (β) και (γ) δεν είναι ισοδύναμα ως προς τις συγκρούσεις με το (α). 21

Επιπλέον παράδειγμα (1) Χρονοδιάγραμμα Γ διαφάνεια 10: S Γ =r1(a)w1(a)r2(a)w2(a)r1(b)w1(b)r2(b)w2(b) S Γ =r1(a)w1(a) r1(b)w1(b)r2(a)w2(a)r2(b)w2(b) T1 T2 22

Επιπλέον παράδειγμα (2) Για το χρονοδιάγραμμα Δ: S Δ =r1(a)w1(a)r2(a)w2(a) r2(b)w2(b)r1(b)w1(b) Κανένα από τα δύο ζεύγη δεν μπορεί να μετακινηθεί! Λόγω του Α: η Τ1 πρέπει να είναι πριν την Τ2: Τ1 Τ2 Λόγω του Β: η Τ2 πρέπει να είναι πριν την Τ1: Τ2 Τ1 Κύκλος! Αντίθετα στο προηγούμενο χρονοδιάγραμμα S Γ ίσχυε μόνο Τ1 Τ2 23

Γράφοι προήγησης ης Γράφος προήγησης (Precedence graph) P(S), όπου S είναι ένα χρονοδιάγραμμα. Κόμβοι: συναλλαγές στο S Ακμές: Ti Tj όταν pi(a), qj(a) είναι εντολές στο S pi(a) < S qj(a) //η pi(a) προηγείται της qj(a) στο S τουλάχιστον μία από τις pi, qj είναι write Παράδειγμα: w 3 (A)r 1 (A)w 1 (B)r 2 (B) w 2 (C)r 3 (C) P:Τ3 Τ1 Τ2 (Τ1) 24

Γράφοι προήγησης ης Λήμμα: S1, S2 conflict equivalent P(S1)=P(S2) Απόδειξη: Έστω ότι P(S1) P(S2) Ti: Ti Tj στο S1 αλλά όχι στο S2 S1 = pi(a)... qj(a) pi, qj S2 = qj(a) pi(a)... συγκρούονται S1, S2 δεν είναι ισοδύναμα ως προς τις συγκρούσεις. Προσοχή: αν P(S1)=P(S2) P(S2) δεν μπορούμε να πούμε σίγουρα αν τα S1, S2 είναι ισοδύναμα ως προς τις συγκρούσεις: Π.χ., S1=w1(A) r2(a) w2(b) r1(b) S2=r2(A) w1(a) r1(b) w2(b) 25

Θεώρημα Αν P(S1) ακυκλικός S1 σειριοποιήσιμο ως προς τις συγκρούσεις. ( ) Έστω P(S1) ακυκλικός S1 ισοδύναμo ως προς τις συγκρούσεις με ένα S που προέρχεται από την τοπολογική ταξινόμηση του P(S1) που βάσει ορισμού είναι σειριακό χρονοδιάγραμμα. ( ) Έστω S1 σειριοποιήσιμο ως προς τις συγκρούσεις Sserial: Sserial, S1 ισοδύναμα ως προς τις συγκρούσεις P(Sserial)=P(S1) P(S1) ακυκλικόγιατί και το P(Sserial) είναι ακυκλικό 26

Θέματα ταυτοχρονισμού που θα εξεταστούν Σειριοποίηση (προηγούμενες διαφάνειες) Επιβολή σειριοποίησης με μηχανισμούς κλειδώματος Επιβολή σειριοποίησης με χρονικές σφραγίδες. Αδιέξοδα 27

Μηχανισμοί κλειδώματος Χρησιμοποιούνται για την επιβολή ενός σειριοποιήσιμου χρονοδιαγράμματος. Η κλειδαριά (lock) αντιστοιχεί σε ένα τμήμα δεδομένων και είναι μεταβλητή που περιγράφει την κατάσταση του τμήματος των δεδομένων σε σχέση με τις λειτουργίες που ενεργούν στα συγκεκριμένα δεδομένα. 28

Πρωτόκολλο κλειδώματος Ένας μηχανισμός κλειδώματος πρέπει να ικανοποιεί κανόνες εγγύησης της συνέπειας των δεδομένων. Οι κανόνες αυτοί ορίζουν ένα πρωτόκολλο κλειδώματος (locking protocol) και εγγυώνται ότι το χρονοδιάγραμμα που προκύπτει είναι σειριοποιήσιμο. 29

Γενικοί κανόνες πρωτοκόλλων κλειδώματος Κανόνας 1 (επίπεδο συναλλαγής): Κάθε συναλλαγή T i, πριν εκτελέσει οποιαδήποτε πράξη ανάγνωσης ή εγγραφής στα δεδομένα Α: της έχει χορηγηθεί η κλειδαριά για τα δεδομένα αυτά, που δηλώνεται με την πράξη locki(a) ή li(a), δεν έχει απελευθερώσει την κλειδαριά, που δηλώνεται με την πράξη unlocki(a) ή ui(a) Δηλαδή ισχύει: Ti: li(a) pi(a) ui(a)... Επίσης κάθε συναλλαγή που κλειδώνει ένα στοιχείο, πρέπει μετέπειτα να το ξεκλειδώνει. Κανόνας 2 (επίπεδο χρονοδιαγράμματος): Καμία άλλη συναλλαγή T j, δεν μπορεί επιτυχώς να ζητήσει την κλειδαριά άl lj(a) ανάμεσα από τις πράξεις li(a) και ui(a) μιας άλλης συναλλαγής T i 30

Παραδείγματα Έστω τα ακόλουθα τρία χρονοδιαγράμματα. Πληρούνται οι κανόνες; l1(a)l1(b)r1(a)w1(b)l2(b)u1(a)u1(b) r2(b)w2(b)u2(b)l3(b)r3(b)u3(b) Η πράξη l2(b) παραβιάζει τον κανόνα 2. l1(a)r1(a)w1(b)u1(a)u1(b) 1(B) 1(B) l2(b) r2(b)w2(b)l3(b)r3(β)u3(b) 2(B)l3(B)r3(Β) Η πράξη w1(b) παραβιάζει τον κανόνα 1. H πράξη l3(b) είναι πριν μία πράξη u2(b), που κακώς απουσιάζει (παραβίαση και των δύο κανόνων). l1(a)r1(a)u1(a)l1(b)w1(b)u1(b)l2(b) r2(b)w2(b)u2(b)l3(b)r3(b)u3(b) Όλα ΟΚ! 31

Παράδειγμα με κλειδαριές T1 T2 A B l1(a); Read(A); 25 25 A A+100;Write(A); u1(a) 125 l1(b);read(b); B B+100; Write(B); u1(b); l2(a);read(a);a A 2; Write(A); u2(a); l2(b);read(b);b B 2; Write(B); u2(b); 250 50 150 250 150 32

Πρωτόκολλο κλειδώματος δύο φάσεων Πρωτόκολλο Κλειδώματος Δύο Φάσεων (two phase locking 2PL): Επιπλέον των 2 γενικών κανόνων υπάρχει και 3 ος κανόνας, σύμφωνα με τον οποίο κάθε συναλλαγή αποτελείται από 2 φάσεις: φάση ανάπτυξης (growing phase), όπου η συναλλαγή ζητά τη χορήγηση η κλειδαριών και δεν επιτρέπεται η απελευθέρωση κλειδαριών, φάση συρρίκνωσης (shrinking phase), όπου η συναλλαγή απελευθερώνει κλειδαριές και δεν επιτρέπεται να ζητήσει τη χορήγηση νέων κλειδαριών. 33

Παράδειγμα με κλειδαριές και 2PL T1 l1(a);read(a) A A+100;Write(A) l1(b); u1(a) Read(B);B B+100 Write(B); u1(b) T2 l2(a);read(a) A Ax2;Write(A);l2(B) (B) l2(b); u2(a);read(b) B Bx2;Write(B);u2(B); Καθυστέρηση αναμένοντας χορήγηση της κλειδαριάς 34

Αδιέξοδα Έστω οι δύο ίδιες συναλλαγές με το προηγούμενο παράδειγμα, αλλα με αντίστροφη σειρά πράξεων στην Τ2. Ένα πιθανό χρονοδιάγραμμα που οδηγεί σε αδιέξοδο είναι το ακόλουθο: T1 l1(a); Read(A) A A+100;Write(A) l 1(B) T2 l2(b);read(b) B Bx2;Write(B) l 2(A) Καθυστέρηση η αναμένοντας χορήγηση της κλειδαριάς 35

Ιδιότητες 2PL χρονοδιαγραμμάτων (1) Έστω SH(Ti) ο χρόνος που η συναλλαγή Ti αποδεσμεύει για 1 η φορά μία κλειδαριά. Aν Ti Tj στο χρονοδιάγραμμα S SH(Ti) < S SH(Tj) (j) Απόδειξη: Ti Tj σημαίνει ότι το χρονοδιάγραμμα οδ ρα α S έχει την μορφή: S = pi(a) qj(a) ; p,q συγκρούονται Σύμφωνα με τους κανόνες 12 1,2: S = pi(a) ui(a) lj(a)... qj(a) Σύμφωνα με τον Κανόνα 3: SH(Ti) δεν είναι μετά τον χρόνο της ui(a). Η ui(a) είναιπριν την lj(a), πουείναιπριν πριν τοχρόνοsh(tj) SH(Tj). Άρα, SH(Ti) < S SH(Tj) 36

Ιδιότητες 2PL χρονοδιαγραμμάτων (2) Θεώρημα: Τα 2PL χρονοδιαγράμματα είναι σειριοποιήσιμα ως προς τις συγκρούσεις. Απόδειξη: (1) Έστω ότι ο P(S) έχει κύκλο T1 T2. Tn T1 (2) Τότε:SH(T1) < SH(T2) <... < SH(T1) (3) Αυτό είναι αδύνατο, άρα ο P(S) είναι ακυκλικός. (4) S είναι σειριοποιήσιμο ως προς τις συγκρούσεις. 37

Περιορισμοί ρ S1: w1(x) w3(x) w2(y) w1(y) Το S1 είναι σειριοποιήσιμο (T2, T1, T3). Αλλά δεν μπορεί να υλοποιηθεί με το 2PL πρωτόκολλο. Τι συμβαίνει με τα χρονοδιαγράμματα: w1(a) w2(a) w1(b) w2(b) w1(a) w2(a) w2(b) w1(b) 38

Μηχανισμοί κλειδώματος Ένα σημαντικό πρόβλημα με το μηχανισμό που παρουσιάστηκε πριν είναι ότι δεν μπορούν ταυτόχρονα πολλές συναλλαγές να διαβάζουν μόνο τα ίδια δεδομένα. Αυτό αντιμετωπίζεται με πολλαπλούς τύπους κλειδαριών. Δύο είναι οι βασικοί τύποι κλειδαριών στην πράξη: κλειδαριά ανάγνωσης (read) ή κλειδαριά διαμοιρασμού (shared), που επιτρέπει σε μία συναλλαγή να διαβάσει τα δεδομένα αλλά όχι να τα ενημερώσει ή να τα διαγράψει, κλειδαριά αποθήκευσης (write) ή αποκλειστική κλειδαριά (exclusive), που επιτρέπει σε μία συναλλαγή να διαβάσει ή να ενημερώσει τα δεδομένα. 39

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

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

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

Μηχανισμοί κλειδώματος Αντιπαράδειγμα 43

Πρωτόκολλο κλειδώματος δύο φάσεων 44

Πρωτόκολλο κλειδώματος δύο φάσεων 45

Αναβάθμιση κλειδαριών (1) Έστω 2 συναλλαγές, με το ακόλουθο χρονοδιάγραμμα: Τ1 L R(A); R(A); L W(B) καθυστέρηση L W(B); R(B); W(B); U(A); U(B); Τ2 L R(A); R(A); L R(B); R(B); U(A); U(B); 46

Αναβάθμιση κλειδαριών (2) H T1 μπορεί να εκτελεστεί πιο γρήγορα αν πρώτα ζητήσει κλειδαριά ανάγνωσης στο Β και μετα την αναβαθμίσει: Τ1 L R(A); R(A); L R(B); R(B) L W(B) καθυστέρηση η L W(B); W(B); U(A); U(B); Τ2 L R(A); R(A); L R(B); R(B); U(A); U(B); H L R(Β) αναβαθμίστηκε σε L W(B). 47

Δημιουργία αδιεξόδων νέου τύπου Λόγω των αναβαθμίσεων των κλειδαριών: T1 L R1(A) L W1(A) Aδιέξοδο T2 L R2(A) L W2(A) Τέτοια αδιέξοδα αποφεύγονται με χρήση κλειδαριών ενημέρωσης. Όταν χρησιμοποιούνται τέτοιες κλειδαριές, είναι και οι μόνες που αναβαθμίζονται. Αν χορηγηθεί κλειδαριά ενημέρωσης στα δεδομένα δ Α, τότε δεν χορηγείται καμία άλλα κλειδαριά για το Α. 48

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

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

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

Δενδρικό πρωτόκολλο Αν διάφορες συναλλαγές κλειδώνουν τα ίδια δεδομένα, τότε εξαιτίας του δενδρικού πρωτοκόλλου, τα κλειδώνουν με την ίδια σειρά. 52

Θέματα ταυτοχρονισμού που θα εξεταστούν Σειριοποίηση (προηγούμενες διαφάνειες) Επιβολή σειριοποίησης με μηχανισμούς κλειδώματος Επιβολή σειριοποίησης με χρονικές σφραγίδες. Αδιέξοδα 53

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

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

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

Πρωτόκολλο διάταξης χρονικών σφραγίδων 57

Πρωτόκολλο διάταξης χρονικών σφραγίδων 58

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

Κανόνας αποθήκευσης του Thomas 60

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

Σύγκριση μηχανισμών μ (1) Το σκεπτικό των μηχανισμών κλειδώματος είναι απαισιόδοξο, καθώς θεωρούν ότι αν δεν επιβληθούν, θα προκύψει μη σειριοποιήσιμο χρονοδιάγραμμα. Αντίθετα, οι μηχανισμοί χρονικών σφραγίδων έχουν αισιόδοξο σκεπτικό, καθώς θεωρούν ότι τα χρονοδιαγράμματα επιλέγονται συνήθως σωστά και χρεάζεται να επέμβουν μόνο όταν αυτό δεν ισχύει. Αν κάτι δεν πάει καλα: Μηχανισμοί κλειδώματος: καθυστερούν συναλλαγές. Μηχανισμοί χρον. σφραγίδων: τερματισμός και επανεκκίνηση 62

Πρακτικά: Σύγκριση μηχανισμών μ (2) Όταν λίγες συναλλαγές συγκρούονται: καλύτεροι οι μηχανισμοί χρονικών σφραγίδων. Όταν συχνά συναλλαγές διαβάζουν/αποθηκεύουν τα ίδια δεδομένα δ (δηλ. λ υπάρχουν συγκρούσεις): ) καλύτεροι οι μηχανισμοί κλειδώματος. Υβριδικοί μηχανισμοί μπορούν επίσης να χρησιμοποιηθούν. 63

Θέματα ταυτοχρονισμού που θα εξεταστούν Σειριοποίηση (προηγούμενες διαφάνειες) Επιβολή σειριοποίησης με μηχανισμούς κλειδώματος Επιβολή σειριοποίησης με χρονικές σφραγίδες. Αδιέξοδα 64

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

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

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

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

Αναγνώριση και κατάργηση η αδιεξόδου 69

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

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

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

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

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

Αποφυγή αδιεξόδου με χρονικές σφραγίδες Α τρόπος: wait die atde T1 (ts =10) Η Τ3 ζητάει κλειδαριά που έχει η Τ1. Η Τ3 τερματίζεται T3 (ts =25) Η Τ1 ζητάει κλειδαριά που έχει η Τ2. ΗΤ1 περιμένει. T2 (ts =20) Η Τ2 ζητάει κλειδαριά που έχει η Τ3. Η Τ2 περιμένει. 75

Αποφυγή αδιεξόδου με χρονικές σφραγίδες Β τρόπος: wound wait at T1 Η Τ1 ζητάει κλειδαριά που έχει η Τ2. Η Τ1 περιμένει. (ts =25) Η Τ3 ζητάει κλειδαριά που έχει η Τ1. Η Τ1 τερματίζεται T3 (ts =10) T2 (ts =20) Η Τ2 ζητάει κλειδαριά που έχει η Τ3. Η Τ2 περιμένει. ρμ 76

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

Ορθότητα τεχνικής με χρονικές σφραγίδες Δεν πρέπει να υπάρχει κύκλος στον αντίστοιχο γράφο αναμονής. Στην τεχνική wait die die, μία συναλλαγή περιμένει μόνο για απελευθέρωση κλειδαριών από νεότερες ερες συναλλαγές όχι κύκλος. Στην τεχνική wound wait, μία συναλλαγή περιμένει μόνο για απελευθέρωση κλειδαριών από παλαιότερες συναλλαγές όχι κύκλος. 78

Ατέρμονη αναμονή Και στις δύο τεχνικές (wait die, wound wait), wait), οι παλαιότερες συναλλαγές προκαλούν τερματισμό των νεότερων. Οι συναλλαγές δεν αλλαζούν χρονική σφραγίδα. Η παλαιότερη συναλλαγή ποτέ δεν τερματίζεται από το σύστημα. Μία συναλλαγή που τερματίζεται από το σύστημα, σε κάποια στιγμή θα γίνει η συναλλαγή με την πιο μικρή χρονική σφραγίδα άρα θα εκτελεστεί. 79

Σύγκριση τεχνικών και μεθόδων Οι τερματισμοί είναι πιο συχνοί στην τεχνική wait die παρά στην τεχνική wound wait. Επειδή στην wound wait είναι πιο σπάνιο μία νεότερη συναλλαγή να έχει προλάβει να δεσμεύσει κλειδαριά που χρειάζεται και μία παλαιότερη συναλλαγή. Όμως, οι πράξεις που έχει προλάβει να κάνει μία συναλλαγή που τερματίζεται (και χάνονται) λόγω της wait die είναι πολύ λιγότερες από αυτές που χάνονται λόγω της wound die Επειδή η συναλλαγή που τερματίζεται λόγω της wait die είναι ακόμη στη φάση δέσμευσης κλειδαριών. Οι μεθοδολογίες με χρονικές σφραγίδες είναι απλούστερες από αυτές με γράφους αναμονής. Αλλά, οι μεθοδολογίες με χρονικές σφραγίδες τερματίζουν συναλλαγές ακόμη κι αν δεν υπάρχει σίγουρα αδιέξοδο. 80