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

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

Βάσεις Δεδομένων II 2001-2002 Ευαγγελία Πιτουρά 1 Τεχνικές Ελέγχου Συνδρομικότητας.

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


Παρουσίαση με θέμα: "Βάσεις Δεδομένων II 2001-2002 Ευαγγελία Πιτουρά 1 Τεχνικές Ελέγχου Συνδρομικότητας."— Μεταγράφημα παρουσίασης:

1 Βάσεις Δεδομένων II 2001-2002 Ευαγγελία Πιτουρά 1 Τεχνικές Ελέγχου Συνδρομικότητας

2 Βάσεις Δεδομένων II 2001-2002 Ευαγγελία Πιτουρά 2 Επανάληψη Επεξεργασίας Δοσοληψιών

3 Βάσεις Δεδομένων II 2001-2002 Ευαγγελία Πιτουρά 3 Επανάληψη: Δοσοληψίες Δοσοληψία (transaction) εκτέλεση ενός προγράμματος που προσπελαύνει ή τροποποιεί το περιεχόμενο της βάσης δεδομένων το πώς βλέπει το ΣΔΒΔ τα προγράμματα των χρηστών  Η συνδρομικότητα (concurrency) επιτυγχάνεται από το ΣΔΒΔ που διαπλέκει τις πράξεις (αναγνώσεις/εγγραφές) των διαφόρων συναλλαγών

4 Βάσεις Δεδομένων II 2001-2002 Ευαγγελία Πιτουρά 4 Επανάληψη: Δοσοληψίες Δοσοληψία (transaction) Ένα πρόγραμμα χρήστη μπορεί να εκτελεί πολλές λειτουργίες στα δεδομένα που ανακτεί από τη ΒΔ, αλλά το ΣΔΒΔ ενδιαφέρεται μόνο για τα δεδομένα που διαβάζονται/γράφονται στη ΒΔ Ανάγνωση(Χ) - R(X) Εγγραφή(Χ) - W(X)

5 Βάσεις Δεδομένων II 2001-2002 Ευαγγελία Πιτουρά 5 Επανάληψη: Πράξεις μιας Δοσοληψίας BEGIN R(X) W(X) END COMMIT (επικύρωση) - επιτυχία - όλες οι τροποποιήσεις επικυρώνονται και δεν μπορούν να αναιρεθούν ABORT (ακύρωση ή ανάκληση) - αποτυχία - όλες οι τροποποιήσεις πρέπει να αναιρεθούν Πράξεις Δοσοληψιών  Μια δοσοληψία μπορεί να να επικυρωθεί (commit) αφού ολοκληρώσει όλες τις πράξεις της ενώ μπορεί να ακυρωθεί (abort) αφού εκτελέσει κάποιες από τις πράξεις της

6 Βάσεις Δεδομένων II 2001-2002 Ευαγγελία Πιτουρά 6 Επανάληψη: Επιθυμητές Ιδιότητες μιας Δοσοληψίας Α tomicity (ατομικότητα) - είτε όλες οι πράξεις είτε καμία C onsistency (συνέπεια) - διατήρηση συνέπειας της ΒΔ I solation (απομόνωση) - δεν αποκαλύπτει ενδιάμεσα αποτελέσματα D urability (μονιμότητα ή διάρκεια) - μετά την επικύρωση μιας δοσοληψίας οι αλλαγές δεν είναι δυνατόν να χαθούν Ιδιότητες Δοσοληψιών

7 Βάσεις Δεδομένων II 2001-2002 Ευαγγελία Πιτουρά 7 Επανάληψη: Επιθυμητές Ιδιότητες μιας Δοσοληψίας Αtomicity (ατομικότητα) ΤΕΧΝΙΚΕΣ ΑΝΑΚΑΜΨΕΙΣ Consistency (συνέπεια) ΥΠΕΥΘΥΝΟΤΗΤΑ ΤΟΥ ΠΡΟΓΡΑΜΜΑΤΙΣΤΗ Isolation (απομόνωση) ΕΛΕΓΧΟΣ ΣΥΝΔΡΟΜΙΚΟΤΗΤΑΣ Durability (μονιμότητα ή διάρκεια) ΤΕΧΝΙΚΕΣ ΑΝΑΚΑΜΨΕΙΣ

8 Βάσεις Δεδομένων II 2001-2002 Ευαγγελία Πιτουρά 8 Επανάληψη: Ορισμός Δοσοληψίας zΠαράδειγμα:: Θεωρείστε τις δύο συναλλαγές (Xacts): T1:BEGIN R(X), X=Χ-N, W(X), R(Y), Y=Y+N, W(Y), END T2:BEGIN R(X) X=X+M, W(X), END v Τ1: R 1 (X) W 1 (X) R 1 (Y) W 1 (Y) C 1 v T2: R 2 (X) W 2 (X) C 2 Μια δοσοληψία είναι μια ακολουθία από πράξεις εγγραφής και ανάγνωσης που τελειώνει με μια πράξη επικύρωσης (commit) ή με μια πράξη ακύρωσης (abort)

