Τεχνικές Ελέγχου Συνδροµικότητας

Σχετικά έγγραφα
Επεξεργασία οσοληψιών (συνέχεια)

Επεξεργασία οσοληψιών

Επεξεργασία οσοληψιών

Βάσεις Δεδομένων ΙΙ. Διάλεξη 2 η Tεχνικές Ελέγχου Συνδρομικότητας

Επεξεργασία οσοληψιών

Επεξεργασία οσοληψιών (συνέχεια)

Έλεγχος Ταυτοχρονισμού

Θεµατολόγιο. Α) Πρακτικά Θέµατα στον Έλεγχο Ταυτοχρονισµού

Επεξεργασία οσοληψιών

ΒΑΣΕΙΣ Ε ΟΜΕΝΩΝ ΙΙ. Επεξεργασία οσοληψιών. το πώς βλέπει το Σ Β τα προγράµµατα των χρηστών. οσοληψία (transaction)

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ - ΤΜΗΥΠ ΒΑΣΕΙΣ Ε ΟΜΕΝΩΝ ΙI

ΗΥ360 Αρχεία και Βάσεις εδοµένων ιδάσκων:. Πλεξουσάκης

ΗΥ360 Αρχεία και Βάσεις εδοµένων ιδάσκων: ημήτρης Πλεξουσάκης

ΒΑΣΕΙΣ Ε ΟΜΕΝΩΝ ΙΙ. Σχετικά µε το µάθηµα: Αξιολόγηση. Σχετικά µε το µάθηµα:faq ΟΧΙ ΝΑΙ. Λιγότερος! (ας πούµε το 1/3-1/4)

ΗΥ360 Αρχεία και Βάσεις εδοµένων ιδάσκων: ημήτρης Πλεξουσάκης

Επαναληπτικές ασκήσεις

Βάσεις Δεδομένων και Ευφυή Πληροφοριακά Συστήματα Επιχειρηματικότητας. Πληροφοριακά Συστήματα και Βάσεις Δεδομένων. Δρ. Κωνσταντίνος Χ.

Δοσοληψίες. Κατανεμημένα Συστήματα

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ. Πανεπιστήμιο Πειραιώς Τμήμα Ψηφιακών Συστημάτων Μανουσόπουλος Χρήστος

Δοσοληψίες. Κατανεμημένα Συστήματα

Βάσεις Δεδομένων 2. Φροντιστήριο Δοσοληψίες Τεχνικές ελέγχου συνδρομικότητας. Ημερ: 05/5/2009 Ακ.Έτος

Βάσεις Δεδομένων ΙΙ. Διάλεξη 1 η Επεξεργασία Δοσοληψιών. Σύστημα Επεξεργασίας Δοσοληψιών

Έλεγχος συγχρονικότητας Μέρος 2 Βάσεις Δεδομένων Διδάσκων: Μαρία Χαλκίδη

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ

Βάσεις Δεδομένων ΙΙ Ενότητα 2

Θεµατολόγιο. Πώς ελέγχουµε σειριοποιησιµότητα στην πράξη;

Έλεγχος συγχρονικότητας Μέρος 1 Βάσεις Δεδομένων Διδάσκων: Μαρία Χαλκίδη

Βάσεις Δεδομένων ΙΙ Ενότητα 2

Διαχείριση Δοσοληψιών

Δοσοληψίες Βάσεις Δεδομένων Διδάσκων: Μαρία Χαλκίδη

Κεφάλαιο 13 Δοσοληψίες

ΗΥ360 Αρχεία και Βάσεις εδοµένων

Βάσεις Δεδομένων. Τ.Ε.Ι. Ιονίων Νήσων Σχολή Διοίκησης και Οικονομίας - Λευκάδα

Προχωρημένα Θέματα Βάσεων Δεδομένων

Πλειάδες φαντάσματα (phantoms)

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ - ΤΜΗΥΠ ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ ΙI

ΙΑΧΕΙΡΙΣΗ ΟΣΟΛΗΨΙΩΝ Να θυµηθούµε:

Επεξεργασία Ερωτήσεων

ΚΕΦΑΛΑΙΟ 1 ΣΥΝΑΛΛΑΓΕΣ ΚΑΙ ΕΛΕΓΧΟΣ ΤΑΥΤΟΧΡΟΝΙΣΜΟΥ

Επεξεργασία Ερωτήσεων

Γιατί υϖάρχει τέτοια καθολική κατάσταση;

Επεξεργασία Ερωτήσεων

Επεξεργασία Ερωτήσεων

Έλεγχος Ταυτοχρονισμού

Τεχνικές Ανάκαµψης. Αtomicity (ατοµικότητα) - είτε όλες οι πράξεις είτε

Τεχνικές Ανάκαµψης. Αtomicity (ατοµικότητα) - είτε όλες οι πράξεις είτε

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

Ευρετήρια. Ευρετήρια. Βάσεις Δεδομένων : Ευρετήρια 1

