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

Slides:



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

Γραφήματα & Επίπεδα Γραφήματα
Βάσεις Δεδομένων II Ευαγγελία Πιτουρά 1 Επεξεργασία Δοσοληψιών.
Μάρτιος 2011 Βαρόμετρο ΕΒΕΘ - Καταναλωτές. “Η καθιέρωση ενός αξιόπιστου εργαλείου καταγραφής του οικονομικού, επιχειρηματικού και κοινωνικού γίγνεσθαι.
Transactions & P2P Systems Διονύσης Αθανασόπουλος Βασίλης Φωτόπουλος.
Επιμέλεια: Διογένης Κοσμόπουλος 2ο ΓΕΛ Αργυρούπολης.
Προχωρημένα Θέματα Τεχνολογίας και Εφαρμογών Βάσεων Δεδομένων Προχωρημένα Θέματα Διαχείρισης Ταυτοχρονισμού Πάνος Βασιλειάδης Οκτώβρης.
Προχωρημένα Θέματα Τεχνολογίας και Εφαρμογών Βάσεων Δεδομένων Βασικές Αρχές Διαχείρισης Ταυτοχρονισμού Πάνος Βασιλειάδης Οκτώβριος 2009.
1 Επεξεργασία Συναλλαγών. 2 Συναλλαγές m Η ταυτόχρονη εκτέλεση προγραμμάτων χρηστών είναι απαραίτητη για την καλή απόδοση ενός ΣΔΒΔ m Επειδή οι προσπελάσεις.
Βάσεις Δεδομένων II Περίληψη: Προχωρημένα Θέματα Διαχείρισης Ταυτοχρονισμού Πάνος Βασιλειάδης Οκτώβρης 2002
Βάσεις Δεδομένων II Ευαγγελία Πιτουρά 1 Τεχνικές Ελέγχου Συνδρομικότητας - Ασκήσεις.
-17 Προσδοκίες οικονομικής ανάπτυξης στην Ευρώπη Σεπτέμβριος 2013 Δείκτης > +20 Δείκτης 0 a +20 Δείκτης 0 a -20 Δείκτης < -20 Σύνολο στην Ευρωπαϊκή Ένωση:
Βαρόμετρο ΕΒΕΘ - Καταναλωτές Σεπτέμβριος “Η καθιέρωση ενός αξιόπιστου εργαλείου καταγραφής του οικονομικού, επιχειρηματικού και κοινωνικού γίγνεσθαι.
Βάσεις Δεδομένων II Ευαγγελία Πιτουρά 1 Επεξεργασία Δοσοληψιών Ανακεφαλαίωση.
Βάσεις Δεδομένων II Ευαγγελία Πιτουρά 1 Επεξεργασία Δοσοληψιών Ανακεφαλαίωση.
1515 Διαχείριση Συναλλαγών  Συναλλαγές  Έλεγχος ταυτοχρονισμού  Επανάκτηση δεδομένων.
ΒΑΡΟΜΕΤΡΟ ΕΒΕΘ – ΣΕΠΤΕΜΒΡΙΟΣ 2014 AD – HOC ΕΡΩΤΗΣΕΙΣ.
Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1 Συναρτησιακές Εξαρτήσεις.
ΙΣΟΛΟΓΙΣΜΟΣ ΒΑΣΕΙ Δ.Λ.Π. (ΕΝΑΡΞΗΣ)
Εξάσκηση στην προπαίδεια
Βαρόμετρο ΕΒΕΘ Μάρτιος “Η καθιέρωση ενός αξιόπιστου εργαλείου καταγραφής του οικονομικού, επιχειρηματικού και κοινωνικού γίγνεσθαι του Νομού Θεσσαλονίκης”
2006 GfK Praha CORRUPTION CLIMATE IN EUROPE % % % %0 - 10% % % % % % ΚΛΙΜΑ ΔΙΑΦΘΟΡΑΣ Η.
Βαρόμετρο ΕΒΕΘ Μάρτιος “Η καθιέρωση ενός αξιόπιστου εργαλείου καταγραφής του οικονομικού, επιχειρηματικού και κοινωνικού γίγνεσθαι του Νομού Θεσσαλονίκης”
Βάσεις Δεδομένων II Διαχείριση Δοσοληψιών Πάνος Βασιλειάδης Σεπτέμβρης 2002
Βαρόμετρο ΕΒΕΘ Σεπτέμβριος “Η καθιέρωση ενός αξιόπιστου εργαλείου καταγραφής του οικονομικού, επιχειρηματικού και κοινωνικού γίγνεσθαι του Νομού.
©Silberschatz, Korth and Sudarshan1 ΒΔ ΙΙ: Διαχείριση συναλλαγών Διαχείριση Συναλλαγών (Transaction Management)  Ορισμός της συναλλαγής  Καταστάσεις.
Προγραμματισμός ΙΙ Διάλεξη #6: Απλές Δομές Ελέγχου Δρ. Νικ. Λιόλιος.
ΤΑΥΤΟΧΡΟΝΙΣΜΟΣ1. 2 Θεωρείστε δύο συναλλαγές (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 Στοίβα. Δομές Δεδομένων 2 Στοίβα (stack)  Δομή τύπου LIFO: Last In - First Out (τελευταία εισαγωγή – πρώτη εξαγωγή)  Περιορισμένος.
Βάσεις Δεδομένων II Ευαγγελία Πιτουρά 1 Τεχνικές Ανάκαμψης.
1 Τμήμα Μηχανικών Ηλεκτρονικών Υπολογιστών και Πληροφορικής Πανεπιστήμιο Πατρών ΟΝΤΟΚΕΝΤΡΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΙΙ (C++) Κληρονομικότητα.
Κεφάλαιο 19 Τεχνικές Ανάκαμψης Βάσεων Δεδομένων (Recovery)
2-1 Ανάλυση Αλγορίθμων Αλγόριθμος Πεπερασμένο σύνολο εντολών που, όταν εκτελεστούν, επιτυγχάνουν κάποιο επιθυμητό αποτέλεσμα –Δεδομένα εισόδου και εξόδου.
Βαρόμετρο ΕΒΕΘ - Καταναλωτές Μάρτιος “Η καθιέρωση ενός αξιόπιστου εργαλείου καταγραφής του οικονομικού, επιχειρηματικού και κοινωνικού γίγνεσθαι.
Βάσεις Δεδομένων II Ευαγγελία Πιτουρά 1 Επεξεργασία Δοσοληψιών (συνέχεια)
Προχωρημένα Θέματα Τεχνολογίας και Εφαρμογών Βάσεων Δεδομένων Διαχείριση Συναλλαγών Πάνος Βασιλειάδης Μάρτιος 2014
1 Βάσεις Δεδομένων ΙII Επιμέλεια: ΘΟΔΩΡΗΣ ΜΑΝΑΒΗΣ Διαχείριση συναλλαγών Transaction Management T Manavis.
Βάσεις Δεδομένων II Ενότητα 7: Ταυτοχρονισμός Γεωργία Γκαράνη
Βάσεις Δεδομένων II Περίληψη: Τεχνικές Ανάνηψης Πάνος Βασιλειάδης Νοέμβρης 2002
Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1 Σχεδιασμός Σχεσιακών Σχημάτων.
Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1 Σχεσιακό Μοντέλο.
Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1 Σχεσιακό Μοντέλο.
Δομές Δεδομένων - Ισοζυγισμένα Δυαδικά Δένδρα (balanced binary trees)
ΤΑ ΔΟΝΤΙΑ ΜΑΣ.
Βαρόμετρο ΕΒΕΘ Σεπτέμβριος “Η καθιέρωση ενός αξιόπιστου εργαλείου καταγραφής του οικονομικού, επιχειρηματικού και κοινωνικού γίγνεσθαι του Νομού.
Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1 Εισαγωγή στην Επεξεργασία Ερωτήσεων.
Βάσεις Δεδομένων II Ευαγγελία Πιτουρά 1 Τεχνικές Ανάκαμψης.
Βάσεις Δεδομένων II Ευαγγελία Πιτουρά 1 Ασκήσεις Επεξεργασία Δοσοληψιών, Τεχνικές Ελέγχου Συνδρομικότητας, Τεχνικές Ανάκαμψεις από Σφάλματα.
Βάσεις Δεδομένων II Ευαγγελία Πιτουρά 1 Τεχνικές Ανάκαμψης.
Βάσεις Δεδομένων II Ευαγγελία Πιτουρά 1 Επεξεργασία Δοσοληψιών.
Βάσεις Δεδομένων II Ευαγγελία Πιτουρά 1 ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ ΙΙ.
Βάσεις Δεδομένων II Ευαγγελία Πιτουρά 1 Τεχνικές Ανάκαμψης.
Βάσεις Δεδομένων II Προχωρημένα Θέματα Διαχείρισης Ταυτοχρονισμού Πάνος Βασιλειάδης Οκτώβρης 2002
Βάσεις Δεδομένων II Ανανηψιμότητα Δοσοληψιών Πάνος Βασιλειάδης Οκτώβρης 2002
Κεφάλαιο 17 Εισαγωγή στη Θεωρία των Δοσοληψιών. Δοσοληψίες Η Έννοια της Δοσοληψίας Κατάσταση Δοσοληψίας Ταυτόχρονες Εκτελέσεις Σειριοποιησιμότητα Ανάκαμψη.
Βάσεις Δεδομένων II Ευαγγελία Πιτουρά 1 Επεξεργασία Δοσοληψιών (συνέχεια)
Βάσεις Δεδομένων II Ευαγγελία Πιτουρά 1 ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ ΙΙ.
Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1 Ευρετήρια.
Βάσεις Δεδομένων II Περίληψη: Διαχείριση Δοσοληψιών Πάνος Βασιλειάδης Οκτώβρης 2002
Βάσεις Δεδομένων II Περίληψη: Βασικές Αρχές Διαχείρισης Ταυτοχρονισμού Πάνος Βασιλειάδης Οκτώβρης 2002
Διοίκηση Επιχειρήσεων Βάσεις Δεδομένων και Ευφυή Πληροφοριακά Συστήματα Επιχειρηματικότητας Βάσεις Δεδομένων και Ευφυή Πληροφοριακά Συστήματα Επιχειρηματικότητας.
Διοίκηση Επιχειρήσεων Βάσεις Δεδομένων και Ευφυή Πληροφοριακά Συστήματα Επιχειρηματικότητας Βάσεις Δεδομένων και Ευφυή Πληροφοριακά Συστήματα Επιχειρηματικότητας.
ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι
Ευρετήρια Βάσεις Δεδομένων Ευαγγελία Πιτουρά.
Κατανεμημένα Συστήματα
Κατανεμημένα Συστήματα
Δυναμικός Κατακερματισμός
Μεταγράφημα παρουσίασης:

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

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

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

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

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

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

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

Βάσεις Δεδομένων II Ευαγγελία Πιτουρά 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)

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