9 Βάσεις Δεδομένων II 2001-2002 Ευαγγελία Πιτουρά 9 Επανάληψη: Ορισμός Χρονοπρογράμματος Εκφράζει μια συγκεκριμένη εκτέλεση ενός συνόλου δοσοληψιών Οι πράξεις των δοσοληψιών εμφανίζονται στο χρονοπρόγραμμα με τη σειρά που εκτελούνται Συγκεκριμένα Ένα χρονοπρόγραμμα (schedule) S των δοσοληψιών T 1, T 2,.., T n είναι μια διάταξη των πράξεων τους με τον περιορισμό ότι για κάθε δοσοληψία T i που συμμετέχει στο S οι πράξεις της T i στο S πρέπει να εμφανίζονται με την ίδια σειρά που εμφανίζονται στην T i

10 Βάσεις Δεδομένων II 2001-2002 Ευαγγελία Πιτουρά 10 Επανάληψη: Ορισμός Χρονοπρογράμματος R 1 (X) W 2 (X) C 2 T1 T2 W 1 (X) R 1 (Y) R 2 (X) W 1 (Y) C 1 S: R 1 (X) R 2 (X) W 1 (X) R 1 (Y) W 2 (X) C 2 W 1 (Y) C 1 Τόσα διαφορετικά χρονοπρογράμματα όσες και πιθανές εκτελέσεις

11 Βάσεις Δεδομένων II 2001-2002 Ευαγγελία Πιτουρά 11 Επανάληψη: Ορισμός Χρονοπρογράμματος S1: R 1 (X) R 2 (X) W 1 (X) R 1 (Y) W 2 (X) C 2 W 1 (Y) C 1 Σύγκρουση πράξεων σε χρονοπρόγραμμα Δύο πράξεις σε ένα χρονοπρόγραμμα συγκρούονται αν (α) ανήκουν σε διαφορετικές δοσοληψίες, (β) προσπελαύνουν το ίδιο στοιχείο, και (γ) μια από αυτές είναι πράξη εγγραφής (W) Ποια είναι η σχέση των χρονοπρογραμμάτων S1 και S2; S1: R 1 (X) R 2 (X) W 1 (X) R 1 (Y) W 2 (X) C 2 W 1 (Y) C 1

12 Βάσεις Δεδομένων II 2001-2002 Ευαγγελία Πιτουρά 12 Επανάληψη: Σειριοποιησιμότητα  Σειριακά Χρονοπρογράμματα: χρονοπρογράμματα που δεν διαπλέκουν πράξεις διαφορετικών δοσοληψιών (οι πράξεις κάθε δοσοληψίας εκτελούνται διαδοχικά, χωρίς παρεμβολή πράξεων από άλλη δοσοληψία) Ένα σειριακό χρονοπρόγραμμα είναι σωστό Παρατήρηση: Αν κάθε δοσοληψία διατηρεί τη συνέπεια, τότε κάθε σειριακό χρονοπρόγραμμα διατηρεί τη συνέπεια S: R 1 (X) W 1 (X) R 1 (Y) W 1 (Y) C 1 R 2 (X) W 2 (X) C 2

13 Βάσεις Δεδομένων II 2001-2002 Ευαγγελία Πιτουρά 13 Επανάληψη: Σειριοποιησιμότητα  Ισοδύναμα Χρονοπρογράμματα : Για κάθε κατάσταση της ΒΔ, το αποτέλεσμα της εκτέλεσης του πρώτου χρονοπρογράμματος είναι το ίδιο με το αποτέλεσμα του δεύτερου χρονοπρογράμματος Ένα χρονοπρόγραμμα ισοδύναμο με ένα σειριακό είναι σωστό

14 Βάσεις Δεδομένων II 2001-2002 Ευαγγελία Πιτουρά 14 Επανάληψη: Ισοδυναμία Χρονοπρογραμμάτων βάσει Συγκρούσεων  Ισοδύναμα Χρονοπρογράμματα βάσει Συγκρούσεων: Δυο χρονοπρογράμματα είναι ισοδύναμα βάσει συγκρούσεων αν η διάταξη κάθε ζεύγους συγκρουόμενων πράξεων είναι ίδια και στα δυο χρονοπρογράμματα.

15 Βάσεις Δεδομένων II 2001-2002 Ευαγγελία Πιτουρά 15 Επανάληψη: Σειριοποιησιμότητα  Σειριοποιήσιμο Χρονοπρόγραμμα : Ένα χρονοπρόγραμμα που είναι ισοδύναμο με κάποιο σειριακό  Σειριοποιησιμότητα βάσει Συγκρούσεων: Ένα χρονοπρόγραμμα S είναι σειριοποιήσιμο βάσει συγκρούσεων αν είναι ισοδύναμο βάσει συγκρούσεων με κάποιο σειριακό χρονοπρόγραμμα S’. Σε αυτήν την περίπτωση μπορούμε να αναδιατάξουμε τις μη συγκρουόμενες πράξεις στο S μέχρι να σχηματίσουμε ένα ισοδύναμο σειριακό χρονοπρόγραμμα.