ΗΥ-460 Συστήµατα ιαχείρισης Βάσεων εδοµένων ηµήτρης Πλεξουσάκης Βασίλης Χριστοφίδης

Χρονοδιάγραμμα/Χρονοπρόγραμμα

Πανεπιστήµιο Κρήτης Τµήµα Επιστήµης Υπολογιστών. ΗΥ-460 Συστήµατα ιαχείρισης Βάσεων εδοµένων ηµήτρης Πλεξουσάκης Βασίλης Χριστοφίδης

Βάσεις Δεδομένων ΙΙ Ενότητα 1

Ιδιοκτησία Αντικειµένου

Ευρετήρια. Ευρετήρια. Βάσεις Δεδομένων : Ευρετήρια 1

Τα δεδομένα (περιεχόμενο) μιας βάσης δεδομένων αποθηκεύεται στο δίσκο

Εισαγωγή. Γενική Εικόνα του Μαθήµατος. Το εσωτερικό ενός Σ Β. Εισαγωγή. Εισαγωγή Σ Β Σ Β. Αρχεία ευρετηρίου Κατάλογος συστήµατος Αρχεία δεδοµένων

Σηµειώσεις Βάσεων εδοµένων. ιαχείριση οσοληψιών. Γιάννης Θεοδωρίδης. Τµήµα Πληροφορικής, Πανεπιστήµιο Πειραιά.

Ορισµοί Σχεσιακού Μοντέλου και Τροποποιήσεις Σχέσεων σε SQL

Τα δεδοµένα συνήθως αποθηκεύονται σε αρχεία στο δίσκο Για να επεξεργαστούµε τα δεδοµένα θα πρέπει αυτά να βρίσκονται στη

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ. Πανεπιστήμιο Πειραιώς Τμήμα Ψηφιακών Συστημάτων Μανουσόπουλος Χρήστος

Βάσεις Δεδομένων ΙΙ. Διάλεξη 3 η Tεχνικές Aνάκαμψης. Ιδιότητες Δοσοληψιών

Έλεγχος Ταυτοχρονισμού

Έλεγχος Συγχρονικότητας. (Concurrency Control)

Εισαγωγή στην. Εισαγωγή Σ Β. Αρχεία ευρετηρίου Κατάλογος. συστήματος. Αρχεία δεδομένων

Αποκατάσταση συστήματος Βάσεις Δεδομένων

Οι πράξεις της συνένωσης. Μ.Χατζόπουλος 1

Φραγή σε πολλαπλά επίπεδα λεπτομέρειας Τι αντικείμενα κλειδώνουμε?

Θέματα Υλοποίησης Σχεσιακών ΣΔΒΔ

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΛΥΣΗ ΣΤΗΝ ΕΥΤΕΡΗ ΑΣΚΗΣΗ

Αδιέξοδα (Deadlocks)

Το εσωτερικό ενός Σ Β

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

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

Σημεία ελέγχου (Checkpoints)

Κατανεμημένες δοσοληψίες

Αδιέξοδα Ανάθεση Πόρων (Deadlocks Resource Allocation)

Locking to ensure serializability

ΕΥΧΑΡΙΣΤΙΕΣ. της εφαρµογής που υλοποιήσαµε, αλλά και προτάσεις για µελλοντικές εφαρµογές µε βάση την τεχνογνωσία που αποκτήσαµε.

ΗΥ360 Αρχεία και Βάσεις εδοµένων ιδάσκων:. Πλεξουσάκης

Επανάκτηση δεδομένων. (εμπλουτισμένο υλικό)

Δυναμικά Πολυεπίπεδα Ευρετήρια (Β-δένδρα) Μ.Χατζόπουλος 1

Κατανεμημένες δοσοληψίες

Συναλλαγές. Εαρινό Εξάμηνο Τμήμα Μηχανικών Η/Υ και Πληροϕορικής Πολυτεχνική Σχολή, Πανεπιστήμιο Πατρών. Συναλλαγές. Βάσεις Δεδομένων ΙΙ

Υ- 07 Παράλληλα Συστήματα Transac9onal memory

2.4 Κλασσικά Προβλήματα IPC

Οργάνωση αρχείων: πως είναι τοποθετηµένες οι εγγραφές ενός αρχείου όταν αποθηκεύονται στο δίσκο

Αδιέξοδα Ανάθεση Πόρων (Deadlocks Resource Allocation)

ΛΥΣΗ ΤΗΣ ΔΕΥΤΕΡΗΣ ΑΣΚΗΣΗΣ Όλγα Γκουντούνα

10 η Διάλεξη Python Βάσεις δεδομένων στη python

Αρχεία και Βάσεις Δεδομένων

Query-by-Example (QBE)

Συστήματα Διαχείρισης Βάσεων Δεδομένων

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

Ορισμοί Σχεσιακού Μοντέλου και (απλές)τροποποιήσεις Σχέσεων στην SQL. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

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

