Βάσεις Δεδομένων ΙΙ Διάλεξη 1 η Επεξεργασία Δοσοληψιών Δ. Χριστοδουλάκης - Α. Φωκά Τμήμα Μηχανικών Η/Υ & Πληροφορικής - Εαρινό Εξάμηνο 2007 Ορισμός Προβλήματος Σύστημα Επεξεργασίας Δοσοληψιών Συστήματα με μεγάλες βάσεις δεδομένων Εκατοντάδες ταυτόχρονους χρήστες που εκτελούν δοσοληψίες Πολυχρηστικά (multi-user) ΣΔΒΔ Απαραίτητη η ταυτόχρονη εκτέλεση προγραμμάτων χρηστών Οχρήστηςπρέπειναπιστεύει ότι είναι ο μόνος που χρησιμοποιεί το σύστημα 1
Διαπεπλεγμένη Επεξεργασία Διαπεπλεγμένη (interleaved) Επεξεργασία Συνδρομική εκτέλεση προγραμμάτων Όταν μια εκτελούμενη διαδικασία απαιτεί πράξεις εισόδου/εξόδου μετάγεται στην εκτέλεση κάποιου άλλου προγράμματος Απαραίτητο όταν υπάρχει μία μόνο ΚΜΕ Α Β Α Β χρόνος Παράλληλη Επεξεργασία Παράλληλη Διαδικασία Όταν υπάρχουν πολλές ΚΜΕ Πολλές διαδικασίες εκτελούνται ταυτόχρονα Α Β χρόνος 2
Δοσοληψία (transaction) Δοσοληψία (transaction) ΜιαλογικήμονάδαεπεξεργασίαςτηςΒΔ Περιλαμβάνει μία ή περισσότερες πράξεις προσπέλασης στη ΒΔ Εισαγωγή, διαγραφή, τροποποίηση ή ανάκτηση Όρια δοσοληψίας begin transaction, end transaction Δοσοληψία ανάγνωσης μόνο (read-only transaction) Μόνο ανακτούνται δεδομένα, δεν ενημερώνουν τη ΒΔ Δοσοληψία (transaction) Το ΣΔΒΔ ενδιαφέρεται μόνο για τα δεδομένα που γράφονται ή διαβάζονται στη ΒΔ Πράξεις: Ανάγνωση(Χ) R(X) Διαβάζει ένα στοιχείο της ΒΔ με όνομα Χ και το αποθηκεύει στη μεταβλητή του προγράμματος Χ Εγγραφή(Χ) W(X) Καταχωρεί την τιμή της μεταβλητής Χ του προγράμματος στο στοιχείο της ΒΔ με όνομα Χ 3
Παράδειγμα Θεωρούμε δύο δοσοληψίες R(X) X=Χ-N W(X) R(Y) Y=Y+N W(Y) R(X) X=X+M W(X) Χ, Υ κρατήσεις για τις πτήσεις Χ και Υ μεταφέρει Ν κρατήσεις θέσεων από την πτήση Χ στη Y. κρατά Μ θέσεις στη πτήση Χ Παράδειγμα Αν οι δύο δοσοληψίες υποβληθούν ταυτόχρονα Δεν γνωρίζουμε αν η Τ1 θα εκτελεστεί πριν την Τ2 ήτοανάποδο Το αποτέλεσμα πρέπει να είναι ισοδύναμο ανεξάρτητα από τη σειρά εκτέλεσης των δοσοληψιών. 4
Παράδειγμα Σειριακή Εκτέλεση Τ1 Τ2 R(X) read 100 X=Χ-N X = 70 W(X) write X = 70 R(Y) read 90 Y=Y+N Y = 120 W(Y) write Y = 120 X = 100 κρατήσεις Υ = 90 κρατήσεις Μεταφορά κρατήσεων Ν = 30 Νέες κρατήσεις Μ = 5 R(X) read 70 X=X+M X = 75 W(X) write X = 75 Παράδειγμα Σειριακή Εκτέλεση Τ2 Τ1 R(X) read 100 X=X+M X = 105 W(X) write X = 105 X = 100 κρατήσεις Υ = 90 κρατήσεις Μεταφορά κρατήσεων Ν = 30 Νέες κρατήσεις Μ = 5 R(X) read 105 X=Χ-N X = 75 W(X) write X = 75 R(Y) read 90 Y=Y+N Y = 120 W(Y) write Y = 120 5
Παράδειγμα Απώλεια Ενημερώσεων R(X) read 100 X=Χ-N X = 70 W(X) write X = 70 R(Y) read 90 Y=Y+N Y = 120 W(Y) write Y = 120 R(X) read 100 X=X+M X = 105 W(X) write X = 105 X = 100 κρατήσεις Υ = 90 κρατήσεις Μεταφορά κρατήσεων Ν = 30 Νέες κρατήσεις Μ = 5 ΗτιμήτουΧείναιλάθος Παράδειγμα Προσωρινή Ενημέρωση R(X) read 100 X=Χ-N X = 70 W(X) write X = 70 R(Y) read 90 Y=Y+N Y = 120 W(Y) write Y = 120 X = 100 κρατήσεις Υ = 90 κρατήσεις Μεταφορά κρατήσεων Ν = 30 Νέες κρατήσεις Μ = 5 Ασταθής Ανάγνωση (Dirty Read) R(X) read 70 X=X+M X = 75 W(X) write X = 75 Τι θα συμβεί αν η Τ1 αποτύχει? ΗΤ2 θα έχει διαβάσει ανύπαρκτη τιμή 6
Παράδειγμα Λανθασμένη Συνάθροιση T4 R(X) read 100 X=Χ-N X = 70 W(X) write X = 70 R(Y) read 90 Y=Y+N Y = 120 W(Y) write Y = 120 Τ=0 Τ=0 R(X) read 70 T=T+X T=70 R(Y) read 90 T=T+Y T=160 X = 100 κρατήσεις Υ = 90 κρατήσεις Μεταφορά κρατήσεων Ν = 30 Άθροισμα Τ To συναθροιστικό αποτελέσμα Τείναιλάθος (μικρότερο κατά Ν) Παράδειγμα Μη Επαναλήψιμη Ανάγνωση T4 R(X) read 100 R(Χ) read 105... R(X) read 100 X=X+M X = 105 W(X) write X = 105 X = 100 κρατήσεις Υ = 90 κρατήσεις Μεταφορά κρατήσεων Ν = 30 Άθροισμα Τ Διαβάζει δύο διαφορετικές τιμές για το ίδιο στοιχείο 7
Πράξεις Δοσοληψιών R(X) W(X) COMMIT (επικύρωση) επιτυχία - όλες οι τροποποιήσεις επικυρώνονται και δεν μπορούν να αναιρεθούν ABORT (ακύρωσηήανάκληση) αποτυχία - όλες οι τροποποιήσεις πρέπει να αναιρεθούν Πράξεις Δοσοληψιών Μια δοσοληψία μπορεί να επικυρωθεί (commit) αφού ολοκληρώσει όλες τις πράξεις της ακυρωθεί (abort) αφού εκτελέσει κάποιες από τις πράξεις της Το ΣΔΒΔ logs όλες τις πράξεις μπορεί να αναιρέσει (undo) τις πράξεις μιας ακυρωμένης (aborted) δοσοληψίας. 8
Διάγραμμα Μετάπτωσης Καταστάσεων R / W COMMIT RUNNING ABORT ABORT Επιθυμητές Ιδιότητες των Δοσοληψιών Αtomicity (Ατομικότητα) είτε όλες οι πράξεις είτε καμία Consistency (Συνέπεια) διατήρηση συνέπειας της ΒΔ Isolation (Απομόνωση) δεν εμπλέκεται με άλλη δοσοληψία που εκτελείται ταυτόχρονα Durability (Μονιμότητα ή διάρκεια) μετά την επικύρωση μιας δοσοληψίας οι αλλαγές δεν είναι δυνατόν να χαθούν 9
Επιθυμητές Ιδιότητες των Δοσοληψιών Αtomicity (Ατομικότητα) Απαιτεί την εκτέλεση της δοσοληψίας μέχρι να ολοκληρωθεί Τεχνικές Ανάκαμψης αναιρούν σε περίπτωση αποτυχίας κάθε επιδρασή της Consistency (Συνέπεια) Υπευθυνότητα του προγραμματιστή Διατήρηση συνέπειας της ΒΔ Isolation (Απομόνωση) Έλεγχος Συνδρομικότητας Οι ενημερώσεις δεν καθίστανται ορατές σε άλλες δοσοληψίες πριν την επικύρωσή της Durability (Μονιμότητα ή διάρκεια) Τεχνικές Ανάκαμψης Χρονοπρογράμματα Δοσοληψία ακολουθία από πράξεις εγγραφής και ανάγνωσης που τελειώνει με μια πράξη επικύρωσης (commit) ήμεμιαπράξηακύρωσης(abort) Χρονοπρόγραμμα (ή χρονικό δοσοληψιών) Διάταξη εκτέλεσης των πράξεων των διαφόρων δοσοληψιών όταν εκτελούνται συνδρομικά με διαπεπλεγμένο τρόπο 10
Χρονοπρόγραμμα Χρονοπρόγραμμα (schedule) S των δοσοληψιών,,.., Tn είναι μια διάταξη των πράξεων τους με τον περιορισμό ότι για κάθε δοσοληψία Ti που συμμετέχει στο S οι πράξεις της Ti στο S πρέπει να εμφανίζονται με την ίδια σειρά που εμφανίζονται στην Ti Ωστόσο πράξεις από άλλες δοσοληψίες Τj είναι δυνατόν να διαπλέκονται με τις πράξεις της Τi Χρονοπρόγραμμα Χρησιμοποιούμε δείκτη στις πράξεις που να δείχνει σε ποια δοσοληψία αναφέρoνται R 1 (X) W 1 (X) R 1 (Y) W 1 (Y) C 1 R 2 (X) W 2 (X) C 2 Χρονοπρόγραμμα S: R 1 (X) W 1 (X) R 1 (Y) W 1 (Y) C 1 R 2 (X) W 2 (X) C 2 11
Χρονοπρόγραμμα Υπάρχουν τόσα διαφορετικά χρονοπρογράμματα όσες και πιθανές εκτελέσεις R 1 (X) W 1 (X) R 1 (Y) W 1 (Y) C 1 R 2 (X) W 2 (X) C 2 Χρονοπρόγραμμα S: R1(X) R2(X) W1(X) R1(Y) W2(X) C2 W1(Y) C1 Χρονοπρόγραμμα Υπάρχουν τόσα διαφορετικά χρονοπρογράμματα όσες και πιθανές εκτελέσεις R 1 (X) W 1 (X) R 1 (Y) W 1 (Y) Α 1 R 2 (X) W 2 (X) C 2 Πράξη ακύρωσης (abort) Χρονοπρόγραμμα S: R1(X) R2(X) W1(X) R1(Y) W2(X) C2 W1(Y) A1 12
Πράξεις σε Αντίθεση Δύο πράξεις σ ενα χρονοπρόγραμμα είναι σε αντίθεση όταν ικανοποιούν και τις τρεις παρακάτω συνθήκες: Ανήκουν σε διαφορετικές δοσοληψίες Προσπελαύνουν το ίδιο στοιχείο Χ Τουλάχιστον μια από τις δύο πράξεις είναι η εγγραφή στοιχείου Χ Πράξεις σε Αντίθεση Σημασία έχει η σχετική θέση (διάταξη) των πράξεων που συγκρούονται σημασία έχει ησχετικήθέση(διάταξη) των πράξεων που S1: R συγκρούονται 1 (X) R 2 (X) W 1 (X) R 1 (Y) W 2 (X) C 2 W 1 (Y) C 1 S2: R 2 (X) R 1 (X) W 1 (X) R 1 (Y) W 2 (X) C 2 W 1 (Y) C 1 Τα S1 και S2 ισοδύναμα (διαφέρουν μόνο στη διάταξη πράξεων που δε συγκρούονται) μερική διάταξη 13
Πλήρες Χρονοπρόγραμμα Ένα χρονοπρόγραμμα (schedule) S δοσοληψιών,,.., Tn λέγεται πλήρες όταν ισχύουν οι παρακάτω συνθήκες: οι πράξεις του S είναι ακριβώς οι πράξεις των,,.., Tn συμπεριλαμβανομένης μιας πράξης ακύρωσης ή επικύρωσης ως τελευταίας πράξης σε κάθε δοσοληψία στο χρονοπρόγραμμα για κάθε δοσοληψία Ti που συμμετέχει στο S οι πράξεις της Ti στο S πρέπει να εμφανίζονται με την ίδια σειρά που εμφανίζονται στην Ti Για κάθε ζεύγος συγκρουόμενων πράξεων, μια από τις δύο πρέπει να προηγείται της άλλης στο χρονοπρόγραμμα Επικυρωμένη Προβολή Σε ένα σύστημα υποβάλλονται συνεχώς νέες δοσοληψίες Δύσκολο να διαμορφωθούν πλήρη χρονοπρογράμματα Επικυρωμένη προβολή C(S) Ενός χρονοπρογράμματος S η οποία περιλαμβάνει μόνο τις πράξεις στο S που ανήκουν σε επικυρωμένες δοσοληψίες Δηλ. τις δοσοληψίες Τi για τις οποίες η πράξη επικύρωσης Ci ανήκει στο S 14
Χρονοπρογράμματα με δυνατότητα ανάκαμψης Ένα χρονοπρόγραμμα S έχει δυνατότητα ανάκαμψης Αν καμία δοσοληψία T στο S δεν επικυρώνεται έως ότου επικυρωθούν όλες οι δοσοληψίες Τ οι οποίες τροποποίησαν ένα δεδομένο που διαβάζει η S S1: R 1 (X) W 1 (X) R 2 (X) R 1 (Y) W 2 (X) C 2 A 1 Αποφυγή διάδοσης ανακλήσεων Μιαμηεπικυρωμένηδοσοληψίαπρέπεινα ανακληθεί γιατί διάβασε κάποιο στοιχείο απο μια δοσοληψία που απέτυχε. S1: R 1 (X) W 1 (X) R 2 (X) R 1 (Y) W 2 (X) W1(Υ) A 1 Α2 Μια δοσοληψία αποφεύγει τη διάδοση ανακλήσεων αν διαβάζει στοιχεία μόνο από επικυρωμένες δοσοληψίες 15
Αυστηρό χρονοπρόγραμμα Οι δοσοληψίες δεν μπορούν ούτε να διαβάζουν ούτε να γράψουν ένα στοιχείο Χ έως ότου επικυρωθεί η δοσοληψία η τελευταία δοσοληψία που έγραψε το Χ Σειριακά χρονοπρογράμματα Σειριακά Χρονοπρογράμματα: χρονοπρογράμματα που δεν διαπλέκουν πράξεις διαφορετικών δοσοληψιών (οι πράξεις κάθε δοσοληψίας εκτελούνται διαδοχικά, χωρίς παρεμβολή πράξεων από άλλη δοσοληψία) S: R 1 (X) W 1 (X) R 1 (Y) W 1 (Y) C 1 R 2 (X) W 2 (X) C 2 16
Ισοδύναμα Χρονοπρογράμματα Ισοδύναμα Χρονοπρογράμματα: Για κάθε κατάσταση της ΒΔ, το αποτέλεσμα της εκτέλεσης του πρώτου χρονοπρογράμματος είναι το ίδιο με το αποτέλεσμα του δεύτερου χρονοπρογράμματος Ένα χρονοπρόγραμμα ισοδύναμο με ένα σειριακό είναι σωστό Σηρειοποιήσιμο Χρονοπρόγραμμα Σειριοποιήσιμο Χρονοπρόγραμμα: Ένα χρονοπρόγραμμα που είναι ισοδύναμο με κάποιο σειριακό Για n δοσοληψίες υπάρχουν n! πιθανά σειριακά χρονοπρογράμματα Πότε δύο χρονοπρογράμματα είναι ισοδύναμα; 17
Ισοδύναμα Χρονοπρογράμματα Ισοδύναμα Χρονοπρογράμματα: Για κάθε κατάσταση της ΒΔ, το αποτέλεσμα της εκτέλεσης του πρώτου χρονοπρογράμματος είναι το ίδιο με το αποτέλεσμα του δεύτερου χρονοπρογράμματος Ισοδύναμα Χρονοπρογράμματα R(X) X=X+10 W(X) S1 R(X) X=X*1.1 W(X) S2 Ισοδύναμα για αρχική τιμή Χ=100 Για άλλες τιμές του Χ δεν είναι ισοδύναμα Η ισοδυναμία αποτελέσματος δεν χρησιμοποιείται για τον ορισμό ισοδυναμίας χρονοπρογραμμάτων 18
Ισοδυναμία Χρονοπρογραμμάτων Ισοδυναμία αντιθέσεων πιο περιοριστική αλλά υπάρχει αποδοτικός τρόπος να ελεγχθεί Ισοδυναμία όψεων πιο γενική, αλλά ο έλεγχος έχει αποδειχθεί ότι είναι NP-complete πρόβλημα Ισοδυναμία Αντιθέσεων Ισοδυναμία Αντιθέσεων Η διάταξη κάθε ζεύγους αντιτιθέμενων πράξεων είναι ίδια και στα δύο χρονοπρογράμματα Αντιτιθέμενες πράξεις: Ανήκουν σε διαφορετικές δοσοληψίες, προσπελαύνουν το ίδιο στοιχείο και τουλάχιστον μία από τις πράξεις είναι εγγραφή 19
Ισοδυναμία Αντιθέσεων S1: R 1 (X) R 2 (X) W 1 (X) R 1 (Y) W 2 (X) C 2 W 1 (Y) C 1 S2: R 2 (X) R 1 (X) W 1 (X) R 1 (Y) W 2 (X) C 2 W 1 (Y) C 1 S3: R 2 (X) W 2 (X) C 2 R 1 (X) W 1 (X) R 1 (Y) W 1 (Y) C 1 S4: R 2 (X) R 1 (X) W 1 (X) R 1 (Y) W 1 (Y) C 1 W 2 (X) C 2 Σειριοποιήσιμο Αντιθέσεων Σειριοποιήσιμο Αντιθέσεων Ένα χρονοπρόγραμμα S είναι σειριοποιήσιμο αντιθέσεων αν είναι ισοδύναμο αντιθέσεων με κάποιο σειριακό χρονοπρόγραμμα S. Σε αυτήν την περίπτωση μπορούμε να αναδιατάξουμε τις μη συγκρουόμενες πράξεις στο S μέχρι να σχηματίσουμε ένα ισοδύναμο σειριακό χρονοπρόγραμμα. 20
Σειριοποιήσιμο Αντιθέσεων S1: R 1 (X) R 2 (X) W 1 (X) R 1 (Y) W 2 (X) C 2 W 1 (Y) C 1 S2: R 2 (X) R 1 (X) W 1 (X) R 1 (Y) W 2 (X) C 2 W 1 (Y) C 1 S3: R 1 (X) W 1 (X) R2(X) W2(X) C2 R 1 (Y) W 1 (Y) C 1 Σειριοποιήσιμα; Sα: R 1 (X) W 1 (X) R 1 (Y) W 1 (Y) C 1 R 2 (X) W 2 (X) C 2 Sβ: R 2 (X) W 2 (X) C 2 R 1 (X) W 1 (X) R 1 (Y) W 1 (Y) C 1 Έλεγχος Σειριοποιησιμότητας Αντιθέσεων Γράφος Προτεραιότητας (precedence graph) ή Γράφος Σειριοποίησης (serialization graph) Κατευθυνόμενος γράφος G=(N,E) Σύνολο κόμβων Ν={Τ 1,Τ 2,...,Τ Ν } Σύνολο ακμών Ε={α 1,α 2,...,α m } Ένας κόμβος για κάθε δοσοληψία Τ i Μία ακμή Τ i T j αν μια πράξη της T i προηγείται μιας συγκρουόμενης πράξης της Τ j 21
Γράφος προτεραιότητας : R 1 (A) W 1 (A), R 1 (B) W 1 (B) : R 2 (A) W 2 (A) R 2 (B) W 2 (B) A B Aλγόριθμος Ελέγχου Σειριοποιησιμότητας Αντιθέσεων Για κάθε δοσοληψία Τ i στο χρονοπρόγραμμα S, δημιούργησε έναν κόμβο Ti στο γράφο προτεραιοτήτων Δημιούργησε μια ακμή Τ i T j για κάθε ζεύγος αντίθετων πράξεων στο χρονοπρόγραμμα S R i (X)W j (X) W i (X)R j (X) W i (X)W j (X) Το χρονοπρόγραμμα S είναι σειριοποιήσιμο αν και μόνο αν ο γράφος προτεραιότητας δεν έχει κυκλώματα 22
Κύκλωμα Κύκλωμα σ έναν κατευθυνόμενο γράφο Μια ακολουθία ακμών C=((Τ j T k ), (Τ k T p ),, (Τ i T j )) Με την ιδιότητα Ο αρχικός κόμβος κάθε ακμής είναι ο ίδιος με τον τελικό κόμβο της προηγούμενης ακμής και Ο αρχικός κόμβος της πρώτης ακμής είναι ίδιος με τον τελικό κόμβο της τελευταίας ακμής Γράφος προτεραιότητας S1: R1(X) W1(X) R1(Y) W1(Y) C1 R2(X) W2(X) C2 S2: R2(X) W2(X) C2 R1(X) W1(X) R1(Y) W1(Y) C1 S3: R1(X) R2(X) W1(X) R1(Y) W2(X) C2 W1(Y) C1 S4: R1(X) W1(X) R2(X) W2(X) C2 R1(Y) W1(Y) C1 X X X X X 23
Γράφος προτεραιότητας S1: R2(Z)R2(Y)W2(Y)R3(Y)R3(Z)R1(X)W1(X)W3(Y)W3(Z)C3R2(X)R1(Y)W1(Y)C1W2(X)C2 S2: R3(Y)R3(Z)R1(X)W1(X)W3(Y)W3(Z)C3R2(Z)R1(Y)W1(Y)C1R2(Y)W2(Y)R2(X)W2(X)C2 X Y X,Y Y Y,Z Y Y,Z T3 T3 Ισοδυναμία Όψεων Δυο χρονοπρογράμματα S1 και S2 είναι ισοδύναμα όψεων αν: Τα S1 και S2 περιέχουν το ίδιο σύνολο δοσοληψιών και τις ίδιες πράξεις των συγκεκριμένων δοσοληψιών Για κάθε πράξη R i (X) στο S1 μετά από μια πράξη W j (X) πρέπει να ισχύει η ίδια συνθήκη και στο S2. Οι πράξεις ανάγνωσης βλέπουν την ίδια όψη Αν η πράξη W k (Y) στο S1 είναι η τελευταία πράξη που τροποποιεί το Y τότε πρέπει να ισχύει η ίδια συνθήκη και στο S2. Η τελική κατάσταση της βάσης θα είναι η ίδια 24
Ισοδυναμία Όψεων Yπόθεση εγγραφής υπό περιορισμό Πριν κάθε πράξη εγγραφής εκτελείται μια πράξη ανάγνωσης της ίδιας δοσοληψίας και Η τιμή που καταχωρείται εξαρτάται μόνο από την πράξη ανάγνωσης που προηγήθηκε Οι ορισμοί σειριοποιησιμότητας όψεων και αντιθέσεων είναι παρόμοιοι Ισοδυναμία Όψεων Κάθε χρονοπρόγραμμα που είναι σειριοποιήσιμο αντιθέσεων είναι και σειριοποιήσιμο όψεων Χωρίς να ισχύει το αντίστροφο Αλγόριθμος σειριοποιησιμότητας όψεων ΝPcomplete 25