16 Βάσεις Δεδομένων II 2001-2002 Ευαγγελία Πιτουρά 16 Επανάληψη: Έλεγχος Σειριοποιησιμότητας Γράφος προήγησης (precedence graph) ή γράφος σειριοποιησιμότητας (serialization graph) Κόμβος :: Δοσοληψία Ακμή T i  T j αν μια πράξη της T i προηγείται μιας συγκρουόμενης πράξης της Τ j

17 Βάσεις Δεδομένων II 2001-2002 Ευαγγελία Πιτουρά 17 Επανάληψη: Έλεγχος Σειριοποιησιμότητας T1: R 1 (A) W 1 (A), R 1 (B) W 1 (B) T2: R 2 (A) W 2 (A) R 2 (B) W 2 (B) T1 T2 A B Η εττικέτα στην ακμή δείχνει σε πιο δεδομένο συγκρούονται

18 Βάσεις Δεδομένων II 2001-2002 Ευαγγελία Πιτουρά 18 Επανάληψη: Έλεγχος Σειριοποιησιμότητας Θεώρημα Ένα χρονοπρόγραμμα είναι σειριοποιήσιμο (βάσει συγκρούσεων) αν και μόνο αν ο γράφος προήγησής του είναι ακυκλικός.

19 Βάσεις Δεδομένων II 2001-2002 Ευαγγελία Πιτουρά 19 Επανάληψη: Χρονοπρογράμματα και Δυνατότητα Ανάκαμψης  Χρονοπρογράμματα με δυνατότητα ανάκαμψης αν καμιά δοσοληψία Τ στο S δεν επικυρώνεται έως ότου επικυρωθούν όλες οι δοσοληψίες οι οποίες τροποποίησαν ένα δεδομένο που διαβάζει η Τ  Χρονοπρογράμματα χωρίς διάδοση ανακλήσεων αν κάθε δοσοληψία Τ στο S διαβάζει μόνο στοιχεία που έχουν γραφεί από επικυρωμένες δοσοληψίες  Αυστηρά Χρονοπρογράμματα οι δοσοληψίες δεν μπορούν ούτε να διαβάσουν ούτε να γράψουν ένα στοιχείο Χ έως ότου επικυρωθεί η δοσοληψία που έγραψε το Χ

20 Βάσεις Δεδομένων II 2001-2002 Ευαγγελία Πιτουρά 20 Τέλος Επανάληψης

21 Βάσεις Δεδομένων II 2001-2002 Ευαγγελία Πιτουρά 21 Τεχνικές Ελέγχου Συνδρομικότητας Ο χρήστης δεν ασχολείται με τη συνδρομικότητα Το ΣΔΒΔ εξασφαλίζει «σωστή συνδρομικότητα», γενικά δρομολογεί τις πράξεις των δοσοληψιών ώστε να προκύπτουν χρονοπρογράμματα σειριοποιήσιμα βάσει συγκρούσεων μέσω τεχνικών ελέγχου συνδρομικότητας

22 Βάσεις Δεδομένων II 2001-2002 Ευαγγελία Πιτουρά 22 Τεχνικές Ελέγχου Συνδρομικότητας Τεχνικές 1. Κλειδώματος (locking) για να αποτρέψουν τη συνδρομική (ταυτόχρονη) προσπέλαση των δεδομένων από πολλές δοσοληψίες 2. Διάταξης χρονοσημάτων (timestamps) 3. Πιστοποίησης (validation) μιας δοσοληψίας (αισιόδοξα πρωτόκολλα)

23 Βάσεις Δεδομένων II 2001-2002 Ευαγγελία Πιτουρά 23 Τεχνικές Κλειδώματος ένα κλειδί ανά δεδομένο μια δοσοληψία πριν προσπελάσει ένα δεδομένο Χ ζητά ένα κλειδί -- αίτηση lock(Χ) μπορεί να προσπελάσει το δεδομένο, μόνο αφού της δοθεί το κλειδί -- πότε παίρνει το κλειδί; μια δοσοληψία μπορεί να άρει το κλειδί στο δεδομένο -- αίτηση unlock (Χ)

24 Βάσεις Δεδομένων II 2001-2002 Ευαγγελία Πιτουρά 24 Τεχνικές Κλειδώματος Αρκεί αυτό για να δώσει σειριοποιήσιμα χρονοπρογράμματα; Γενικά όχι. Χρειάζεται (όπως θα δούμε) διάταξη των πράξεων lock-unlock κάθε δοσοληψίας

25 Βάσεις Δεδομένων II 2001-2002 Ευαγγελία Πιτουρά 25 Τεχνικές Κλειδώματος ένα απλό κλείδωμα: στην πιο απλή περίπτωση, ένα μόνο είδος κλειδιού lock(Χ) :: πραγματοποιείται αν το δεδομένο δεν είναι ήδη κλειδωμένο, αλλιώς η δοσοληψία περιμένει μέχρι να ελευθερωθεί το δεδομένο μια δομή (πίνακας) (δεδομένο, μια ένδειξη (κλειδωμένο - μη-κλειδωμένο), ουρά με δοσοληψίες που περιμένουν) unlock (Χ)