Μάθημα Βάσεις Δεδομένων ΙΙ - Ασκήσεις Επανάληψης. 01 Εκφώνηση

Ορισμοί Σχεσιακού Μοντέλου και Τροποποιήσεις Σχέσεων σε SQL

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ

Transactions Management. (Διαχείριση Δοσοληψιών)

Transcript:

Τεχνικές Ελέγχου Συνδροµικότητας Τεχνικές Ελέγχου Συνδροµικότητας Ο χρήστης δεν ασχολείται µε τη συνδροµικότητα Το Σ Β εξασφαλίζει «σωστή συνδροµικότητα», γενικά δροµολογεί τις πράξεις των δοσοληψιών ώστε να προκύπτουν χρονοπρογράµµατα σειριοποιήσιµα βάσει συγκρούσεων Μέσω τεχνικών ελέγχου συνδροµικότητας ηλαδή, ψάχνουµε αλγόριθµους (πρωτόκολλα) που θα δροµολογούν τις πράξεις των δοσοληψιών Βάσεις εδοµένων II 2003-2004 Ευαγγελία Πιτουρά 1 Βάσεις εδοµένων II 2003-2004 Ευαγγελία Πιτουρά 2 Τεχνικές Τεχνικές Ελέγχου Συνδροµικότητας 1. Κλειδώµατος (locking) για να αποτρέψουν τη συνδροµική (ταυτόχρονη) προσπέλαση των δεδοµένων από πολλές δοσοληψίες 2. ιάταξης χρονοσηµάτων (timestamps) 3. Πιστοποίησης (validation) µιας δοσοληψίας (αισιόδοξα πρωτόκολλα) Ηπιο απλή εκδοχή: ένα κλειδί ανά δεδοµένο µια δοσοληψία πριν προσπελάσει ένα δεδοµένο Χ ζητά ένα κλειδί -- αίτηση lock(χ) µπορεί να προσπελάσει το δεδοµένο, µόνο αφού της δοθεί το κλειδί -- πότε παίρνει το κλειδί; µια δοσοληψία µπορεί να άρει το κλειδί στο δεδοµένο -- αίτηση unlock (Χ) Βάσεις εδοµένων II 2003-2004 Ευαγγελία Πιτουρά 3 Βάσεις εδοµένων II 2003-2004 Ευαγγελία Πιτουρά 4 ένα απλό κλείδωµα: στην πιο απλή περίπτωση, ένα µόνο είδος κλειδιού lock(χ) :: πραγµατοποιείται αν το δεδοµένο δεν είναι ήδη κλειδωµένο, αλλιώς η δοσοληψία περιµένει µέχρι να ελευθερωθεί το δεδοµένο µια δοµή (πίνακας) (δεδοµένο, µια ένδειξη (κλειδωµένο - µη-κλειδωµένο), ουρά µε δοσοληψίες που περιµένουν) unlock (Χ) υο προβλήµατα: 1. εν επιτρέπει ταυτόχρονες αναγνώσεις. 2. ε δουλεύει! (δηλαδή, δεν αρκεί για να δώσει σειριοποιήσιµα χρονοπρογράµµατα) Χρειάζεται (όπως θα δούµε) διάταξη των πράξεων lock-unlock κάθε δοσοληψίας Ας διορθώσουµε το πρώτο Βάσεις εδοµένων II 2003-2004 Ευαγγελία Πιτουρά 5 Βάσεις εδοµένων II 2003-2004 Ευαγγελία Πιτουρά 6

Στόχος: πολλές δοσοληψίες να µπορούν να διαβάσουν ένα δεδοµένο ταυτόχρονα ύο ειδών κλειδιά: διαµοιραζόµενο (shared) κλειδί ή κλειδί ανάγνωσης αποκλειστικό (exclusive) κλειδί ή κλειδί εγγραφής µια δοσοληψία πριν διαβάσει ένα δεδοµένο Χ ζητά ένα διαµοιραζόµενο κλειδί -- αίτηση S-lock(Χ) µια δοσοληψία πριν γράψει ένα δεδοµένο Χ ζητά ένα αποκλειστικό κλειδί -- αίτηση Χ-lock(Χ) η αίτηση για κλειδί δίνεται αν δεν υπάρχει «συγκρούµενο κλειδί» (πάλι) µια δοσοληψία µπορεί να άρει το κλειδί στο δεδοµένο -- αίτηση unlock (Χ) Βάσεις εδοµένων II 2003-2004 Ευαγγελία Πιτουρά 7 Βάσεις εδοµένων II 2003-2004 Ευαγγελία Πιτουρά 8 Πίνακας συµβατότητας κλειδιών S-Lock(X) S-Lock(X) X-Lock(X) X-Lock(X) S-Lock(Y) R 1 (Y) Unlock(Y) 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 Y X Λύση: Κλείδωµα ύο Φάσεων Βάσεις εδοµένων II 2003-2004 Ευαγγελία Πιτουρά 9 Βάσεις εδοµένων II 2003-2004 Ευαγγελία Πιτουρά 10 Κλείδωµα υο Φάσεων Κλείδωµα υο Φάσεων Πρωτόκολλο κλειδώµατος δυο φάσεων (Two-Phase Locking 2PL) Όλες οι πράξεις (αιτήσεις ) κλειδώµατος µιας δοσοληψίας προηγούνται της πρώτης πράξης (αίτησης) άρσης κλειδώµατος της διαδικασίας ηλαδή, µόλις µια δοσοληψία αφήσει (unlock) ένα κλειδί δεν µπορεί να ζητήσει ξανά κλειδί Κάθε δοσοληψία δυο φάσεις µια φάση επέκτασης ή εξάπλωσης µια φάση συρρίκνωσης Αποδεικνύεται ότι είναι σωστό Τροποποίηση ώστε να είναι αυστηρό; Βάσεις εδοµένων II 2003-2004 Ευαγγελία Πιτουρά 11 Βάσεις εδοµένων II 2003-2004 Ευαγγελία Πιτουρά 12

