Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων Βάσεις Δεδομένων ΙΙ Ενότητα 2: Ελέγχου Συνδρομικότητας Το περιεχόμενο του μαθήματος διατίθεται με άδεια Creative Commons εκτός και αν αναφέρεται διαφορετικά Το έργο υλοποιείται στο πλαίσιο του Επιχειρησιακού Προγράμματος «Εκπαίδευση και Δια Βίου Μάθηση» και συγχρηματοδοτείται από την Ευρωπαϊκή Ένωση (Ευρωπαϊκό Κοινωνικό Ταμείο) και από εθνικούς πόρους.
Βάσεις Δεδομένων ΙΙ Έλεγχος συνδρομικότητας
Ορισμός & Επιθυμητές Ιδιότητες των Δοσοληψιών Μια λογική μονάδα επεξεργασίας της ΒΔ που περιλαμβάνει μία ή περισσότερες πράξεις προσπέλασης στη ΒΔ, π.χ., μετακίνησε 10 από το απόθεμα στην πληρωμή Αtomicity (Ατομικότητα) είτε όλες οι πράξεις είτε καμία Consistency (Συνέπεια) διατήρηση συνέπειας της ΒΔ Isolation (Απομόνωση) δεν εμπλέκεται με άλλη δοσοληψία που εκτελείται ταυτόχρονα Durability (Μονιμότητα ή διάρκεια) μετά την επικύρωση μιας δοσοληψίας οι αλλαγές δεν είναι δυνατόν να χαθούν
Συνδρομικότητα - επισκόπηση Για ποιο λόγο την χρειαζόμαστε; Τι σημαίνει σωστή παρεμβολή; Γράφος προτεραιότητας Πώς μπορούν να επιτευχθούν αυτόματα σωστές παρεμβολές; Έλεγχος συνδρομικότητας
Πρόβλημα Ταυτόχρονη προσπέλαση δεδομένων (αναλογιστείτε το πρόβλημα χαμένης ενημερωσης ) Πώς μπορεί να επιλυθεί;
Πρόβλημα χαμένης ενημέρωσης - χωρίς την τεχνική κλειδώματος χρόνος T1 RRead(N) N=N-1 Write(N) T2 Read(N) N= N-1 Write(N)
Λύση - μέρος 1 Τεχνική κλειδώματος! (δημοφιλέστερη λύση) Διαχειριστής κλειδώματος: δέχεται ή απορρίπτει τα αιτήματα κλειδώματος
Πρόβλημα χαμένης ενημέρωσης - με κλειδιά Διαχειριστής T1 T2 κλειδώματος lock(n) χρόνος Read(N) N=N-1 Write(N) Unlock(N) lock(n) Δέχεται το κλείδωμα Απορρίπτει το κλείδωμα T2: waits Κλείδωμα για το T2 Read(N)...
Τεχνική κλειδώματος Αλλά, τι γίνεται στην περίπτωση που όλοι θέλουν να διαβάσουν το Ν ;
Λύση - μέρος 1 Τεχνική κλειδώματος X-locks: αποκλειστικό (exclusive) κλειδί η κλειδί εγγραφής S-locks: διαμοιραζόμενο (shared) κλειδί ή κλειδί ανάγνωσης <και άλλα... > Πίνακας συμβατότητας T2 wants T1 has S S T X F X F F
Λύση - μέρος 1 Οι δοσοληψίες ζητούν κλειδιά (ή ενημερώσεις) Ο διαχειριστής κλειδιών δέχεται η απορρίπτει τα αιτήματα Οι δοσοληψίες ελευθερώνουν τα κλειδιά Ο διαχειριστής κλειδιών ενημερώνει τον πίνακα κλειδιών
Λύση - μέρος 1 Μία δοσοληψία παίρνει ένα κλειδί σε ένα στοιχείο εάν το ζητούμενο κλειδί είναι συμβατό με τα κλειδιά που υπάρχουν ήδη στο αντικείμενο Οποιοσδήποτε αριθμός δοσοληψιών μπορεί να διατηρεί διαμοιραζόμενα κλειδιά σε ένα στοιχείο Εάν κάποια δοσοληψία διατηρεί ένα αποκλειστικό κλειδί σε ένα στοιχείο καμία άλλη δοσοληψία δε μπορεί να έχει οποιοδήποτε κλειδί στο στοιχείο Εάν δεν γίνει δεκτό ένα αίτημα κλειδιού, η αιτούσα δοσοληψία περιμένει εωσότου αρθούν όλα τα μη συμβατά κλειδιά από άλλες δοσοληψίες
Λύση - μέρος 2 Τα κλειδιά δεν είναι αρκετά - π.χ., ασυνεπής ανάλυση
Ασυνεπής ανάλυση χρόνος T1 Read(A) A=A-10 Write(A) T2 Read(A) Sum = A Read(B) Sum += B Γράφος προτεραιότητας? Read(B) B=B+10 Write(B)
Ασυνεπής ανάλυση - w/ locks time T1 T2 L(A) Read(A) U(A) L(A) Το πρόβλημα παραμένει! Λύση;; L(B)
Γενική λύση: Πρωτόκολλο(α) Ένα πρωτόκολλο κλειδώματος είναι ένα σύνολο κανόνων το οποίο ακολουθείται από όλες τις δοσοληψίες κατά τις αιτήσεις και τις άρσεις κλειδιών. Τα πρωτόκολλα κλειδώματος περιορίζουν το σύνολο των πιθανών χρονοπρογραμμάτων. Το δημοφιλέστερο πρωτόκολλο: Πρωτόκολλο κλειδώματος δύο φάσεων (2 Phase Locking (2PL))
2PL (Κλείδωμα δύο φάσεων) Φάση 1: Φάση επέκτασης Η δοσοληψία μπορεί να ζητήσει κλειδιά Η δοσοληψία μπορεί να μην απελευθερώσει κλειδιά Φάση 2: Φάση συρρίκνωσης Η δοσοληψία μπορεί να ελευθερώσει κλειδιά Η δοσοληψία μπορεί να μην αποκτήσει κλειδιά Το πρωτόκολλο εξασφαλίζει σειριοποιησιμότητα Οι δοσοληψίες μπορούν να σειριοποιηθούν σύμφωνα με την σειρά των σημείων κλειδώματος (lock points)
2PL X-lock έκδοση: οι δοσοληψίες δεν ζητούν κλειδιά μετά το πρώτο unlock ΘΕΩΡΗΜΑ: εάν όλες οι δοσοληψίες υπακούν στο 2PL Æ όλα τα χρονοπρογράμματα είναι σειριοποιήσιμα
2PL - παράδειγμα ασυνεπής ανάλυση - γιατί όχι το 2PL; Πώς θα ήταν με το 2PL?
2PL - X/S lock version Οι δοσοληψίες δεν κάνουν κανένα αίτημα κλειδώματος/αναβάθμισης, μετά το πρώτο ξεκλείδωμα/υποβάθμιση Γενικά: φάση επέκτασης και συρρίκνωσης
2PL - παρατηρήσεις - - - Περιορισμός συνδρομικότητας Μπορεί να οδηγήσει σε αδιέξοδα 2PLC (διατήρηση κλειδωμάτων ως το commit ) Αυστηρό πρωτόκολλο δύο φάσεων. Μία δοσοληψία δεν απελευθερώνει κανένα αποκλειστικό κλειδί εωσότου επικυρωθεί ή ακυρωθεί Άκαμπτο πρωτόκολλο δύο φάσεων. Είναι ακόμα πιο αυστηρό. Εδώ όλα τα κλειδώματα διατηρούνται έως την επικύρωση / ακύρωση. Σε αυτό το πρωτόκολλο οι συναλλαγές μπορούν να σειριοποιηθούν με τη σειρά που επικυρώνονται.
Συμπεράσματα - ACID για δοσοληψίες - συνδρομικότητα: - σειριοποιησιμότητα (γράφος προτεραιότητας) - μία (δημοφιλής) λύση: κλειδιά + - πρωτόκολλο κλειδώματος δύο φάσεων - πρωτόκολλα γράφων, πολλαπλή κλιμάκωση
Σημείωμα Αδειοδότησης Το παρόν υλικό διατίθεται με τους όρους της άδειας χρήσης Creative Commons Αναφορά, Μη Εμπορική Χρήση Παρόμοια Διανομή 4.0 [1] ή μεταγενέστερη, Διεθνής Έκδοση. Εξαιρούνται τα αυτοτελή έργα τρίτων π.χ. φωτογραφίες, διαγράμματα κ.λ.π., τα οποία εμπεριέχονται σε αυτό. Οι όροι χρήσης των έργων τρίτων επεξηγούνται στη διαφάνεια «Επεξήγηση όρων χρήσης έργων τρίτων». Τα έργα για τα οποία έχει ζητηθεί άδεια αναφέρονται στο «Σημείωμα Χρήσης Έργων Τρίτων». [1] http://creativecommons.org/licenses/από-nc-sa/4.0/ Ως Μη Εμπορική ορίζεται η χρήση: που δεν περιλαμβάνει άμεσο ή έμμεσο οικονομικό όφελος από την χρήση του έργου, για το διανομέα του έργου και αδειοδόχο που δεν περιλαμβάνει οικονομική συναλλαγή ως προϋπόθεση για τη χρήση ή πρόσβαση στο έργο που δεν προσπορίζει στο διανομέα του έργου και αδειοδόχο έμμεσο οικονομικό όφελος (π.χ. διαφημίσεις) από την προβολή του έργου σε διαδικτυακό τόπο Ο δικαιούχος μπορεί να παρέχει στον αδειοδόχο ξεχωριστή άδεια να χρησιμοποιεί το έργο για εμπορική χρήση, εφόσον αυτό του ζητηθεί.
Επεξήγηση όρων χρήσης έργων τρίτων διαθέσιμο με άδεια CC-BY διαθέσιμο με άδεια CC-BY-SA διαθέσιμο με άδεια CC-BY-ND διαθέσιμο με άδεια CC-BY-NC διαθέσιμο με άδεια CC-BY-NC-SA διαθέσιμο με άδεια CC-BY-NC-ND διαθέσιμο με άδεια CC0 Public Domain διαθέσιμο ως κοινό κτήμα χωρίς σήμανση Δεν επιτρέπεται η επαναχρησιμοποίηση του έργου, παρά μόνο εάν ζητηθεί εκ νέου άδεια από το δημιουργό. Επιτρέπεται η επαναχρησιμοποίηση του έργου και η δημιουργία παραγώγων αυτού με απλή αναφορά του δημιουργού. Επιτρέπεται η επαναχρησιμοποίηση του έργου με αναφορά του δημιουργού, και διάθεση του έργου ή του παράγωγου αυτού με την ίδια άδεια. Επιτρέπεται η επαναχρησιμοποίηση του έργου με αναφορά του δημιουργού. Δεν επιτρέπεται η δημιουργία παραγώγων του έργου. Επιτρέπεται η επαναχρησιμοποίηση του έργου με αναφορά του δημιουργού. Δεν επιτρέπεται η εμπορική χρήση του έργου. Επιτρέπεται η επαναχρησιμοποίηση του έργου με αναφορά του δημιουργού και διάθεση του έργου ή του παράγωγου αυτού με την ίδια άδεια. Δεν επιτρέπεται η εμπορική χρήση του έργου. Επιτρέπεται η επαναχρησιμοποίηση του έργου με αναφορά του δημιουργού. Δεν επιτρέπεται η εμπορική χρήση του έργου και η δημιουργία παραγώγων του. Επιτρέπεται η επαναχρησιμοποίηση του έργου, η δημιουργία παραγώγων αυτού και η εμπορική του χρήση, χωρίς αναφορά του δημιουργού. Επιτρέπεται η επαναχρησιμοποίηση του έργου, η δημιουργία παραγώγων αυτού και η εμπορική του χρήση, χωρίς αναφορά του δημιουργού. Συνήθως δεν επιτρέπεται η επαναχρησιμοποίηση του έργου.
Διατήρηση Σημειωμάτων Οποιαδήποτε αναπαραγωγή ή διασκευή του υλικού θα πρέπει να συμπεριλαμβάνει: το Σημείωμα Αναφοράς το Σημείωμα Αδειοδότησης τη δήλωση Διατήρησης Σημειωμάτων το Σημείωμα Χρήσης Έργων Τρίτων (εφόσον υπάρχει) μαζί με τους συνοδευόμενους υπερσυνδέσμους.
Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια του εκπαιδευτικού έργου του διδάσκοντα. Το έργο «Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων» έχει χρηματοδοτήσει μόνο την αναδιαμόρφωση του εκπαιδευτικού υλικού. Το έργο υλοποιείται στο πλαίσιο του Επιχειρησιακού Προγράμματος «Εκπαίδευση και Δια Βίου Μάθηση» και συγχρηματοδοτείται από την Ευρωπαϊκή Ένωση (Ευρωπαϊκό Κοινωνικό Ταμείο) και από εθνικούς πόρους.