26 Βάσεις Δεδομένων II 2001-2002 Ευαγγελία Πιτουρά 26 Τεχνικές Κλειδώματος Ιδέα: πολλές δοσοληψίες να μπορούν να διαβάσουν ένα δεδομένο ταυτόχρονα Δύο ειδών κλειδιά: διαμοιραζόμενο (shared) κλειδί ή κλειδί ανάγνωσης αποκλειστικό (exclusive) κλειδί ή κλειδί εγγραφής

27 Βάσεις Δεδομένων II 2001-2002 Ευαγγελία Πιτουρά 27 Τεχνικές Κλειδώματος μια δοσοληψία πριν διαβάσει ένα δεδομένο Χ ζητά ένα διαμοιραζόμενο κλειδί -- αίτηση S-lock(Χ) μια δοσοληψία πριν γράψει ένα δεδομένο Χ ζητά ένα αποκλειστικό κλειδί -- αίτηση Χ-lock(Χ) η αίτηση για κλειδί δίνεται αν δεν υπάρχει «συγκρούμενο κλειδί» (πάλι) μια δοσοληψία μπορεί να άρει το κλειδί στο δεδομένο -- αίτηση unlock (Χ)

28 Βάσεις Δεδομένων II 2001-2002 Ευαγγελία Πιτουρά 28 Τεχνικές Κλειδώματος Πίνακας συμβατότητας κλειδιών S-Lock(X) X-Lock(X) S-Lock(X)  X-Lock(X)

29 Βάσεις Δεδομένων II 2001-2002 Ευαγγελία Πιτουρά 29 Τεχνικές Κλειδώματος S-Lock(Y) R 1 (Y) Unlock(Y) T1 T2 S-Lock(X) W 1 (X) Unlock(X) C 1 S-Lock(X) R 2 (X) Unlock(X) X-Lock(Y) W 2 (Y) Unlock(Y) C 2 S: R 1 (Y) R 2 (X) W 2 (Y) C 2 W 1 (X) C 1 Δεν αρκεί για σειριοποιησιμότητα T1 T2 Y X Λύση; Κλείδωμα Δύο Φάσεων

30 Βάσεις Δεδομένων II 2001-2002 Ευαγγελία Πιτουρά 30 Κλείδωμα Δυο Φάσεων Πρωτόκολλο κλειδώματος δυο φάσεων (Two-Phase Locking 2PL) Όλες οι πράξεις (αιτήσεις ) κλειδώματος μιας δοσοληψίας προηγούνται της πρώτης πράξης (αίτησης) άρσης κλειδώματος της διαδικασίας Δηλαδή, μόλις μια δοσοληψία αφήσει (unlock) ένα κλειδί δεν μπορεί να ζητήσει ξανά κλειδί

31 Βάσεις Δεδομένων II 2001-2002 Ευαγγελία Πιτουρά 31 Κλείδωμα Δυο Φάσεων Κάθε δοσοληψία δυο φάσεις μια φάση επέκτασης ή εξάπλωσης μια φάση συρρίκνωσης

32 Βάσεις Δεδομένων II 2001-2002 Ευαγγελία Πιτουρά 32 Τεχνικές Κλειδώματος Παρατηρήσεις Οι αιτήσεις lock και unlock πρέπει να είναι ατομικές πράξεις Αναβάθμιση κλειδιού: μια δοσοληψία που κατέχει ένα διαμοιραζόμενο κλειδί μπορεί να αναβαθμιστεί ώστε να κατέχει ένα αποκλειστικό κλειδί

33 Βάσεις Δεδομένων II 2001-2002 Ευαγγελία Πιτουρά 33 Αδιέξοδα Οι τεχνικές κλειδώματος μπορεί να προκαλέσουν αδιέξοδα (deadlocks) S-Lock(Y) R 1 (Y) T1 T2 S-Lock(X) R 2 (X) X-Lock(X) X-Lock(Y) H T1 περιμένει την Τ2 να ελευθερώσει το Χ, και η Τ2 περιμένει την Τ1 να ελευθερώσει το Υ

34 Βάσεις Δεδομένων II 2001-2002 Ευαγγελία Πιτουρά 34 Αντιμετώπιση Αδιεξόδων Δυο τεχνικές: Πρωτόκολλα Πρόληψης Αδιεξόδων (Deadlock Prevention): Αποφυγή δημιουργίας αδιεξόδου Πρωτόκολλα Ανίχνευσης Αδιεξόδου (Deadlock Detection): Eλέγχουμε περιοδικά αν το σύστημα βρίσκεται σε κατάσταση αδιεξόδου