Αδιέξοδα Παρατηρήσεις Οι αιτήσεις lock και unlock πρέπει να είναι ατοµικές πράξεις Αναβάθµιση κλειδιού: µια δοσοληψία που κατέχει ένα διαµοιραζόµενο κλειδί µπορεί να αναβαθµιστεί ώστε να κατέχει ένα αποκλειστικό κλειδί Οι τεχνικές κλειδώµατος µπορεί να προκαλέσουν αδιέξοδα (deadlocks) S-Lock(Y) R 1 (Y) X-Lock(X) S-Lock(X) R 2 (X) H περιµένει την Τ2 να ελευθερώσει το Χ, και η Τ2 περιµένει την Τ1 να ελευθερώσει το Υ X-Lock(Y) Βάσεις εδοµένων II 2003-2004 Ευαγγελία Πιτουρά 13 Βάσεις εδοµένων II 2003-2004 Ευαγγελία Πιτουρά 14 Αντιµετώπιση Αδιεξόδων Πρόληψη Αδιεξόδων υο τεχνικές: Πρωτόκολλα Πρόληψης Αδιεξόδων (Deadlock Prevention): Αποφυγή δηµιουργίας αδιεξόδου Πρωτόκολλα Ανίχνευσης Αδιεξόδου (Deadlock Detection): Eλέγχουµε περιοδικά αν το σύστηµα βρίσκεται σε κατάσταση αδιεξόδου Κάθε δοσοληψία πρέπει να κλειδώσει όλα τα δεδοµένα που χρειάζεται πριν ξεκινήσει Αν δε µπορεί να κλειδώσει έστω και ένα, δε κλειδώνει κανένα και προσπαθεί ξανά Βάσεις εδοµένων II 2003-2004 Ευαγγελία Πιτουρά 15 Βάσεις εδοµένων II 2003-2004 Ευαγγελία Πιτουρά 16 Πρόληψη Αδιεξόδων Πρόληψη Αδιεξόδων «σπάσιµο» του κύκλου κάποια διάταξη µεταξύ των δοσοληψιών Κάθε δοσοληψία Τ έχει ένα χρονόσηµο ΤS(T): Μια διαδικασία παίρνει ένα χρονόσηµο κατά την εκκίνησή της. TS() < TS(), σηµαίνει ότι η ξεκίνησε πριν την Τ2 ιδέα: µια δοσοληψία περιµένει µόνο αν το κλειδί το έχει µια δοσοληψία µε µικρότερο (µεγαλύτερο) χρονόσηµο, αλλιώς ακυρώνεται ύο σχήµατα αναµονής-θανάτωσης τραυµατισµού-αναµονής Και στα δύο σχήµατα οι παλιές δοσοληψίες «εκτοπίζουν» τις νεώτερες Βάσεις εδοµένων II 2003-2004 Ευαγγελία Πιτουρά 17 Βάσεις εδοµένων II 2003-2004 Ευαγγελία Πιτουρά 18

