Προχωρημένα Θέματα Τεχνολογίας και Εφαρμογών Βάσεων Δεδομένων Βασικές Αρχές Διαχείρισης Ταυτοχρονισμού Πάνος Βασιλειάδης Οκτώβριος 2009.

Slides:



Advertisements
Παρόμοιες παρουσιάσεις
ΑΓΟΡΑΣΤΙΚΕΣ / ΚΑΤΑΝΑΛΩΤΙΚΕΣ ΣΥΝΗΘΕΙΕΣ Αγοραστικές Συνήθειες Θα σας διαβάσω τώρα μια σειρά από απόψεις που έχουν εκφραστεί για τις συνήθειες κατανάλωσης.
Advertisements

Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1 Ευρετήρια.
Γραφήματα & Επίπεδα Γραφήματα
Ερωτηματολόγιο Συλλογής Απαιτήσεων Εφαρμογών Υψηλών Επιδόσεων
Βάσεις Δεδομένων II Ευαγγελία Πιτουρά 1 Επεξεργασία Δοσοληψιών.
Μάρτιος 2011 Βαρόμετρο ΕΒΕΘ - Καταναλωτές. “Η καθιέρωση ενός αξιόπιστου εργαλείου καταγραφής του οικονομικού, επιχειρηματικού και κοινωνικού γίγνεσθαι.
ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι
Transactions & P2P Systems Διονύσης Αθανασόπουλος Βασίλης Φωτόπουλος.
Πρωτογενής έρευνα Hi5, μία μόδα για νέους;. Μεθοδολογία - εργαλεία Η έρευνα διενεργήθηκε με την μέθοδο της συλλογής ερωτηματολογίων, τα οποία και συμπληρώνονταν.
Επιμέλεια: Διογένης Κοσμόπουλος 2ο ΓΕΛ Αργυρούπολης.
Προχωρημένα Θέματα Τεχνολογίας και Εφαρμογών Βάσεων Δεδομένων Προχωρημένα Θέματα Διαχείρισης Ταυτοχρονισμού Πάνος Βασιλειάδης Οκτώβρης.
Βάσεις Δεδομένων II Περίληψη: Προχωρημένα Θέματα Διαχείρισης Ταυτοχρονισμού Πάνος Βασιλειάδης Οκτώβρης 2002
Βάσεις Δεδομένων II Ευαγγελία Πιτουρά 1 Τεχνικές Ελέγχου Συνδρομικότητας - Ασκήσεις.
© GfK 2012 | Title of presentation | DD. Month
-17 Προσδοκίες οικονομικής ανάπτυξης στην Ευρώπη Σεπτέμβριος 2013 Δείκτης > +20 Δείκτης 0 a +20 Δείκτης 0 a -20 Δείκτης < -20 Σύνολο στην Ευρωπαϊκή Ένωση:
+21 Προσδοκίες οικονομικής ανάπτυξης στην Ευρώπη Δεκέμβριος 2013 Δείκτης > +20 Δείκτης 0 να +20 Δείκτης 0 να -20 Δείκτης < -20 Σύνολο στην Ευρωπαϊκή Ένωση:
Βαρόμετρο ΕΒΕΘ - Καταναλωτές Σεπτέμβριος “Η καθιέρωση ενός αξιόπιστου εργαλείου καταγραφής του οικονομικού, επιχειρηματικού και κοινωνικού γίγνεσθαι.
Βάσεις Δεδομένων II Ευαγγελία Πιτουρά 1 Τεχνικές Ελέγχου Συνδρομικότητας.
Βάσεις Δεδομένων II Ευαγγελία Πιτουρά 1 Επεξεργασία Δοσοληψιών Ανακεφαλαίωση.
Βάσεις Δεδομένων II Ευαγγελία Πιτουρά 1 Επεξεργασία Δοσοληψιών Ανακεφαλαίωση.
1515 Διαχείριση Συναλλαγών  Συναλλαγές  Έλεγχος ταυτοχρονισμού  Επανάκτηση δεδομένων.
Κεφάλαιο 2ο Πεπερασμένα αυτόματα.
Γραφήματα & Επίπεδα Γραφήματα
ΒΑΡΟΜΕΤΡΟ ΕΒΕΘ – ΣΕΠΤΕΜΒΡΙΟΣ 2014 AD – HOC ΕΡΩΤΗΣΕΙΣ.
Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1 Συναρτησιακές Εξαρτήσεις.
ΙΣΟΛΟΓΙΣΜΟΣ ΒΑΣΕΙ Δ.Λ.Π. (ΕΝΑΡΞΗΣ)
Καλώς ήρθατε στις Οικονομικές Επιστήμες
Εξάσκηση στην προπαίδεια
Αποκεντρωμένη Διοίκηση Μακεδονίας Θράκης ∆ιαχείριση έργων επίβλεψης µε σύγχρονα µέσα και επικοινωνία C2G, B2G, G2G Γενική Δ/νση Εσωτερικής Λειτουργίας.
Η επιρροή του χώρου εργασίας των σχολικών τάξεων στη μάθηση
Βαρόμετρο ΕΒΕΘ Μάρτιος “Η καθιέρωση ενός αξιόπιστου εργαλείου καταγραφής του οικονομικού, επιχειρηματικού και κοινωνικού γίγνεσθαι του Νομού Θεσσαλονίκης”
2006 GfK Praha CORRUPTION CLIMATE IN EUROPE % % % %0 - 10% % % % % % ΚΛΙΜΑ ΔΙΑΦΘΟΡΑΣ Η.
ΠΑΝΕΛΛΑΔΙΚΗ ΠΟΛΙΤΙΚΗ ΕΡΕΥΝΑ ΓΙΑ ΤΟ TVXS.GR Η Palmos Analysis είναι μέλος της ESOMAR και της WAPOR και έχει Αριθμό Μητρώου 11 στο Μητρώο Επιχειρήσεων και.
Βαρόμετρο ΕΒΕΘ Μάρτιος “Η καθιέρωση ενός αξιόπιστου εργαλείου καταγραφής του οικονομικού, επιχειρηματικού και κοινωνικού γίγνεσθαι του Νομού Θεσσαλονίκης”
Βάσεις Δεδομένων II Διαχείριση Δοσοληψιών Πάνος Βασιλειάδης Σεπτέμβρης 2002
Βαρόμετρο ΕΒΕΘ Σεπτέμβριος “Η καθιέρωση ενός αξιόπιστου εργαλείου καταγραφής του οικονομικού, επιχειρηματικού και κοινωνικού γίγνεσθαι του Νομού.
ΤΑΥΤΟΧΡΟΝΙΣΜΟΣ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 Διαισθητικά, η.
6 MRB, Συλλογή στοιχείων: 24 Νοεμβρίου έως 5 Δεκεμβρίου 2005 Εξωτερική Πολιτική: Τουρκία – Κυπριακό – ΠΓΔΜ - Κοσσυφοπέδιο 1 6 ΕΞΩΤΕΡΙΚΗ ΠΟΛΙΤΙΚΗ ( Τουρκία.
Βαρόμετρο ΕΒΕΘ Μάρτιος “Η καθιέρωση ενός αξιόπιστου εργαλείου καταγραφής του οικονομικού, επιχειρηματικού και κοινωνικού γίγνεσθαι του Νομού Θεσσαλονίκης”
1 Α. Βαφειάδης Αναβάθμισης Προγράμματος Σπουδών Τμήματος Πληροφορικής Τ.Ε.Ι Θεσσαλονίκης Μάθημα Προηγμένες Αρχιτεκτονικές Υπολογιστών Κεφαλαίο Τρίτο Συστήματα.
Σοφία Τζελέπη, App Inventor ΜΕΡΟΣ B’ Σοφία Τζελέπη,
Λ. Κηφισίας 3, Μαρούσιτηλ.: τηλ.: ΧΟΡΗΓΟΣ: Μέλος του δικτύου :
Δομές Δεδομένων 1 Στοίβα. Δομές Δεδομένων 2 Στοίβα (stack)  Δομή τύπου LIFO: Last In - First Out (τελευταία εισαγωγή – πρώτη εξαγωγή)  Περιορισμένος.
Προγραμματισμός ΙΙ Διάλεξη #5: Εντολές Ανάθεσης Εντολές Συνθήκης Δρ. Νικ. Λιόλιος.
1 Τμήμα Μηχανικών Ηλεκτρονικών Υπολογιστών και Πληροφορικής Πανεπιστήμιο Πατρών ΟΝΤΟΚΕΝΤΡΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΙΙ (C++) Κληρονομικότητα.
Α2 Λυκείου Αργυράδων Ρωτήθηκαν συνολικά 162 άτομα.
2-1 Ανάλυση Αλγορίθμων Αλγόριθμος Πεπερασμένο σύνολο εντολών που, όταν εκτελεστούν, επιτυγχάνουν κάποιο επιθυμητό αποτέλεσμα –Δεδομένα εισόδου και εξόδου.
Βαρόμετρο ΕΒΕΘ - Καταναλωτές Μάρτιος “Η καθιέρωση ενός αξιόπιστου εργαλείου καταγραφής του οικονομικού, επιχειρηματικού και κοινωνικού γίγνεσθαι.
Βάσεις Δεδομένων II Ευαγγελία Πιτουρά 1 Επεξεργασία Δοσοληψιών (συνέχεια)
Προχωρημένα Θέματα Τεχνολογίας και Εφαρμογών Βάσεων Δεδομένων Διαχείριση Συναλλαγών Πάνος Βασιλειάδης Μάρτιος 2014
1 Βάσεις Δεδομένων ΙII Επιμέλεια: ΘΟΔΩΡΗΣ ΜΑΝΑΒΗΣ Διαχείριση συναλλαγών Transaction Management T Manavis.
Βάσεις Δεδομένων II Ενότητα 7: Ταυτοχρονισμός Γεωργία Γκαράνη
Βάσεις Δεδομένων II Περίληψη: Τεχνικές Ανάνηψης Πάνος Βασιλειάδης Νοέμβρης 2002
Επιθεωρήσεις ΔΚΕΕ ( )  Επιθεωρήσεις : 25  Έκλεισαν Ικανοποιητικά 6 (24%) και Μη Ικανοποιητικά 19 (76%)  Μη Συμμορφώσεις : 257  Διορθωτικές.
Επιθεωρήσεις ΔΚΕΕ ( )  Επιθεωρήσεις : 23  Έκλεισαν Ικανοποιητικά 9 (39%) και Μη Ικανοποιητικά 14 (61%)  Μη Συμμορφώσεις : 290  Διορθωτικές.
1 Α. Βαφειάδης Αναβάθμισης Προγράμματος Σπουδών Τμήματος Πληροφορικής Τ.Ε.Ι Θεσσαλονίκης Μάθημα Προηγμένες Αρχιτεκτονικές Υπολογιστών Κεφαλαίο Τρίτο Συστήματα.
+19 Δεκέμβριος 2014 Δείκτης > +20 Δείκτης 0 έως +20 Δείκτης 0 έως -20 Δείκτης < -20 Συνολικά της ΕΕ: +5 Δείκτης > +20 Δείκτης 0 έως +20 Δείκτης 0 έως -20.
ΤΑ ΔΟΝΤΙΑ ΜΑΣ.
ΘΕΜΑΤΙΚΗ ΕΝΟΤΗΤΑ 2: ΘΕΜΑΤΑ ΘΕΩΡΗΤΙΚΗΣ ΕΠΙΣΤΗΜΗΣ Η/Υ
Βαρόμετρο ΕΒΕΘ Σεπτέμβριος “Η καθιέρωση ενός αξιόπιστου εργαλείου καταγραφής του οικονομικού, επιχειρηματικού και κοινωνικού γίγνεσθαι του Νομού.
Βάσεις Δεδομένων II Ευαγγελία Πιτουρά 1 Ασκήσεις Επεξεργασία Δοσοληψιών, Τεχνικές Ελέγχου Συνδρομικότητας, Τεχνικές Ανάκαμψεις από Σφάλματα.
Βάσεις Δεδομένων II Προχωρημένα Θέματα Διαχείρισης Ταυτοχρονισμού Πάνος Βασιλειάδης Οκτώβρης 2002
Βάσεις Δεδομένων II Ανανηψιμότητα Δοσοληψιών Πάνος Βασιλειάδης Οκτώβρης 2002
Βάσεις Δεδομένων II Βασικές Αρχές Διαχείρισης Ταυτοχρονισμού Πάνος Βασιλειάδης Οκτώβρης 2002
Βάσεις Δεδομένων II Περίληψη: Διαχείριση Δοσοληψιών Πάνος Βασιλειάδης Οκτώβρης 2002
Βάσεις Δεδομένων II Περίληψη: Βασικές Αρχές Διαχείρισης Ταυτοχρονισμού Πάνος Βασιλειάδης Οκτώβρης 2002
ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι
Κατανεμημένα Συστήματα
Κατανεμημένα Συστήματα
Μεταγράφημα παρουσίασης:

Προχωρημένα Θέματα Τεχνολογίας και Εφαρμογών Βάσεων Δεδομένων Βασικές Αρχές Διαχείρισης Ταυτοχρονισμού Πάνος Βασιλειάδης Οκτώβριος

2 Συναλλαγές & Ταυτοχρονισμός DB Κράτησε για τον κ. Χ την θέση 13Α για LA! Κράτησε για τον κ. Y την θέση 13Α για LA! Πόσοι ταξιδεύουν για LA ?

3 Θεματολόγιο Κλειδώματα – 2 Phase Locking Πώς γίνεται στην πράξη? Αδιέξοδα SQL & συναλλαγές

4 Θεματολόγιο Κλειδώματα – 2 Phase Locking Πώς γίνεται στην πράξη? Αδιέξοδα SQL & συναλλαγές

5 Πώς ελέγχουμε σειριοποιησιμότητα στην πράξη? Η σειριοποιησιμότητα όψεων είναι πολύ ακριβή για να ελεγχθεί, ούτως ή άλλως... Οι αλγόριθμοι για τον έλεγχο σειριοποιησιμότητας συγκρούσεων κοστίζουν n 2 [ενίοτε και καλύτερα] για n συναλλαγές. Μόνο που ο έλεγχος αυτός γίνεται αφού φτιαχτεί το χρονοπρόγραμμα, ήτοι γίνεται λίγο αργά... Γι’ αυτό και έχουμε αναπτύξει on-line πρωτόκολλα ελέγχου του ταυτοχρονισμού των συναλλαγών.

6 Κλειδώματα και πρωτόκολλα Πρωτόκολλο κλειδώματος είναι ένα συγκεκριμένο είδος πρωτοκόλλων, που διασφαλίζουν την σειριοποιησιμότητα μιας σειράς ενεργειών του DBMS, στη βάση κανόνων για το τι μπορεί [ή δεν μπορεί] να προσπελάσει μια συναλλαγή. Η βασική έννοια γύρω από την οποία οργανώνεται ένα τέτοιο πρωτόκολλο, είναι η έννοια του «κλειδώματος» (ή «κλειδιού», ή «κλειδαριάς»...) Στην αγγλική lock [πολύ σπάνια, και key].

7 Κλείδωμα Κλείδωμα είναι μια μεταβλητή που σχετίζεται με ένα στοιχειώδες δεδομένο και περιγράφει την κατάστασή του, σε σχέση με πιθανές πράξεις που μπορούν να εφαρμοσθούν σε αυτό. IDName 14ZZ EMP Elmasri & Navathe

8 2 Phase Locking – 2PL Ο βασικός αλγόριθμος διαχείρισης του ταυτοχρονισμού συναλλαγών είναι ο «Αλγόριθμος Κλειδώματος Δύο Φάσεων» -- στην αγγλική “2 Phase Locking” ή 2PL

9 2PL Εξασφαλίζει τη σειριοποιησιμότητα επιτρέποντας στις συναλλαγές να προσπελάσουν αντικείμενα, αν καταφέρουν να αποκτήσουν κάποιο κλείδωμα γι’ αυτά. Δύο είδη κλειδώματος: Ανάγνωσης: λαμβάνεις κλείδωμα για να διαβάσεις ένα αντικείμενο Εγγραφής: λαμβάνεις κλείδωμα για να γράψεις ή/και για να διαβάσεις ένα αντικείμενο

10 Τι είναι «αντικείμενο»? Μπορούμε να κλειδώσουμε τη βάση σε πολλά «επίπεδα» Θεωρήστε προς το παρόν εγγραφές (στα πιο πολλά DBMS’s πλέον) Εσωτερικά, ενίοτε μιλάμε και για σελίδες Πολλές φορές κλειδώνονται και ολόκληροι πίνακες Tuples Tables Pages Database contains Ramakrishnan & Gehrke

11 Πρωτόλειος αλγόριθμος κλειδώματος ≠ 2PL Κάθε ενέργεια διαβάσματος/γραψίματος απαιτεί να (περιμένεις μέχρι να) έχεις πάρει το σωστό κλείδωμα Για να διαβάσεις, πρέπει να πάρεις ένα read lock – το οποίο και θα αποκαλούμε Shared lock (S-lock). Είναι δυνατόν να υπάρχουν πολλές συναλλαγές με S-lock για το ίδιο αντικείμενο Για να γράψεις, πρέπει να πάρεις ένα write lock – το οποίο και θα αποκαλούμε eXclusive lock (X-lock). Αν μια συναλλαγή έχει X-lock για ένα αντικείμενο, απαγορεύεται οποιαδήποτε άλλη να έχει κάποιο κλείδωμα για το αντικείμενο αυτό Μπορείς να ξεκλειδώνεις (Unlock) αντικείμενα, αν δεν τα χρειάζεσαι.

12 Συμβολισμός R Τ (A) : η συναλλαγή T διαβάζει το αντικείμενο Α W Τ (A) : η συναλλαγή T γράφει το αντικείμενο Α S Τ (A) : η συναλλαγή T παίρνει S-lock για το αντικείμενο Α Χ Τ (A) : η συναλλαγή T παίρνει Χ-lock για το αντικείμενο Α U Τ (A) : η συναλλαγή T ξεκλειδώνει το αντικείμενο Α COMMIT T : η συναλλαγή T τερματίζει επιτυχώς ABORT T : η συναλλαγή T αποτυγχάνει

13 Παράδειγμα T 7 lock-X(B) read(B) B := B - 50 write(B) unlock(B) lock-S(A) read(A) display(A+B) unlock(A). R 7 (B); W 7 (B); R 7 (A). X 7 (B);R 7 (B);W 7 (B);U 7 (B);S 7 (A);R 7 (A)U 7 (A)

14 Παράδειγμα T 7 lock-X(B) read(B) B := B - 50 write(B) unlock(B) lock-S(A) read(A) display(A+B) unlock(A) Βασική υπόθεση: ξέρουμε από πριν όλες τις ενέργειες της συναλλαγής...

15 Συγκρούσεις Έστω δύο συναλλαγές, Τ1 και Τ2, εκ των οποίων, η Τ1 ζητά ένα κλείδωμα και η Τ2 έχει ήδη ένα κλειδωμα για το ίδιο αντικείμενο. Ο πίνακας συγκρούσεων πρέπει να σας θυμίζει κάτι... Άρνηση  «περίμενε μέχρι να γίνει unlock» Τ1\Τ2ReadWrite Read  Write  Lock reque sted Lock held

16 2 ειδών προβλήματα Αν προσπαθήσεις να αυξήσεις τις ταυτόχρονες συναλλαγές, ξεκλειδώνοντας αντικείμενα πολύ νωρίς, μπορεί να έχεις προβλήματα ασυνέπειας Αν προσπαθήσεις να καθυστερήσεις το ξεκλείδωμα, μπορεί να προκύψουν αδιέξοδα (όπου δύο συναλλαγές περιμένουν –για πάντα– η μία την άλλη για το ξεκλείδωμα διαφορετικών αντικειμένων) καθυστερείς (ενώ έχουμε πιο έξυπνους τρόπους)... Στη συνέχεια, παραδείγματα από Korth, Silberschatz & Sudarshan…

17 Ξεκλειδώνοντας νωρίς... T 7 lock-X(B) read(B) B := B - 50 write(B) unlock(B) lock-X(A) read(A) A := A + 50 write(A) unlock(A) T 8 lock-S(A) read(A) unlock(A) lock-S(B) read(B) unlock(B) display(A + B) Επειδή η Τ7 ξεκλειδώνει το Β νωρίς, το αποτέλεσμα της T8 είναι λάθος...

18 Deadlock T 9 lock-X(B) read(B) B := B - 50 write(B) lock-X(A) read(A) A := A + 50 write(A) unlock(B) unlock(A) T 10 lock-S(A) read(A) lock-S(B) unlock(A) unlock(B) display(A + B) Η μία συναλλαγή έχει κλειδώσει το αντικείμενο που χρειάζεται η άλλη. Σταματούν και οι δύο, αναμένοντας η μία την άλλη...

19 2PL Ζήτα κλείδωμα πριν πράξεις: Για να διαβάσεις, πρέπει να πάρεις ένα Shared lock (S-lock). Είναι δυνατόν να υπάρχουν πολλές συναλλαγές με S-lock για το ίδιο αντικείμενο Για να γράψεις, πρέπει να πάρεις ένα eXclusive lock (X-lock). Αν μια συναλλαγή έχει X-lock για ένα αντικείμενο, απαγορεύεται οποιαδήποτε άλλη να έχει κάποιο κλείδωμα για το αντικείμενο αυτό Δεν μπορείς να ξεκλειδώσεις αντικείμενο μέχρι να έχεις πάρει και το τελευταίο κλείδωμα που χρειάζεσαι

20 2 Phase Locking # locks time ΑύξησηΜείωση Ξανά: έτσι και ξεκλειδώσεις αντικείμενο, δεν μπορείς να πάρεις άλλο κλείδωμα!!!

21 2PL? T 9 lock-X(B) read(B) B := B - 50 write(B) lock-X(A) read(A) A := A + 50 write(A) unlock(B) unlock(A) T 10 lock-S(A) read(A) lock-S(B) read(B) unlock(A) unlock(B) display(A + B) T 7 lock-X(B) read(B) B := B - 50 write(B) unlock(B) lock-X(A) read(A) A := A + 50 write(A) unlock(A) KEY GROWING SHRINKING VIOLATION LEGAL NOT LEGAL LEGAL NOT LEGAL T 8 lock-S(A) read(A) unlock(A) lock-S(B) read(B) unlock(B) display(A + B) Απλοϊκή περίπτωση που κάθε schedule έχει μόνο μία συναλλαγή

22 Διαχειριστής κλειδαριών Το τμήμα του DBMS που διαχειρίζεται τα κλειδώματα Αν το DBMS υποστηρίζει 2PL  2PL scheduler Πίνακας κλειδαριών: ObjectID TransactionID, LockType Queue με συναλλαγές εν αναμονή T3 T2 S T1 zyx T3 S T2 T1 zyx W

23 Προκύπτει το παρακάτω χρονοπρόγραμμα από αλγόριθμο 2PL ? S1: R1[x];W2[x];R1[x]. Σκονάκι: - Ας δοκιμάσω να βάλω locks & unlocks… - Έχω μη επιτρεπτές συγκρούσεις? - Έχουν όλες οι συναλλαγές τις 2 φάσεις?

24 Προκύπτει το παρακάτω χρονοπρόγραμμα από αλγόριθμο 2PL ? S2: R1[y];R2[x];W1[y];W3[y];W1[z];R2[z];R3[z].

25 Προκύπτει το παρακάτω χρονοπρόγραμμα από αλγόριθμο 2PL ? S2: R1[y];R2[x];W1[y];W3[y];W1[z];R2[z];R3[z].

26 Προκύπτει το παρακάτω χρονοπρόγραμμα από αλγόριθμο 2PL ? S2: R1[y];R2[x];W1[y];W3[y];W1[z];R2[z];R3[z]. xyz T1 T2 T3

27 Προκύπτει το παρακάτω χρονοπρόγραμμα από αλγόριθμο 2PL ? S2: R1[y];R2[x];W1[y];W3[y];W1[z];R2[z];R3[z]. Χ1[y];R1[y]; xyz T1X T2 T3

28 Προκύπτει το παρακάτω χρονοπρόγραμμα από αλγόριθμο 2PL ? S2: R1[y];R2[x];W1[y];W3[y];W1[z];R2[z];R3[z]. Χ1[y];R1[y];S2[x];R2[x]; xyz T1X T2S T3

29 Προκύπτει το παρακάτω χρονοπρόγραμμα από αλγόριθμο 2PL ? S2: R1[y];R2[x];W1[y];W3[y];W1[z];R2[z];R3[z]. Χ1[y];R1[y];S2[x];R2[x];W1[y]; xyz T1X T2S T3 Έχω ήδη το lock…

30 Προκύπτει το παρακάτω χρονοπρόγραμμα από αλγόριθμο 2PL ? S2: R1[y];R2[x];W1[y];W3[y];W1[z];R2[z];R3[z]. Χ1[y];R1[y];S2[x];R2[x];W1[y]; xyz T1X T2S T3 Unlock κάνω? To T3 θέλει το y ΟΧΙ!! W

31 Προκύπτει το παρακάτω χρονοπρόγραμμα από αλγόριθμο 2PL ? S2: R1[y];R2[x];W1[y];W3[y];W1[z];R2[z];R3[z]. Χ1[y];R1[y];S2[x];R2[x];W1[y];Χ1[z];U1[y]; xyz T1X T2S T3W Και τι κάνω?

32 Προκύπτει το παρακάτω χρονοπρόγραμμα από αλγόριθμο 2PL ? S2: R1[y];R2[x];W1[y];W3[y];W1[z];R2[z];R3[z]. Χ1[y];R1[y];S2[x];R2[x];W1[y];Χ1[z];U1[y];Χ3[y] ;W3[y]; xyz T1X T2S T3X

33 Προκύπτει το παρακάτω χρονοπρόγραμμα από αλγόριθμο 2PL ? S2: R1[y];R2[x];W1[y];W3[y];W1[z];R2[z];R3[z]. Χ1[y];R1[y];S2[x];R2[x];W1[y];Χ1[z];U1[y];Χ3[y] ;W3[y];W1[z]; xyz T1X T2S T3X Έχω ήδη το lock…

34 Προκύπτει το παρακάτω χρονοπρόγραμμα από αλγόριθμο 2PL ? S2: R1[y];R2[x];W1[y];W3[y];W1[z];R2[z];R3[z]. Χ1[y];R1[y];S2[x];R2[x];W1[y];Χ1[z];U1[y];Χ3[y] ;W3[y];W1[z];U1[z];  Unlock ASAP xyz T1 T2S T3X

35 Προκύπτει το παρακάτω χρονοπρόγραμμα από αλγόριθμο 2PL ? S2: R1[y];R2[x];W1[y];W3[y];W1[z];R2[z];R3[z]. Χ1[y];R1[y];S2[x];R2[x];W1[y];Χ1[z];U1[y];Χ3[y] ;W3[y];W1[z];U1[z];S2[z];R2[z]; xyz T1 T2SS T3X

36 Προκύπτει το παρακάτω χρονοπρόγραμμα από αλγόριθμο 2PL ? S2: R1[y];R2[x];W1[y];W3[y];W1[z];R2[z];R3[z]. Χ1[y];R1[y];S2[x];R2[x];W1[y];Χ1[z];U1[y];Χ3[y] ;W3[y];W1[z];U1[z];S2[z];R2[z];S3[z];R3[z]; xyz T1 T2SS T3XS ΔΕΝ υπάρχει σύγκρουση για S- locks!!

37 … ναι... S2: R1[y];R2[x];W1[y];W3[y];W1[z];R2[z];R3[z]. Χ1[y];R1[y];S2[x];R2[x];W1[y];Χ1[z];U1[y];Χ3[y] ;W3[y];W1[z];U1[z];S2[z];R2[z];S3[z];R3[z];U 123 [ all] …

38 Μπορούσα να είχα κάνει ? S2: R1[y];R2[x];W1[y];W3[y];W1[z];R2[z];R3[z]. Χ1[y];R1[y];S2[x];R2[x];W1[y];Χ1[z];U1[y];Χ3[y] ;W3[y];W1[z];U1[z];S2[z];R2[z];S3[z];R3[z];U 123 [ all] … U2[x] U3[y]

39 Θεώρημα Όλα τα χρονοπρογράμματα που προκύπτουν από ένα διαχειριστή κλειδαριών 2PL, έχουν ακυκλικό γράφο σειριοποίησης Το αντίστροφο ΔΕΝ ισχύει. Λήμμα: αν δεν έχει ακυκλικό γράφο σειριοποήσης  δεν είναι 2PL.

40 Προκύπτει το παρακάτω χρονοπρόγραμμα από αλγόριθμο 2PL ? S3: W2[x];W3[x];W1[y];W2[y].

41 Μπορώ να το σειριοποιήσω? S3: W2[x];W3[x];W1[y];W2[y]. T1T1 T2T2 x T3T3 y

42 Venn διάγραμμα SERIALIZABLE ACYCLIC GRAPH 2PL Existing 2PL SERIAL

43 Υπάρχων 2PL? Αυστηρός 2PL: όλα τα κλειδώματα αφήνονται στο τέλος της συναλλαγής, μαζί. # locks time Αύξηση ΕΟΤ: End of Trxn

44 Αυστηρός 2PL Στην πράξη όλα τα συστήματα χρησιμοποιούν αυστηρό 2PL... [Για το σπίτι] Προκύπτει από Strict 2PL? R1[y];R2[x];W1[y];W3[y];W1[z];R2[z];R3[z].

45 Θεματολόγιο Κλειδώματα – 2 Phase Locking Πώς γίνεται στην πράξη? Αδιέξοδα SQL & συναλλαγές

46 Πώς γίνεται στην πράξη? Κάθε συναλλαγή ζητά από το διαχειριστή κλειδωμάτων το αντίστοιχο κλειδί Αυτός ελέγχει τον πίνακα κλειδωμάτων και αν μπορεί, παραχωρεί το κλειδί και ενημερώνει τον πίνακα Αν δεν μπορεί, χρησιμοποιεί μια ουρά αναμονής ανά αντικείμενο, όπου και καταχωρείται η εν λόγω συναλλαγή. Η συναλλαγή περιμένει.

47 Πώς γίνεται στην πράξη? Όταν μια συναλλαγή τελειώνει [επιτυχώς, ή μη], όλα τα κλειδώματα αποδεσμεύονται. Όσες συναλλαγές περιμένουν στην ουρά αναμονής για κάθε κλείδωμα, ενεργοποιούνται και λαμβάνουν τα κλειδώματα με τη σειρά Π.χ., αν η ουρά είναι S1[x]S2[x]X3[x] για το x, όταν θα ενεργοποιηθεί η ουρά, η Τ1 και Τ2 θα πάρουν το S-lock και η ουρά θα γίνει X3[x]

48 Λιμοκτονία -- starvation Έστω ότι η Τ1 έχει S-lock στο x Έστω ότι η Τ2 ζητά Χ-lock στο x  θα μπει στην ουρά αναμονής Q:X2[x] Έστω ότι, ακολούθως, έρχεται η Τ3 και ζητά S- lock στο x. Θα το λάβει? ΌΧΙ! Αν ακολουθήσουμε αυτή την πολιτική, είναι πιθανό η Τ2 να περιμένει για πάντα... Η Τ3 θα μπει στην ουρά Q:X2[x]S3[x]

49 Ατομικότητα του κλειδώματος Για να διασφαλίζεται η ατομικότητα του κλειδώματος και ξεκλειδώματος: χρησιμοποιείται σηματοφορέας στην μνήμη για τον πίνακα κλειδωμάτων χρησιμοποιούνται μικρής διάρκειας μάνταλα (latches) για τις σελίδες που διαβάζονται ή ενημερώνονται, αν το κλείδωμα γίνεται ανά εγγραφή (ουσιαστικά κλειδώνοντας την αντίστοιχη Ι/Ο ενέργεια read/write, για να μην υπάρχει σύγκρουση σε επίπεδο σελίδας)

50 Αναβάθμιση κλειδώματος Μέχρι τώρα υποθέταμε ότι κάθε συναλλαγή γνωρίζει εκ προοιμίου όλα τα κλειδώματα που θα ζητήσει. Π.χ. Τ:R(Α)R(Β)W(Α) θα κλειδώσει με Χ το Α στην αρχή, λόγω του W(Α)  Τ:Χ T (Α)R(Α)S T (B)R(Β)W(Α)U(A)U(B). Τι γίνεται όμως αν δεν τα γνωρίζει? Η λύση έγκειται στην αναβάθμιση κλειδώματος (αντίστοιχα, υποβάθμιση)

51 Κανόνες αναβάθμισης Αναβαθμίσεις επιτρέπονται μόνο στη φάση αύξησης Υποβαθμίσεις επιτρέπονται μόνο στη φάση μείωσης Αν υπάρχει και άλλη συναλλαγή που έχει S-lock ένα αντικείμενο, και θες να αναβαθμίσεις από S- σε X-lock, πρέπει να περιμένεις...

52 Αναβάθμιση T 11 read(a 1 ) read(a 2 )... read(a n ) write(a 1 ) T 12 read(a 1 ) read(a 2 ) display(a 1 + a 2 ) Μπορείς S 11 (α1) Upgrade από S 11 (α1) σε Χ 11 (α1) προϋποθέτει να κάνει UNLOCK η Τ 12 το α1

53 Θεματολόγιο Κλειδώματα – 2 Phase Locking Πώς γίνεται στην πράξη? Αδιέξοδα SQL & συναλλαγές

54 Αδιέξοδο Η κατάσταση κατά την οποία δύο συναλλαγές Τ και Τ’ αναμένουν η μία την άλλη για την απελευθέρωση κάποιων κλειδωμάτων Εναλλακτικοί όροι: «Λειτουργική παύση» ή “deadlock” Προφανώς, ο παραπάνω ορισμός γενικεύεται για περισσότερες από δύο συναλλαγές

55 Αδιέξοδο Θεωρήστε το παρακάτω χρονοπρόγραμμα S1[x],R1[x],X2[y],W2[y],X2[x],W2[x],X1[y],W1[y] H T1 έχει S-lock στο x H T2 έχει X-lock στο y. Όταν ζητά X-lock στο x, υποχρεωτικά περιμένει την Τ1 Η Τ1 πάει να ζητήσει X-lock στο y, οπότε υποχρεωτικά περιμένει την Τ2...

56 Γράφος αναμονής (blocking graph) Για κάθε συναλλαγή και ένας κόμβος Μία κατευθυνόμενη ακμή από την συναλλαγή Τ1 στην συναλλαγή Τ2, αν η Τ1 περιμένει την Τ2 να απελευθερώσει κάποιο κλείδωμα Επίσης γνωστός και ως γράφος waits-for ΠΡΟΣΟΧΗ: Δεν είναι ίδιος με το γράφο σειριοποιησιμότητας!!!

57 Αδιέξοδο Θεωρήστε το παρακάτω χρονοπρόγραμμα S1[x],R1[x],X2[y],W2[y],X2[x],W2[x],X1[y],W1[y] T1T1 T2T2 x y

58 Θεώρημα Θεώρημα: Υπάρχει αδιέξοδο αν και μόνο αν ο γράφος αναμονής έχει κύκλο Στην πράξη το σύστημα ελέγχει τον γράφο αναμονής περιοδικά Εναλλακτικά, αντί για γράφο, μπορεί να μετρά πόση ώρα μια συναλλαγή αναμένει για ένα κλείδωμα και να την τερματίζει αν περάσει κάποιο όριο...

59 Ανίχνευση ή αποτροπή? Αντί να περιμένουμε να συμβεί το αδιέξοδο, μπορούμε να το αποτρέψουμε προληπτικά Συντηρητικός 2PL: μια συναλλαγή αποκτά όλα τα κλειδώματα που χρειάζεται στο ξεκίνημα της. Αν δεν μπορεί να τα πάρει ΟΛΑ, δεν ξεκινά, αλλά αναμένει! Εν γένει, προτιμώνται τα αδιέξοδα...

60 Ποια συναλλαγή θα «τερματιστεί»? Αυτή με τα λιγότερα κλειδώματα... Αυτή με τα περισσότερα κλειδώματα... Αυτή που είναι η πιο πρόσφατη... Αυτή που εκτιμάται ότι χρειάζεται την πιο πολλή δουλειά... Για το σπίτι: τι προβλήματα μπορεί να έχει η χρήση timeouts?

61 Θεματολόγιο Κλειδώματα – 2 Phase Locking Πώς γίνεται στην πράξη? Αδιέξοδα SQL & συναλλαγές

62 Συναλλαγές και SQL Στην SQL-92 κάθε συναλλαγή έχει: Μέθοδο πρόσβασης: READ ONLY vs. READ WRITE Ένα από 4 επιτρεπτά επίπεδα απομόνωσης: READ UNCOMMITTED READ COMMITTED REPEATABLE READ SERIALIZABLE Παράδειγμα χρήσης: SET ISOLATION LEVEL SERIALIZABLE READ WRITE

63 Συναλλαγές και SQL READ UNCOMMITTED : Δεν υποστηρίζει κλειδώματα. Επιτρέπεται μόνο σε READ ONLY συναλλαγές READ COMMITTED : Κρατά X-locks για writes, και τα ελευθερώνει στο ΕΟΤ Κρατά S-locks για reads, και τα ελευθερώνει αμέσως Δεν έχει πρόβλημα με dirty reads (W-R συγκρούσεις), αλλά έχει πρόβλημα σε unrepeatable reads (R-W συγκρούσεις)

64 Συναλλαγές και SQL RΕPEATABLE READ : Διαβάζει μόνο ότι προκύπτει από committed συναλλαγές Ελευθερώνει locks στο τέλος (S-locks & X-locks) Ευάλωτη σε φαντάσματα SERIALIZABLE : Αυστηρό 2PL Ανεπηρέαστη από φαντάσματα

65 SQL-92 Όχι Serializable ΊσωςΌχι Repeatable Reads Ίσως ΌχιRead Committed Ίσως Read Uncommitted Πρόβλημα φαντάσματος Μη επαναλαμ- βανόμενη ανάγνωση Dirty Read Επίπεδο

66 Σύμφωνα με το “cow-book” … IBM DB2, Informix, Sybase, MS SQL Server: Strict 2PL (ή πιο χαλαρό πρωτόκολλο αν δεν ζητηθεί SERIALIZABLE isolation level) Oracle: multiversion concurrency control MS SQL Server: επιπλέον, επιτρέπει και optimistic concurrency control Ramakrishnan & Gehrke

67 Για εμβάθυνση, εμπέδωση και επέκταση... Hal Berenson, Philip A. Bernstein, Jim Gray, Jim Melton, Elizabeth J. O'Neil, Patrick E. O'Neil: A Critique of ANSI SQL Isolation Levels. SIGMOD Conference 1995