35 Βάσεις Δεδομένων II 2001-2002 Ευαγγελία Πιτουρά 35 Πρόληψη Αδιεξόδων Κάθε δοσοληψία πρέπει να κλειδώσει όλα τα δεδομένα που χρειάζεται πριν ξεκινήσει Αν δε μπορεί να κλειδώσει έστω και ένα, δε κλειδώνει κανένα και προσπαθεί ξανά

36 Βάσεις Δεδομένων II 2001-2002 Ευαγγελία Πιτουρά 36 Πρόληψη Αδιεξόδων «σπάσιμο» του κύκλου  κάποια διάταξη μεταξύ των δοσοληψιών Κάθε δοσοληψία Τ έχει ένα χρονόσημο ΤS(T): Μια διαδικασία παίρνει ένα χρονόσημο κατά την εκκίνησή της. TS(T1) < TS(T2), σημαίνει ότι η T1 ξεκίνησε πριν την Τ2 ιδέα: μια δοσοληψία περιμένει μόνο αν το κλειδί το έχει μια δοσοληψία με μικρότερο (μεγαλύτερο) χρονόσημο, αλλιώς ακυρώνεται

37 Βάσεις Δεδομένων II 2001-2002 Ευαγγελία Πιτουρά 37 Πρόληψη Αδιεξόδων Δύο σχήματα αναμονής-θανάτωσης τραυματισμού-αναμονής

38 Βάσεις Δεδομένων II 2001-2002 Ευαγγελία Πιτουρά 38 Πρόληψη Αδιεξόδων Έστω ότι η Τ i ζητά να κλειδώσει το X που είναι κλειδωμένο από την Τ j αναμονή-θανάτωση Αν TS(T i ) < TS(T j ) Ti περιμένει αλλιώς ακυρώνεται ηΤ i και επανεκκινείται με το ίδιο χρονόσημα τραυματισμός -αναμονή Αν TS(T i ) > TS(T j ) Ti περιμένει αλλιώς ακυρώνεται η Τ j και επανεκκινείται με το ίδιο χρονόσημα ευνοείται η παλιότερη ευνοείται η νεότερη

39 Βάσεις Δεδομένων II 2001-2002 Ευαγγελία Πιτουρά 39 Ανίχνευση Αδιεξόδων Κατασκευή γράφου αναμονής (wait-for graph) κόμβοι : δοσοληψίες ακμή από τον κόμβο T i στον T j, αν η T i περιμένει την T j να αφήσει ένα κλειδί Περιοδικά έλεγχος για κύκλους στο γράφο αναμονής

40 Βάσεις Δεδομένων II 2001-2002 Ευαγγελία Πιτουρά 40 Ανίχνευση Αδιεξόδων T1T2 T4T3 T1T2 T4T3 Παράδειγμα: T1: S-Lock(A), R(A), S-Lock(B) T2: X-Lock(B),W(B) X-Lock(C) T3: S-Lock(C), R(C) X-Lock(A) T4: X-Lock(B) Β C B

41 Βάσεις Δεδομένων II 2001-2002 Ευαγγελία Πιτουρά 41 Τεχνικές Ελέγχου Συνδρομικότητας Τεχνικές  1. Κλειδώματος (locking) 2. Διάταξης χρονοσημάτων (timestamps) 3. Πιστοποίησης (validation)

42 Βάσεις Δεδομένων II 2001-2002 Ευαγγελία Πιτουρά 42 Διάταξη Χρονοσημάτων Το χρονόσημα δημιουργείται από το ΣΔΒΔ και προσδιορίζει μοναδικά μια δοσοληψία Ιδέα: διάταξη των δοσοληψιών με βάση το χρονόσημα τους (δηλαδή, χρονοπρόγραμμα ισοδύναμο με σειριακό στο οποίο οι δοσοληψίες εμφανίζονται διατεταγμένες με βάση τις τιμές των χρονοσημάτων)  άρα η σειρά προσπέλασης στα δεδομένα πρέπει να μη παραβιάζει τη σειριοποιησιμότητα

43 Βάσεις Δεδομένων II 2001-2002 Ευαγγελία Πιτουρά 43 Διάταξη Χρονοσημάτων Δηλαδή: αν μια πράξη a i μιας δοσοληψίας T i συγκρούεται με μια πράξη a j μιας δοσοληψίας T j και TS(T i ) < TS(T j ), τότε η a i πρέπει να προηγείται της a j. Αλλιώς, restart τη δοσοληψία.

44 Βάσεις Δεδομένων II 2001-2002 Ευαγγελία Πιτουρά 44 Διάταξη Χρονοσημάτων Κάθε δεδομένο Χ έχει δύο τιμές χρονοσημάτων: ΧΣΑ(Χ) (χρονόσημα ανάγνωσης) το μεγαλύτερο μεταξύ όλων των χρονοσημάτων των δοσοληψιών που διάβασαν το Χ ΧΣΕ(Χ) (χρονόσημα εγγραφής) το μεγαλύτερο μεταξύ όλων των χρονοσημάτων των δοσοληψιών που έγραψαν το Χ