Πρόληψη Αδιεξόδων Ανίχνευση Αδιεξόδων Έστω ότι η Τ i ζητά να κλειδώσει το X που είναι κλειδωµένο από την Τ j αναµονή-θανάτωση Αν TS(T i ) < TS(T j ) T i περιµένει (* περιµένουµε αν το κλειδί το έχει νεώτερη *) Αλλιώς (* το κλειδί το έχει παλαιότερη *) ακυρώνεται (πεθαίνει!) ητ i και επανεκκινείται µε το ίδιο (γιατί;) χρονόσηµα τραυµατισµός -αναµονή Αν TS(T i ) > TS(T j ) T i περιµένει (* περιµένουµε αν το κλειδί το έχει παλαιότερη *) Αλλιώς (* το κλειδί το έχει νεώτερη *) ακυρώνεται (τραυµατίζεται) η Τ j και επανεκκινείται µε το ίδιο χρονόσηµα Βάσεις εδοµένων II 2003-2004 Ευαγγελία Πιτουρά 19 Κατασκευή γράφου αναµονής (wait-for graph) κόµβοι : δοσοληψίες ακµή από τον κόµβο T i στον T j, αν η T i περιµένει την T j να αφήσει ένα κλειδί Περιοδικά έλεγχος για κύκλους στο γράφο αναµονής Βάσεις εδοµένων II 2003-2004 Ευαγγελία Πιτουρά 20 Παράδειγµα: Ανίχνευση Αδιεξόδων : S-Lock(A), R(A), S-Lock(B) : X-Lock(B),W(B) X-Lock(C) T3: S-Lock(C), R(C) X-Lock(A) T4: X-Lock(B) B Β C ιακριτότητα ύσκολο να αποφασίσουµε τη διακριτότητα (granularity) για το κλείδωµα Database contains Tables Pages Tuples T4 T3 T4 T3 Βάσεις εδοµένων II 2003-2004 Ευαγγελία Πιτουρά 21 Βάσεις εδοµένων II 2003-2004 Ευαγγελία Πιτουρά 22 Τεχνικές Ελέγχου Συνδροµικότητας Τεχνικές 1. Κλειδώµατος (locking) 2. ιάταξης χρονοσηµάτων (timestamps) 3. Πιστοποίησης (validation) Το χρονόσηµα δηµιουργείται από το Σ Β και προσδιορίζει µοναδικά µια δοσοληψία Ιδέα: διάταξη των δοσοληψιών µε βάση το χρονόσηµα τους (δηλαδή, χρονοπρόγραµµα ισοδύναµο µε σειριακό στο οποίο οι δοσοληψίες εµφανίζονται διατεταγµένες µε βάση τις τιµές των χρονοσηµάτων) άρα η σειρά προσπέλασης στα δεδοµένα πρέπει να µη παραβιάζει τη σειριοποιησιµότητα Βάσεις εδοµένων II 2003-2004 Ευαγγελία Πιτουρά 23 Βάσεις εδοµένων II 2003-2004 Ευαγγελία Πιτουρά 24

ηλαδή: αν µια πράξη a i µιας δοσοληψίας T i συγκρούεται µε µια πράξη a j µιας δοσοληψίας T j και TS(T i ) < TS(T j ), τότε η a i πρέπει να προηγείται της a j. Αλλιώς, restart τη δοσοληψία. Κάθε δεδοµένο Χ έχει δύο τιµές χρονοσηµάτων: ΧΣΑ(Χ) (χρονόσηµα ανάγνωσης) το µεγαλύτερο µεταξύ όλων των χρονοσηµάτων των δοσοληψιών που διάβασαν το Χ (διαισθητικά, η πιο πρόσφατη που το διάβασε) ΧΣΕ(Χ) (χρονόσηµα εγγραφής) το µεγαλύτερο µεταξύ όλων των χρονοσηµάτων των δοσοληψιών που έγραψαν το Χ Βάσεις εδοµένων II 2003-2004 Ευαγγελία Πιτουρά 25 Βάσεις εδοµένων II 2003-2004 Ευαγγελία Πιτουρά 26 Η δοσοληψία T µε ΧΣ(Τ) εκτελεί µια πράξη ανάγνωσης R(X) Αν ΧΣ(Τ) < ΧΣE(Χ) (αυτό παραβιάζει τη διάταξη) η Τ ακυρώνεται, µπορεί να ξαναρχίσει αλλά µε µεγαλύτερο χρονόσηµα (γιατί;) Αν ΧΣ(Τ) > ΧΣE(Χ) η ανάγνωση είναι επιτρεπτή θέσε το ΧΣΑ(Χ) = max{xσa(t), ΧΣ(ΤΑ)} Οι αλλαγές στο ΧΣΑ(Χ) πρέπει να γράφονται στο δίσκο! Αυτό και το ότι η δοσοληψίες ξαναρχίζουν προκαλεί overhead Βάσεις εδοµένων II 2003-2004 Ευαγγελία Πιτουρά 27 Η δοσοληψία T µε ΧΣ(Τ) εκτελεί µια πράξη εγγραφής W(X) Αν ΧΣΑ(Χ) > ΧΣ(Τ) ή ΧΣΕ(Χ) > ΧΣ(Τ) η Τ ακυρώνεται (γιατί;) Βελτιστοποίηση: τι σηµαίνει ΧΣΕ(Χ) > ΧΣ(Τ) Βάσεις εδοµένων II 2003-2004 Ευαγγελία Πιτουρά 28 Ο κανόνας του Thomas για εγγραφές (Thomas Write Rule) Μπορούµε να αγνοήσουµε µερικές «ξεπερασµένες» ή τυφλές εγγραφές, δε χρειάζεται επανεκκίνηση της Τ (η εγγραφή της Τ ακολουθείται από άλλη εγγραφή, χωρίς ενδιάµεση ανάγνωση) R(A) W(A) Commit Βάσεις εδοµένων II 2003-2004 Ευαγγελία Πιτουρά 29 W(A) Commit Επιτρέπει σειριοποίησιµα - αλλά όχι σειριοποιήσιµα βάσει συγκρούσεων υστυχώς, παράγει και χρονοπρογράµµατα χωρίς δυνατότητα ανάκαµψης W(A) R(A) W(B) Τροποποίηση Commit Buffer all writes µέχρι την επικύρωση του writer (αλλά το ΧΣΕ(Χ) τροποποιείται κανονικά) Block readers T (όπου ΧΣ(T) > ΧΣΕ(Χ)) µέχρι να επικυρωθεί ο writer του Χ Όµοια µε το να κρατούν οι writers X-Locks µέχρι την επικύρωση τους αλλά όχι ακριβώς 2PL Βάσεις εδοµένων II 2003-2004 Ευαγγελία Πιτουρά 30

