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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Κατανεμημένα Συστήματα με Java. Ενότητα # 7: Ατομικές συναλλαγές Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής

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

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

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

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

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

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

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

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

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

PRINCIPLES OF TRANSACTION-ORIENTED DATABASE RECOVERY. Theo Haerder Andreas Reuter. Μαρία Κουτσουλιέρη

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

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

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

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

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

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

ΕΙΣΑΓΩΓΗ ΣΤΑ ΣΥΣΤΗΜΑΤΑ ΔΙΑΧΕΙΡΙΣΗΣ ΒΑΣΕΩΝ ΔΕΔΟΜΕΝΩΝ

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

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

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ

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

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

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

Locking to ensure serializability

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

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

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

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

Κατανεμημένες Βάσεις Δεδομένων

Μάθημα 4 ο. Κρίσιμα Τμήματα και Αμοιβαίος Αποκλεισμός

Επαναφορά του Συστήματος (Μέρος Α')

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

ΕΠΕΞΕΡΓΑΣΙΑ ΚΑΙ ΒΕΛΤΙΣΤΟΠΟΙΗΣΗ ΕΡΩΤΗΣΕΩΝ

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

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

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

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

Τεχνικές Ανάνηψης Περιεχόµενα

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

Λειτουργικά Συστήματα (Λ/Σ)

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

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

Βάσεις Δεδομένων ΙΙ. Διάλεξη 4 η Aρχιτεκτονικές ΣΒΔ. Αρχιτεκτονικές Συστημάτων Βάσεων Δεδομένων

Υ- 07 Παράλληλα Συστήματα Συνέπεια και συνοχή μνήμης

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

Αδιέξοδα (Deadlocks)

Άσκηση 1 (15 μονάδες) (Επεκτατός Κατακερματισμός)

Θέματα Μεταγλωττιστών

Πανεπιστήμιο Θεσσαλίας Τμήμα Μηχανικών Η/Υ, Τηλεπικοινωνιών και Δικτύων

Transcript:

Επανάληψη: οσοληψίες Επεξεργασία οσοληψιών Ανακεφαλαίωση Πρόβληµα «Σωστή» εκτέλεση προγραµµάτων όταν επιτρέπουµε ταυτοχρονισµό και ακόµα και αν υπάρχουν αποτυχίες Βάσεις εδοµένων II 2003-2004 Ευαγγελία Πιτουρά 1 Βάσεις εδοµένων II 2003-2004 Ευαγγελία Πιτουρά 2 οσοληψία (transaction) Επανάληψη: οσοληψίες εκτέλεση ενός προγράµµατος που προσπελαύνει ή τροποποιεί το περιεχόµενο της βάσης δεδοµένων το πώς βλέπει το Σ Β τα προγράµµατα των χρηστών Η συνδροµικότητα (concurrency) επιτυγχάνεται από το Σ Β που διαπλέκει τις πράξεις (αναγνώσεις/εγγραφές) των διαφόρων συναλλαγών Επανάληψη: οσοληψίες οσοληψία (transaction) Ένα πρόγραµµα χρήστη µπορεί να εκτελεί πολλές λειτουργίες στα δεδοµένα που ανακτεί από τη Β, αλλά το Σ Β ενδιαφέρεται µόνο για τα δεδοµένα που διαβάζονται/γράφονται στη Β Ανάγνωση(Χ) - R(X) Εγγραφή(Χ) - W(X) Βάσεις εδοµένων II 2003-2004 Ευαγγελία Πιτουρά 3 Βάσεις εδοµένων II 2003-2004 Ευαγγελία Πιτουρά 4 Πράξεις οσοληψιών Επανάληψη: Πράξεις µιας οσοληψίας BEGIN R(X) W(X) END COMMIT (επικύρωση) - επιτυχία - όλες οι τροποποιήσεις επικυρώνονται και δεν µπορούν να αναιρεθούν ABORT (ακύρωση ή ανάκληση) - αποτυχία - όλες οι τροποποιήσεις πρέπει να αναιρεθούν Μια δοσοληψία µπορεί να να επικυρωθεί (commit) αφού ολοκληρώσει όλες τις πράξεις της ενώ µπορεί να ακυρωθεί (abort) αφού εκτελέσει κάποιες από τις πράξεις της Επανάληψη: Επιθυµητές Ιδιότητες µιας οσοληψίας Ιδιότητες οσοληψιών Αtomicity (ατοµικότητα) - είτε όλες οι πράξεις είτε καµία Consistency (συνέπεια) - διατήρηση συνέπειας της Β Isolation (αποµόνωση) - δεν αποκαλύπτει ενδιάµεσα αποτελέσµατα Durability (µονιµότητα ή διάρκεια) -µετά την επικύρωση µιας δοσοληψίας οι αλλαγές δεν είναι δυνατόν να χαθούν Βάσεις εδοµένων II 2003-2004 Ευαγγελία Πιτουρά 5 Βάσεις εδοµένων II 2003-2004 Ευαγγελία Πιτουρά 6

Αtomicity (ατοµικότητα) Consistency (συνέπεια) Isolation (αποµόνωση) Επανάληψη: Επιθυµητές Ιδιότητες µιας οσοληψίας Durability (µονιµότητα ή διάρκεια) ΤΕΧΝΙΚΕΣ ΑΝΑΚΑΜΨΕΙΣ ΥΠΕΥΘΥΝΟΤΗΤΑ ΤΟΥ ΠΡΟΓΡΑΜΜΑΤΙΣΤΗ ΕΛΕΓΧΟΣ ΣΥΝ ΡΟΜΙΚΟΤΗΤΑΣ ΤΕΧΝΙΚΕΣ ΑΝΑΚΑΜΨΕΙΣ Παράδειγµα:: Θεωρείστε τις δύο συναλλαγές (Xacts): Επανάληψη: Ορισµός οσοληψίας Μια δοσοληψία είναι µια ακολουθία από πράξεις εγγραφής και ανάγνωσης που τελειώνει µε µια πράξη επικύρωσης (commit) ή µε µια πράξη ακύρωσης (abort) : BEGIN R(X), X=Χ-N, W(X), R(Y), Y=Y+N, W(Y), END : BEGIN R(X) X=X+M, W(X), END Τ1: R 1 (X) W 1 (X) R 1 (Y) W 1 (Y) C 1 : R 2 (X) W 2 (X) C 2 Βάσεις εδοµένων II 2003-2004 Ευαγγελία Πιτουρά 7 Βάσεις εδοµένων II 2003-2004 Ευαγγελία Πιτουρά 8 Επανάληψη: Ορισµός Χρονοπρογράµµατος Επανάληψη: Ορισµός Χρονοπρογράµµατος Εκφράζει µια συγκεκριµένη εκτέλεση ενός συνόλου δοσοληψιών Οι πράξεις των δοσοληψιών εµφανίζονται στο χρονοπρόγραµµα µε τη σειρά που εκτελούνται R 1 (X) R 2 (X) Τόσα διαφορετικά χρονοπρογράµµατα όσες και πιθανές εκτελέσεις Συγκεκριµένα Ένα χρονοπρόγραµµα (schedule) S των δοσοληψιών T 1, T 2,.., T n είναι µια διάταξη των πράξεων τους µε τον περιορισµό ότι για κάθε δοσοληψία T i που συµµετέχει στο S οι πράξεις της T i στο S πρέπει να εµφανίζονται µε την ίδια σειρά που εµφανίζονται στην T i W 1 (X) R 1 (Y) W 2 (X) C 2 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 2003-2004 Ευαγγελία Πιτουρά 9 Βάσεις εδοµένων II 2003-2004 Ευαγγελία Πιτουρά 10 Επανάληψη: Σειριοποιησιµότητα Επανάληψη: Σειριοποιησιµότητα Σειριακά Χρονοπρογράµµατα: χρονοπρογράµµατα που δεν διαπλέκουν πράξεις διαφορετικών δοσοληψιών (οι πράξεις κάθε δοσοληψίας εκτελούνται διαδοχικά, χωρίς παρεµβολή πράξεων από άλλη δοσοληψία) Παρατήρηση: Αν κάθε δοσοληψία διατηρεί τη συνέπεια, τότε κάθε σειριακό χρονοπρόγραµµα διατηρεί τη συνέπεια Ένα σειριακό χρονοπρόγραµµα είναι σωστό S: R 1 (X) W 1 (X) R 1 (Y) W 1 (Y) C 1 R 2 (X) W 2 (X) C 2 Βάσεις εδοµένων II 2003-2004 Ευαγγελία Πιτουρά 11 Ισοδύναµα Χρονοπρογράµµατα : Για κάθε κατάσταση της Β, το αποτέλεσµα της εκτέλεσης του πρώτου χρονοπρογράµµατος είναι το ίδιο µε το αποτέλεσµα του δεύτερου χρονοπρογράµµατος Ένα χρονοπρόγραµµα ισοδύναµο µε ένα σειριακό είναι σωστό Βάσεις εδοµένων II 2003-2004 Ευαγγελία Πιτουρά 12

Επανάληψη: Ορισµός Χρονοπρογράµµατος Επανάληψη: Ισοδυναµία Χρονοπρογραµµάτων βάσει Συγκρούσεων Σύγκρουση πράξεων σε χρονοπρόγραµµα ύο πράξεις σε ένα χρονοπρόγραµµα συγκρούονται αν (α) ανήκουν σε διαφορετικές δοσοληψίες, (β) προσπελαύνουν το ίδιο στοιχείο, και (γ) µια από αυτές είναι πράξη εγγραφής (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 Ισοδύναµα Χρονοπρογράµµατα βάσει Συγκρούσεων: υο χρονοπρογράµµατα είναι ισοδύναµα βάσει συγκρούσεων αν η διάταξη κάθε ζεύγους συγκρουόµενων πράξεων είναι ίδια και στα δυο χρονοπρογράµµατα. S1: R 1 (X) R 2 (X) W 1 (X) R 1 (Y) W 2 (X) C 2 W 1 (Y) C 1 Βάσεις εδοµένων II 2003-2004 Ευαγγελία Πιτουρά 13 Βάσεις εδοµένων II 2003-2004 Ευαγγελία Πιτουρά 14 Επανάληψη: Σειριοποιησιµότητα Σειριοποιήσιµο Χρονοπρόγραµµα : Ένα χρονοπρόγραµµα που είναι ισοδύναµο µε κάποιο σειριακό Σειριοποιησιµότητα βάσει Συγκρούσεων: Ένα χρονοπρόγραµµα S είναι σειριοποιήσιµο βάσει συγκρούσεων αν είναι ισοδύναµο βάσει συγκρούσεων µε κάποιο σειριακό χρονοπρόγραµµα S. Σε αυτήν την περίπτωση µπορούµε να αναδιατάξουµε τις µη συγκρουόµενες πράξεις στο S µέχρι να σχηµατίσουµε ένα ισοδύναµο σειριακό χρονοπρόγραµµα. Βάσεις εδοµένων II 2003-2004 Ευαγγελία Πιτουρά 15 Επανάληψη: Έλεγχος Σειριοποιησιµότητας Γράφος προήγησης (precedence graph) ή γράφος σειριοποιησιµότητας (serialization graph) Κόµβος :: οσοληψία Ακµή T i T j αν µια πράξη της T i προηγείται µιας συγκρουόµενης πράξης της Τ j Βάσεις εδοµένων II 2003-2004 Ευαγγελία Πιτουρά 16 Επανάληψη: Έλεγχος Σειριοποιησιµότητας Επανάληψη: Έλεγχος Σειριοποιησιµότητας : R 1 (A) W 1 (A), R 1 (B) W 1 (B) : R 2 (A) W 2 (A) R 2 (B) W 2 (B) A B Θεώρηµα Ένα χρονοπρόγραµµα είναι σειριοποιήσιµο (βάσει συγκρούσεων) αν και µόνο αν ο γράφος προήγησής του είναι ακυκλικός. Η ετικέτα στην ακµή δείχνει σε πιο δεδοµένο συγκρούονται (απλώς διακοσµητική!) Βάσεις εδοµένων II 2003-2004 Ευαγγελία Πιτουρά 17 Βάσεις εδοµένων II 2003-2004 Ευαγγελία Πιτουρά 18

Επανάληψη: Χρονοπρογράµµατα και υνατότητα Ανάκαµψης Χρονοπρογράµµατα µε δυνατότητα ανάκαµψης (recoverable) αν καµιά δοσοληψία Τ στο S δεν επικυρώνεται έως ότου επικυρωθούν όλες οι δοσοληψίες οι οποίες τροποποίησαν ένα δεδοµένο που διαβάζει ητ Χρονοπρογράµµατα χωρίς διάδοση ανακλήσεων (avoids cascading aborts) αν κάθε δοσοληψία Τ στο S διαβάζει µόνο στοιχεία που έχουν γραφεί από επικυρωµένες δοσοληψίες Αυστηρά Χρονοπρογράµµατα (strict) οι δοσοληψίες δεν µπορούν ούτε να διαβάσουν ούτε να γράψουν ένα στοιχείο Χ έως ότου επικυρωθεί η δοσοληψία που έγραψε το Χ Επεξεργασία οσοληψιών Παράδειγµα Χαρακτηρίστε καθένα από τα παρακάτω χρονοπρογράµµατα: σειριοποιήσιµα βάσει συγκρούσεων, σειριοποιήσιµα βάσει όψεων µε δυνατότητα ανάκαµψης, χωρίς διάδοση ανακλήσεων, αυστηρά R 1 (X) W 2 (X) W 1 (X) A 2 C 1 R 1 (X) W 2 (X) C 2 W 1 (X) C 1 R 3 (X) C 3 Σηµείωση: σειριοποιήσιµα βάσει συγκρούσεων (χρήση του θεωρήµατος) σειριοποιήσιµα βάσει όψεων (έλεγχος µε πιθανά σειριακά) Βάσεις εδοµένων II 2003-2004 Ευαγγελία Πιτουρά 19 Βάσεις εδοµένων II 2003-2004 Ευαγγελία Πιτουρά 20 Επεξεργασία οσοληψιών Παράδειγµα Έστω το χρονοπρόγραµµα R 1 (X) R 1 (Y) W 1 (X) R 2 (Y) W 3 (Y) W 1 (X) R 2 (Y) (α) Υποθέτοντας ότι και οι τρεις δοσοληψίες τελικά επικυρώνονται, δώστε το γράφο σειριοποιηµότητας (β) Τροποιείστε το χρονοπρόγραµµα ώστε ένα πλήρες χρονοπρόγραµµα µε τις παρακάτω ιδιότητες i. δυνατότητα ανάκαµψης όχι χωρίς διάδοση ανακλήσεων ii. χωρίς διάδοση ανακλήσεων iii. σειριοποιήσιµο βάσει συγκρούσεων Τέλος Επανάληψης Βάσεις εδοµένων II 2003-2004 Ευαγγελία Πιτουρά 21 Βάσεις εδοµένων II 2003-2004 Ευαγγελία Πιτουρά 22 Τεχνικές Ελέγχου Συνδροµικότητας Τεχνικές Ελέγχου Συνδροµικότητας Ο χρήστης δεν ασχολείται µε τη συνδροµικότητα Το Σ Β εξασφαλίζει «σωστή συνδροµικότητα», γενικά δροµολογεί τις πράξεις των δοσοληψιών ώστε να προκύπτουν χρονοπρογράµµατα σειριοποιήσιµα βάσει συγκρούσεων Μέσω τεχνικών ελέγχου συνδροµικότητας ηλαδή, ψάχνουµε αλγόριθµους (πρωτόκολλα) που θα δροµολογούν τις πράξεις των δοσοληψιών Βάσεις εδοµένων II 2003-2004 Ευαγγελία Πιτουρά 23 Βάσεις εδοµένων II 2003-2004 Ευαγγελία Πιτουρά 24

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

Πίνακας συµβατότητας κλειδιών 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 Ευαγγελία Πιτουρά 31 Βάσεις εδοµένων II 2003-2004 Ευαγγελία Πιτουρά 32 Κλείδωµα υο Φάσεων Κλείδωµα υο Φάσεων Πρωτόκολλο κλειδώµατος δυο φάσεων (Two-Phase Locking 2PL) Όλες οι πράξεις (αιτήσεις ) κλειδώµατος µιας δοσοληψίας προηγούνται της πρώτης πράξης (αίτησης) άρσης κλειδώµατος της διαδικασίας ηλαδή, µόλις µια δοσοληψία αφήσει (unlock) ένα κλειδί δεν µπορεί να ζητήσει ξανά κλειδί Κάθε δοσοληψία δυο φάσεις µια φάση επέκτασης ή εξάπλωσης µια φάση συρρίκνωσης Αποδεικνύεται ότι είναι σωστό Τροποποίηση ώστε να είναι αυστηρό; Βάσεις εδοµένων II 2003-2004 Ευαγγελία Πιτουρά 33 Βάσεις εδοµένων II 2003-2004 Ευαγγελία Πιτουρά 34 Αδιέξοδα Παρατηρήσεις Οι αιτήσεις 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 Ευαγγελία Πιτουρά 35 Βάσεις εδοµένων II 2003-2004 Ευαγγελία Πιτουρά 36

Αντιµετώπιση Αδιεξόδων Πρόληψη Αδιεξόδων υο τεχνικές: Πρωτόκολλα Πρόληψης Αδιεξόδων (Deadlock Prevention): Αποφυγή δηµιουργίας αδιεξόδου Πρωτόκολλα Ανίχνευσης Αδιεξόδου (Deadlock Detection): Eλέγχουµε περιοδικά αν το σύστηµα βρίσκεται σε κατάσταση αδιεξόδου Κάθε δοσοληψία πρέπει να κλειδώσει όλα τα δεδοµένα που χρειάζεται πριν ξεκινήσει Αν δε µπορεί να κλειδώσει έστω και ένα, δε κλειδώνει κανένα και προσπαθεί ξανά Βάσεις εδοµένων II 2003-2004 Ευαγγελία Πιτουρά 37 Βάσεις εδοµένων II 2003-2004 Ευαγγελία Πιτουρά 38 Πρόληψη Αδιεξόδων Πρόληψη Αδιεξόδων «σπάσιµο» του κύκλου κάποια διάταξη µεταξύ των δοσοληψιών Κάθε δοσοληψία Τ έχει ένα χρονόσηµο ΤS(T): Μια διαδικασία παίρνει ένα χρονόσηµο κατά την εκκίνησή της. TS() < TS(), σηµαίνει ότι η ξεκίνησε πριν την Τ2 ιδέα: µια δοσοληψία περιµένει µόνο αν το κλειδί το έχει µια δοσοληψία µε µικρότερο (µεγαλύτερο) χρονόσηµο, αλλιώς ακυρώνεται ύο σχήµατα αναµονής-θανάτωσης τραυµατισµού-αναµονής Και στα δύο σχήµατα οι παλιές δοσοληψίες «εκτοπίζουν» τις νεώτερες Βάσεις εδοµένων II 2003-2004 Ευαγγελία Πιτουρά 39 Βάσεις εδοµένων II 2003-2004 Ευαγγελία Πιτουρά 40 Πρόληψη Αδιεξόδων Ανίχνευση Αδιεξόδων Έστω ότι η Τ i ζητά να κλειδώσει το X που είναι κλειδωµένο από την Τ j αναµονή-θανάτωση Αν TS(T i ) < TS(T j ) T i περιµένει (* περιµένουµε αν το κλειδί το έχει νεώτερη *) Αλλιώς (* το κλειδί το έχει παλαιότερη *) ακυρώνεται (πεθαίνει!) ητ i και επανεκκινείται µε το ίδιο (γιατί;) χρονόσηµα τραυµατισµός -αναµονή Αν TS(T i ) > TS(T j ) T i περιµένει (* περιµένουµε αν το κλειδί το έχει παλαιότερη *) Αλλιώς (* το κλειδί το έχει νεώτερη *) ακυρώνεται (τραυµατίζεται) η Τ j και επανεκκινείται µε το ίδιο χρονόσηµα Βάσεις εδοµένων II 2003-2004 Ευαγγελία Πιτουρά 41 Κατασκευή γράφου αναµονής (wait-for graph) κόµβοι : δοσοληψίες ακµή από τον κόµβο T i στον T j, αν η T i περιµένει την T j να αφήσει ένα κλειδί Περιοδικά έλεγχος για κύκλους στο γράφο αναµονής Βάσεις εδοµένων II 2003-2004 Ευαγγελία Πιτουρά 42

Παράδειγµα: Ανίχνευση Αδιεξόδων : 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 Ευαγγελία Πιτουρά 43 Βάσεις εδοµένων II 2003-2004 Ευαγγελία Πιτουρά 44 Τεχνικές Ελέγχου Συνδροµικότητας Τεχνικές 1. Κλειδώµατος (locking) 2. ιάταξης χρονοσηµάτων (timestamps) 3. Πιστοποίησης (validation) Το χρονόσηµα δηµιουργείται από το Σ Β και προσδιορίζει µοναδικά µια δοσοληψία Ιδέα: διάταξη των δοσοληψιών µε βάση το χρονόσηµα τους (δηλαδή, χρονοπρόγραµµα ισοδύναµο µε σειριακό στο οποίο οι δοσοληψίες εµφανίζονται διατεταγµένες µε βάση τις τιµές των χρονοσηµάτων) άρα η σειρά προσπέλασης στα δεδοµένα πρέπει να µη παραβιάζει τη σειριοποιησιµότητα Βάσεις εδοµένων II 2003-2004 Ευαγγελία Πιτουρά 45 Βάσεις εδοµένων II 2003-2004 Ευαγγελία Πιτουρά 46 ηλαδή: αν µια πράξη a i µιας δοσοληψίας T i συγκρούεται µε µια πράξη a j µιας δοσοληψίας T j και TS(T i ) < TS(T j ), τότε η a i πρέπει να προηγείται της a j. Αλλιώς, restart τη δοσοληψία. Κάθε δεδοµένο Χ έχει δύο τιµές χρονοσηµάτων: ΧΣΑ(Χ) (χρονόσηµα ανάγνωσης) το µεγαλύτερο µεταξύ όλων των χρονοσηµάτων των δοσοληψιών που διάβασαν το Χ (διαισθητικά, η πιο πρόσφατη που το διάβασε) ΧΣΕ(Χ) (χρονόσηµα εγγραφής) το µεγαλύτερο µεταξύ όλων των χρονοσηµάτων των δοσοληψιών που έγραψαν το Χ Βάσεις εδοµένων II 2003-2004 Ευαγγελία Πιτουρά 47 Βάσεις εδοµένων II 2003-2004 Ευαγγελία Πιτουρά 48

Η δοσοληψία T µε ΧΣ(Τ) εκτελεί µια πράξη ανάγνωσης R(X) Αν ΧΣ(Τ) < ΧΣE(Χ) (αυτό παραβιάζει τη διάταξη) η Τ ακυρώνεται, µπορεί να ξαναρχίσει αλλά µε µεγαλύτερο χρονόσηµα (γιατί;) Αν ΧΣ(Τ) > ΧΣE(Χ) η ανάγνωση είναι επιτρεπτή θέσε το ΧΣΑ(Χ) = max{xσa(t), ΧΣ(ΤΑ)} Οι αλλαγές στο ΧΣΑ(Χ) πρέπει να γράφονται στο δίσκο! Αυτό και το ότι η δοσοληψίες ξαναρχίζουν προκαλεί overhead Βάσεις εδοµένων II 2003-2004 Ευαγγελία Πιτουρά 49 Η δοσοληψία T µε ΧΣ(Τ) εκτελεί µια πράξη εγγραφής W(X) Αν ΧΣΑ(Χ) > ΧΣ(Τ) ή ΧΣΕ(Χ) > ΧΣ(Τ) η Τ ακυρώνεται (γιατί;) Βελτιστοποίηση: τι σηµαίνει ΧΣΕ(Χ) > ΧΣ(Τ) Βάσεις εδοµένων II 2003-2004 Ευαγγελία Πιτουρά 50 Ο κανόνας του Thomas για εγγραφές (Thomas Write Rule) Μπορούµε να αγνοήσουµε µερικές «ξεπερασµένες» ή τυφλές εγγραφές, δε χρειάζεται επανεκκίνηση της Τ (η εγγραφή της Τ ακολουθείται από άλλη εγγραφή, χωρίς ενδιάµεση ανάγνωση) R(A) W(A) Commit Βάσεις εδοµένων II 2003-2004 Ευαγγελία Πιτουρά 51 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 Ευαγγελία Πιτουρά 52 Τεχνικές Ελέγχου Συνδροµικότητας Αισιόδοξες Τεχνικές Τεχνικές 1. Κλειδώµατος (locking) 2. ιάταξης χρονοσηµάτων (timestamps) 3. Πιστοποίησης (validation) Οι τεχνικές κλειδώµατος είναι συντηρητικές (αποφεύγονται οι συγκρούσεις) Μειονεκτήµατα επιβάρυνση (overhead) χειρισµού κλειδώµατος αποφυγή/ανίχνευση αδιεξόδων lock contention για τα δεδοµένα που χρησιµοποιούνται συχνά Αν οι συγκρούσεις είναι σπάνιες, µεγαλύτερη συγχρονικότητα, αν αντί για κλείδωµα, έλεγχος για συγκρούσεις όταν µια δοσοληψία επικυρώνεται (commits) Βάσεις εδοµένων II 2003-2004 Ευαγγελία Πιτουρά 53 Βάσεις εδοµένων II 2003-2004 Ευαγγελία Πιτουρά 54

Αισιόδοξες Τεχνικές Πιστοποίηση Κάθε δοσοληψία έχει τρεις φάσεις ΑΝΑΓΝΩΣΗ: η δοσοληψία διαβάζει από τη βδ, αλλά τροποποιεί προσωπικά αντίγραφα των δεδοµένων ΠΙΣΤΟΠΟΙΗΣΗ: έλεγχος για συγκρούσεις ΕΓΓΡΑΦΗ: γράφει τα τοπικά αντίγραφα στη βδ Έλεγχος συνθηκών που είναι ικανές για να εξασφαλίσουν ότι δεν υπήρχαν συγκρούσεις Κάθε δοσοληψία Τ έχει ένα µοναδικό αριθµό TID (χρονόσηµα) To TID ανατίθεται στο τέλος της φάσης ΑΝΑΓΝΩΣΗΣ (ακριβώς πριν αρχίσει η πιστοποίηση) Με κάθε δοσοληψία ReadSet(T): το σύνολο των δεδοµένων που διάβασε η T WriteSet(T): το σύνολο των δεδοµένων που διάβασε η T Βάσεις εδοµένων II 2003-2004 Ευαγγελία Πιτουρά 55 Βάσεις εδοµένων II 2003-2004 Ευαγγελία Πιτουρά 56 Πιστοποίηση Πιστοποίηση Για όλα τα 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 Ευαγγελία Πιτουρά 57 Βάσεις εδοµένων II 2003-2004 Ευαγγελία Πιτουρά 58 Ti ΕΛΕΓΧΟΣ Περίπτωση 3 Πιστοποίηση Για όλα τα i και j τέτοια ώστε Ti < Tj: - η Τi τελειώνει τη φάση ανάγνωσης πριν αρχίσει η φάση aνάγνωσης της Τj - WriteSet(Ti) ReadSet(Tj) = - WriteSet(Ti) WriteSet(Tj) = Tj Βάσεις εδοµένων II 2003-2004 Ευαγγελία Πιτουρά 59 Πιστοποίηση της 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 Ευαγγελία Πιτουρά 60

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