45 Βάσεις Δεδομένων II 2001-2002 Ευαγγελία Πιτουρά 45 Διάταξη Χρονοσημάτων Η δοσοληψία T με ΧΣ(Τ) εκτελεί μια πράξη ανάγνωσης R(X) Αν ΧΣ(Τ) < ΧΣE(Χ) (αυτό παραβιάζει τη διάταξη) η Τ ακυρώνεται, μπορεί να ξαναρχίσει αλλά με μεγαλύτερο χρονόσημα (γιατί;) Αν ΧΣ(Τ) > ΧΣE(Χ) η ανάγνωση είναι επιτρεπτή θέσε το ΧΣΑ(Χ) = max{XΣA(T), ΧΣ(ΤΑ)} Οι αλλαγές στο ΧΣΑ(Χ) πρέπει να γράφονται στο δίσκο! Αυτό και το ότι η δοσοληψίες ξαναρχίζουν προκαλεί overhead

46 Βάσεις Δεδομένων II 2001-2002 Ευαγγελία Πιτουρά 46 Διάταξη Χρονοσημάτων Η δοσοληψία T με ΧΣ(Τ) εκτελεί μια πράξη εγγραφής W(X) Αν ΧΣΑ(Χ) > ΧΣ(Τ) ή ΧΣΕ(Χ) > ΧΣ(Τ) η Τ ακυρώνεται (γιατί;) Βελτιστοποίηση: τι σημαίνει ΧΣΕ(Χ) > ΧΣ(Τ)

47 Βάσεις Δεδομένων II 2001-2002 Ευαγγελία Πιτουρά 47 Διάταξη Χρονοσημάτων T1 T2 R(A) W(A) Commit W(A) Commit Ο κανόνας του Thomas για εγγραφές (Thomas Write Rule) Μπορούμε να αγνοήσουμε μερικές «ξεπερασμένες» εγγραφές, δε χρειάζεται επανεκκίνηση της Τ (η εγγραφή της Τ ακολουθείται από άλλη εγγραφή, χωρίς ενδιάμεση ανάγνωση) Επιτρέπει σειριοποίησιμα - αλλά όχι σειριοποιήσιμα βάσει συγκρούσεων