Τεχνικές Ελέγχου Συνδροµικότητας Αισιόδοξες Τεχνικές Τεχνικές 1. Κλειδώµατος (locking) 2. ιάταξης χρονοσηµάτων (timestamps) 3. Πιστοποίησης (validation) Οι τεχνικές κλειδώµατος είναι συντηρητικές (αποφεύγονται οι συγκρούσεις) Μειονεκτήµατα επιβάρυνση (overhead) χειρισµού κλειδώµατος αποφυγή/ανίχνευση αδιεξόδων lock contention για τα δεδοµένα που χρησιµοποιούνται συχνά Αν οι συγκρούσεις είναι σπάνιες, µεγαλύτερη συγχρονικότητα, αν αντί για κλείδωµα, έλεγχος για συγκρούσεις όταν µια δοσοληψία επικυρώνεται (commits) Βάσεις εδοµένων II 2003-2004 Ευαγγελία Πιτουρά 31 Βάσεις εδοµένων II 2003-2004 Ευαγγελία Πιτουρά 32 Αισιόδοξες Τεχνικές Πιστοποίηση Κάθε δοσοληψία έχει τρεις φάσεις ΑΝΑΓΝΩΣΗ: η δοσοληψία διαβάζει από τη βδ, αλλά τροποποιεί προσωπικά αντίγραφα των δεδοµένων ΠΙΣΤΟΠΟΙΗΣΗ: έλεγχος για συγκρούσεις ΕΓΓΡΑΦΗ: γράφει τα τοπικά αντίγραφα στη βδ Έλεγχος συνθηκών που είναι ικανές για να εξασφαλίσουν ότι δεν υπήρχαν συγκρούσεις Κάθε δοσοληψία Τ έχει ένα µοναδικό αριθµό TID (χρονόσηµα) To TID ανατίθεται στο τέλος της φάσης ΑΝΑΓΝΩΣΗΣ (ακριβώς πριν αρχίσει η πιστοποίηση) Με κάθε δοσοληψία ReadSet(T): το σύνολο των δεδοµένων που διάβασε η T WriteSet(T): το σύνολο των δεδοµένων που διάβασε η T Βάσεις εδοµένων II 2003-2004 Ευαγγελία Πιτουρά 33 Βάσεις εδοµένων II 2003-2004 Ευαγγελία Πιτουρά 34 Πιστοποίηση Πιστοποίηση Για όλα τα i και j τέτοια ώστε Ti < Tj, η Ti τελειώνει πριν αρχίσει η Tj. Ti ΕΛΕΓΧΟΣ Περίπτωση 1 Tj Ti ΕΛΕΓΧΟΣ Περίπτωση 2 Για όλα τα i και j τέτοια ώστε Ti < Tj: - η Τi τελειώνει πριν αρχίσει η φάση εγγραφής της Tj - WriteSet(Ti) ReadSet(Tj) = Tj Βάσεις εδοµένων II 2003-2004 Ευαγγελία Πιτουρά 35 Βάσεις εδοµένων II 2003-2004 Ευαγγελία Πιτουρά 36