Βάσεις Δεδομένων II Ευαγγελία Πιτουρά 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 Τόσα διαφορετικά χρονοπρογράμματα όσες και πιθανές εκτελέσεις

Βάσεις Δεδομένων II Ευαγγελία Πιτουρά 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

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

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

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

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

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

Βάσεις Δεδομένων II Ευαγγελία Πιτουρά 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 Η εττικέτα στην ακμή δείχνει σε πιο δεδομένο συγκρούονται

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

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

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

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

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

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

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

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

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

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

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

Βάσεις Δεδομένων II Ευαγγελία Πιτουρά 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 Λύση; Κλείδωμα Δύο Φάσεων

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

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

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

Βάσεις Δεδομένων II Ευαγγελία Πιτουρά 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 να ελευθερώσει το Υ

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

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

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

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

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

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

Βάσεις Δεδομένων II Ευαγγελία Πιτουρά 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

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

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

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

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

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

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

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

Βάσεις Δεδομένων II Ευαγγελία Πιτουρά 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 Δυστυχώς, παράγει και χρονοπρογράμματα χωρίς δυνατότητα ανάκαμψης

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

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

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

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

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

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

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

Βάσεις Δεδομένων II Ευαγγελία Πιτουρά 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 τέλος κρίσιμης περιοχής

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

Βάσεις Δεδομένων II Ευαγγελία Πιτουρά 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 να είναι «σωστή»

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

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

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

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

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

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

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

Βάσεις Δεδομένων II Ευαγγελία Πιτουρά 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

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