48 Βάσεις Δεδομένων II 2001-2002 Ευαγγελία Πιτουρά 48 Διάταξη Χρονοσημάτων zΤροποποίηση yBuffer all writes μέχρι την επικύρωση του writer (αλλά το ΧΣΕ(Χ) τροποποιείται κανονικά yBlock readers T (όπου ΧΣ(T) > ΧΣΕ(Χ)) μέχρι να επικυρωθεί ο writer του Χ zΌμοια με το να κρατούν οι writers X-Locks μέχρι την επικύρωση τους αλλά όχι ακριβώς 2PL T1 T2 W(A) R(A) W(B) Commit Δυστυχώς, παράγει και χρονοπρογράμματα χωρίς δυνατότητα ανάκαμψης

49 Βάσεις Δεδομένων II 2001-2002 Ευαγγελία Πιτουρά 49 Τεχνικές Ελέγχου Συνδρομικότητας Τεχνικές  1. Κλειδώματος (locking)  2. Διάταξης χρονοσημάτων (timestamps) 3. Πιστοποίησης (validation)

50 Βάσεις Δεδομένων II 2001-2002 Ευαγγελία Πιτουρά 50 Αισιόδοξες Τεχνικές Οι τεχνικές κλειδώματος είναι συντηρητικές (αποφεύγονται οι συγκρούσεις) Μειονεκτήματα επιβάρυνση (overhead) χειρισμού κλειδώματος αποφυγή/ανίχνευση αδιεξόδων lock contention για τα δεδομένα που χρησιμοποιούνται συχνά Αν οι συγκρούσεις είναι σπάνιες, μεγαλύτερη συγχρονικότητα, αν αντί για κλείδωμα, έλεγχος για συγκρούσεις όταν μια δοσοληψία επικυρώνεται (commits)

51 Βάσεις Δεδομένων II 2001-2002 Ευαγγελία Πιτουρά 51 Αισιόδοξες Τεχνικές Κάθε δοσοληψία έχει τρεις φάσεις ΑΝΑΓΝΩΣΗ: η δοσοληψία διαβάζει από τη βδ, αλλά τροποποιεί προσωπικά αντίγραφα των δεδομένων ΠΙΣΤΟΠΟΙΗΣΗ: έλεγχος για συγκρούσεις ΕΓΓΡΑΦΗ: γράφει τα τοπικά αντίγραφα στη βδ

52 Βάσεις Δεδομένων II 2001-2002 Ευαγγελία Πιτουρά 52 Πιστοποίηση Έλεγχος συνθηκών που είναι ικανές για να εξασφαλίσουν ότι δεν υπήρχαν συγκρούσεις Κάθε δοσοληψία Τ έχει ένα μοναδικό αριθμό TID (χρονόσημα) To TID ανατίθεται στο τέλος της φάσης ΑΝΑΓΝΩΣΗΣ (ακριβώς πριν αρχίσει η πιστοποίηση) Με κάθε δοσοληψία ReadSet(T): το σύνολο των δεδομένων που διάβασε η T WriteSet(T): το σύνολο των δεδομένων που διάβασε η T

53 Βάσεις Δεδομένων II 2001-2002 Ευαγγελία Πιτουρά 53 Πιστοποίηση zΓια όλα τα i και j τέτοια ώστε Ti < Tj, η Ti τελειώνει πριν αρχίσει η Tj. Ti Tj RVW RVW ΕΛΕΓΧΟΣ 1

54 Βάσεις Δεδομένων II 2001-2002 Ευαγγελία Πιτουρά 54 Πιστοποίηση Ti RVW Tj RVW zΓια όλα τα i και j τέτοια ώστε Ti < Tj: - η Τi τελειώνει πριν αρχίσει η φάση εγγραφής της Tj - WriteSet(Ti)  ReadSet(Tj) =  ΕΛΕΓΧΟΣ 2

55 Βάσεις Δεδομένων II 2001-2002 Ευαγγελία Πιτουρά 55 Πιστοποίηση Ti RVW Tj RVW zΓια όλα τα i και j τέτοια ώστε Ti < Tj: - η Τi τελειώνει τη φάση ανάγνωσης πριν αρχίσει η φάση aνάγνωσης της Τj - WriteSet(Ti)  ReadSet(Tj) =  - WriteSet(Ti)  WriteSet(Tj) =  ΕΛΕΓΧΟΣ 3

56 Βάσεις Δεδομένων II 2001-2002 Ευαγγελία Πιτουρά 56 Πιστοποίηση zΠιστοποίηση της T (έλεγχος 1 & 2): valid = true; // S = set of Xacts that committed after Begin(T) < foreach Ts in S do { if ReadSet(Ts) does intersect WriteSet(T) then valid = false; } if valid then { install updates; // Write phase Commit T } > else Restart T τέλος κρίσιμης περιοχής

57 Βάσεις Δεδομένων II 2001-2002 Ευαγγελία Πιτουρά 57 Διακριτότητα zΔύσκολο να αποφασίσουμε τη διακριτότητα (granularity) για το κλείδωμα Tuples Tables Pages Database contains

58 Βάσεις Δεδομένων II 2001-2002 Ευαγγελία Πιτουρά 58 Δυναμικές Βάσεις Δεδομένων zΑν επιτρέψουμε εγγραφές και διαγραφές στοιχείων, τα πρωτόκολλα δε δουλεύουν σωστά (ούτε το αυστηρό 2PL) yT1 κλειδώνει όλες τις σελίδες που περιέχουν εγγραφές sailor με rating = 1, και βρίσκει τον πιο ηλικιωμένο (έστω, age = 71). yΜετά, η T2 εισάγει ένα νέο sailor; rating = 1, age = 96. yT2 επίσης διαγράφει τον πιο ηλικιωμένο ναυτικό με rating = 2 (and, έστω, age = 80), και επικυρώνεται. yT1 τώρα κλειδώνει όλες τις σελίδες που περιέχουν εγγραφές sailor με rating = 2, βρίσκει τον πιο ηλικιωμένο (έστω, age = = 63). zΔεν υπάρχει συνεπή κατάσταση της ΒΔ όπου η Τ1 να είναι «σωστή»

59 Βάσεις Δεδομένων II 2001-2002 Ευαγγελία Πιτουρά 59 Δυναμικές Βάσεις Δεδομένων zΗ T1 έμμεσα υποθέτει ότι έχει κλειδώσει το σύνολο όλων των εγγραφών με rating = 1. yΗ υπόθεση ισχύει μόνο αν δεν προστεθούν εγγραφές ενώ εκτελείται η T1 yΧρειάζεται κάποιος μηχανισμός για να το επιβάλει: κλείδωμα ευρετηρίου (index locking) και κλείδωμα συνθηκών (predicate locking.) Τα παράδειγμα δείχνει ότι η σειριοποιησιμότητα βάσει συγκρούσεων δίνει σειριοποιησιμότητα μόνο όταν τα αντικείμενα στη βδ είναι σταθερά

60 Βάσεις Δεδομένων II 2001-2002 Ευαγγελία Πιτουρά 60 Δυναμικές Βάσεις Δεδομένων zΑν υπάρχει ένα πυκνό ευρετήριο στο γνώρισμα rating, η T1 θα μπορούσε να κλειδώσει τη σελίδα του ευρετηρίου που περιέχει τις εγγραφές μεrating = 1. yΑν δεν υπάρχει καμία εγγραφή με rating = 1 r=1 Data Index Κλείδωμα Ευρετηρίου

61 Βάσεις Δεδομένων II 2001-2002 Ευαγγελία Πιτουρά 61 Δυναμικές Βάσεις Δεδομένων zΚλείδωσε όλες τις εγγραφές που ικανοποιούν κάποια συνθήκη λογικής, π.χ., age > 2*salary. zΤο κλείδωμα ευρετηρίου είναι μια ειδική μορφή κλειδώματος συνθήκης που το ευρετήριο επιτρέπει αποδοτική υλοποίηση του κλειδώματος συνθήκης Κλείδωμα Συνθήκης

62 Βάσεις Δεδομένων II 2001-2002 Ευαγγελία Πιτουρά 62 Πολλαπλές Εκδόσεις O O’ O’’ ΚΥΡΙΟ ΤΜΗΜΑ (Τρέχουσες εκδόσεις των σντικειμένων της ΒΔ) ΣΥΛΛΟΓΗ ΕΚΔΟΣΕΩΝ VERSION POOL (Παλιές εκδόσεις που μπορεί να είναι χρήσιμες σε κάποιους ενεργούς αναγνώστες v Οι αναγνώστες μπορούν πάντα να προχωρήσουν -- αλλά μπορεί να χρειαστεί να περιμένουν μέχρι την επικύρωση των εγγραφών Ιδέα: κάθε εγγραφή παράγει ένα καινούργιο αντίγραφο ενώ οι αναγνώσεις διαβάζουν ένα κατάλληλο παλιό

63 Βάσεις Δεδομένων II 2001-2002 Ευαγγελία Πιτουρά 63 Πολλαπλές Εκδόσεις και Χρονοσήματα zΚάθε έκδοση ενός αντικειμένου έχει ως ΧΣΕ το ΧΣ της Τ που την έγγραψε και ως ΧΣΑ το ΧΣ της Τ που διάβασε αυτήν την έκδοση πιο πρόσφατα zΟι εκδόσεις συνδέονται (chained backward) μπορούμε να σβήσουμε εκδόσεις που είναι πολύ «παλιές για να έχουν ενδιαφέρον» zΚάθε δοσοληψία: Reader ή Writer. yWriter μπορεί να γράψει κάποιο αντικείμενο; Reader μόνο διαβάσει. yΚάθε ΤΑ δηλώνει αν είναι Reader όταν ξεκινά.

64 Βάσεις Δεδομένων II 2001-2002 Ευαγγελία Πιτουρά 64 Πολλαπλές Εκδόσεις και Χρονοσήματα zΓια την ανάγνωση ενός αντικειμένου: yΒρες την πιο νεώτερη έκδοση με ΧΣΕ < ΧΣ(Τ) (Η αναζήτηση ξεκινά από την πιο πρόσφατη - κοίτα σχήμα) yΑν υποθέσουμε ότι όλες οι εκδόσεις υπάρχουν, μια Reader Τ δε χρειάζεται να επανικηθεί. T old new εκδόσεις συνδεδεμένες βάσει του ΧΣΕ Reader Τ

65 Βάσεις Δεδομένων II 2001-2002 Ευαγγελία Πιτουρά 65 Πολλαπλές Εκδόσεις και Χρονοσήματα zΓια την ανάγνωση, ακολούθησε το πρωτόκολλο του Reader zΓια να γράψεις ένα αντικείμενο Χ: yΒρες τη νεώτερη έκδοση με ΧΣΕ(Χ) < ΧΣΕ(Τ) yΑν ΧΣΑ(Χ) < ΧΣ(Τ), η T δημιουργεί ένα αντίγραφο CΧ του Χ, με ένα δείκτη στο Χ, και ΧΣΕ(CΧ) = ΧΣ(T), ΧΣΑ(CΧ) = ΧΣ(T). (Οι εγγραφές γίνονται buffered μέχρι την επικύρωση της Τ, οι άλλες δοσοληψίες μπορούν να δουν τις τιμές των ΧΣ αλλά δεν μπορούν να διαβάσουν την έκδοση CΧ μέχρι η Τ να επικυρωθεί.) yΑλλιώς, απόρριψη. T old new ΧΣΕ CΧ Χ ΧΣΑ(Χ) Writer Τ

66 Βάσεις Δεδομένων II 2001-2002 Ευαγγελία Πιτουρά 66 Υποστήριξη δοσοληψιών στην SQL-92 zΚάθε δοσοληψία έχει: access mode, diagnostics size, solation level. No Serializable MaybeNo Repeatable Reads Maybe NoRead Committed Maybe Read Uncommitted Phantom Problem Unrepeatable Read Dirty Read Isolation Level

67 Βάσεις Δεδομένων II 2001-2002 Ευαγγελία Πιτουρά 67 Περίληψη Υπάρχουν πολλά πρωτόκολλα ελέγχου συνδρομικότητας (concurrency control protocols) Τρεις βασικές κατηγορίες: κλείδωμα, χρονοσήματα, αισιόδοξα Επόμενο Μάθημα: Ανάκαμψη από σφάλματα (ποια ιδιότητα των δοσοληψιών;)


Κατέβασμα ppt "Βάσεις Δεδομένων II 2001-2002 Ευαγγελία Πιτουρά 1 Τεχνικές Ελέγχου Συνδρομικότητας."

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


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