Πιστοποίηση Πιστοποίηση Ti ΕΛΕΓΧΟΣ Περίπτωση 3 Για όλα τα i και j τέτοια ώστε Ti < Tj: - η Τi τελειώνει τη φάση ανάγνωσης πριν αρχίσει η φάση aνάγνωσης της Τj - WriteSet(Ti) ReadSet(Tj) = - WriteSet(Ti) WriteSet(Tj) = Βάσεις εδοµένων II 2003-2004 Ευαγγελία Πιτουρά 37 Tj Πιστοποίηση της 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 2003-2004 Ευαγγελία Πιτουρά 38 Πολλαπλές Εκδόσεις Πολλαπλές Εκδόσεις Κάθε εγγραφή παράγει ένα καινούργιο αντίγραφο ενώ οι αναγνώσεις διαβάζουν ένα κατάλληλο παλιό ΚΥΡΙΟ ΤΜΗΜΑ (Τρέχουσες εκδόσεις των σντικειµένων της Β ) O O O ΣΥΛΛΟΓΗ ΕΚ ΟΣΕΩΝ VERSION POOL (Παλιές εκδόσεις που µπορεί να είναι χρήσιµες σε κάποιους ενεργούς αναγνώστες Βασική ιδέα: οι αναγνώσεις διαβάζουν κατάλληλες εκδόσεις ώστε να διατηρήσουν τη σειριoποιησιµότητα Παραλλαγές των τεχνικών ελέγχου συνδροµικότητας Θα δούµε µε χρονοσήµατα Οι αναγνώστες µπορούν πάντα να προχωρήσουν -- αλλά µπορεί να χρειαστεί να περιµένουν µέχρι την επικύρωση των εγγραφών ιατήρηση παλαιότερων εκδοχών, χρήσιµη ως ιστορικό εξέλιξης των τιµών (χρονικές (temporal) βάσεις δεδοµένων) Βάσεις εδοµένων II 2003-2004 Ευαγγελία Πιτουρά 39 Βάσεις εδοµένων II 2003-2004 Ευαγγελία Πιτουρά 40 Πολλαπλές Εκδόσεις και Χρονοσήµατα Κάθε έκδοση ενός αντικειµένου έχει ως ΧΣΕ το ΧΣ της Τ που την έγγραψε και ως ΧΣΑ το ΧΣ της Τ που διάβασε αυτήν την έκδοση πιο πρόσφατα Μια πράξη εγγραφής µια δοσοληψίας Τ δηµιουργεί µια καινούργια έκδοση του δεδοµένου, µε ΧΣΑ και ΧΣΕ ίσο µε ΧΣ(Τ) Οι εκδόσεις συνδέονται (chained backward) µπορούµε να σβήσουµε εκδόσεις που είναι πολύ «παλιές για να έχουν ενδιαφέρον» Κάθε δοσοληψία: Reader ή Writer. Writer µπορεί να γράψει κάποιο αντικείµενο; Reader µόνο διαβάσει. Κάθε δοσοληψία δηλώνει αν είναι Reader όταν ξεκινά. Στόχος είναι η Readers να µην αποτυγχάνουν Βάσεις εδοµένων II 2003-2004 Ευαγγελία Πιτουρά 41 Reader Τ Πολλαπλές Εκδόσεις και Χρονοσήµατα Για την ανάγνωση ενός αντικειµένου: Βρες την πιο νεώτερη έκδοση µε ΧΣΕ < ΧΣ(Τ) (Η αναζήτηση ξεκινά από την πιο πρόσφατη - κοίτα σχήµα) Αν υποθέσουµε ότι όλες οι εκδόσεις υπάρχουν, µια Reader Τ δε χρειάζεται να επανικηθεί. εκδόσεις συνδεδεµένες βάσει του ΧΣΕ old Βάσεις εδοµένων II 2003-2004 Ευαγγελία Πιτουρά 42 T new

Writer Τ Πολλαπλές Εκδόσεις και Χρονοσήµατα Για την ανάγνωση, ακολούθησε το πρωτόκολλο του Reader Για να γράψεις ένα αντικείµενο Χ: Βρες τη νεώτερη έκδοση µε ΧΣΕ(Χ) < ΧΣΕ(Τ) Αν ΧΣΑ(Χ) < ΧΣ(Τ), η T δηµιουργεί ένα αντίγραφο CΧ του Χ, µε ένα δείκτη στο Χ, και ΧΣΕ(CΧ) = ΧΣ(T), ΧΣΑ(CΧ) = ΧΣ(T). (Οι εγγραφές γίνονται buffered µέχρι την επικύρωση της Τ, οι άλλες δοσοληψίες µπορούν να δουν τις τιµές των ΧΣ αλλά δεν µπορούν να διαβάσουν την έκδοση CΧ µέχρι η Τ να επικυρωθεί.) Αλλιώς, απόρριψη. ΧΣΕ old Χ ΧΣΑ(Χ) Βάσεις εδοµένων II 2003-2004 Ευαγγελία Πιτουρά 43 CΧ T new Sailors(sid, sname, rating, age) Boats(bid, bname, color) Reserves(sid, bid, day) υναµικές Βάσεις εδοµένων Αν επιτρέψουµε εγγραφές και διαγραφές στοιχείων, τα πρωτόκολλα δε δουλεύουν σωστά (ούτε το αυστηρό 2PL) κλειδώνει όλες τις σελίδες που περιέχουν εγγραφές sailor µε rating = 1, και βρίσκει τον πιο ηλικιωµένο (έστω, age = 71). Μετά, η εισάγει ένα νέο sailor; rating = 1, age = 96. επίσης διαγράφει τον πιο ηλικιωµένο ναυτικό µε rating = 2 (έστω, age = 80), και επικυρώνεται. τώρα κλειδώνει όλες τις σελίδες που περιέχουν εγγραφές sailor µε rating = 2, βρίσκει τον πιο ηλικιωµένο (έστω, age = 63). εν υπάρχει ισοδύναµη µε την παραπάνω σειριακή εκτέλεση Βάσεις εδοµένων II 2003-2004 Ευαγγελία Πιτουρά 44 υναµικές Βάσεις εδοµένων υναµικές Βάσεις εδοµένων Η έµµεσα υποθέτει ότι έχει κλειδώσει το σύνολο όλων των εγγραφών µε rating = 1. Η υπόθεση ισχύει µόνο αν δεν προστεθούν εγγραφές ενώ εκτελείται η Χρειάζεται κάποιος µηχανισµός για να το επιβάλει: κλείδωµα ευρετηρίου (index locking) και κλείδωµα συνθηκών (predicate locking.) Τα παράδειγµα δείχνει ότι η σειριοποιησιµότητα βάσει συγκρούσεων δίνει σειριοποιησιµότητα µόνο όταν τα αντικείµενα στη βδ είναι σταθερά Κλείδωµα Ευρετηρίου Index r=1 Αν υπάρχει ένα πυκνό ευρετήριο στο γνώρισµα rating, η θα µπορούσε να κλειδώσει τη σελίδα του ευρετηρίου που περιέχει τις εγγραφές µε rating = 1. Αν δεν υπάρχει καµία εγγραφή µε rating = 1 Data Βάσεις εδοµένων II 2003-2004 Ευαγγελία Πιτουρά 45 Βάσεις εδοµένων II 2003-2004 Ευαγγελία Πιτουρά 46 υναµικές Βάσεις εδοµένων Κλείδωµα Πολλαπλής Κλιµάκωσης Κλείδωµα Συνθήκης Κλείδωσε όλες τις εγγραφές που ικανοποιούν κάποια συνθήκη λογικής, π.χ., age > 2*salary. Το κλείδωµα ευρετηρίου είναι µια ειδική µορφή κλειδώµατος συνθήκης που το ευρετήριο επιτρέπει αποδοτική υλοποίηση του κλειδώµατος συνθήκης Βάσεις εδοµένων II 2003-2004 Ευαγγελία Πιτουρά 47 Ιεραρχική δοµή Νέα είδη κλειδιών IS (πρόθεση διαµοιραζόµενου) IX (πρόθεση αποκλειστικό) Για να κλειδώσει µε S (X) πρέπει να κλειδώσει όλους τους προγόνους µε IS (IX) αρχίζοντας από τη ρίζα Συχνά ΙΧ και S (διάβασµα όλου, τροποποίηση ενός) είδος κλειδιού SIX IS IX S SIX X IS T T T T IX T T S T T SIX T X Βάσεις εδοµένων II 2003-2004 Ευαγγελία Πιτουρά 48

Κλείδωµα Πολλαπλής Κλιµάκωσης Υποστήριξη δοσοληψιών στην SQL-92 οσοληψία αυτόµατα µε προτάσεις που τροποποιούν είτε τη βάση δεδοµένων είτε το σχήµα ύο φάσεις Σειρά αποδέσµευσης κλειδιών; Μέθοδος πρόσβασης: READ ONLY ή READ WRITE Επίπεδο αποµόνωσης READ UNCOMIITED, READ COMMITTED, REPEATABLE READ, SERIALIZABLE (αυστηρό 2PL) SET TRANSACTION ISOLATION LEVEL SERIALIZABLE READ ONLY default: SERIALIZABLE, READ WRITE Βάσεις εδοµένων II 2003-2004 Ευαγγελία Πιτουρά 49 Βάσεις εδοµένων II 2003-2004 Ευαγγελία Πιτουρά 50 Υποστήριξη δοσοληψιών στην SQL-92 Υποστήριξη δοσοληψιών Isolation Level Read Uncommitted Read Committed Repeatable Reads Serializable Dirty Read Unrepeatable Read Phantom Problem IBM DB2, Informix, Microsoft SQL server, Sybase Αυστηρό 2PL (µε παραλλαγές για επίπεδα αποµόνωσης λιγότερα αυστηρά του SERIALIZABLE) Microsoft SQL server: χρονόσηµα εγγραφής Oracle 8: πολλαπλές εκδόσεις, ώστε οι αναγνώσεις δεν περιµένουν ποτέ Κλείδωµα πολλαπλής κλιµάκωσης σε επίπεδο πίνακα, σελίδας και εγγραφής Αναλυτικά στο βιβλίο Βάσεις εδοµένων II 2003-2004 Ευαγγελία Πιτουρά 51 Βάσεις εδοµένων II 2003-2004 Ευαγγελία Πιτουρά 52