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



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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Κεφ.11: Ευρετήρια και Κατακερματισμός

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Ειδικά θέματα Αλγορίθμων και Δομών Δεδομένων (ΠΛΕ073) Απαντήσεις 1 ου Σετ Ασκήσεων

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

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

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

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

Διακριτά Μαθηματικά ΙΙ Χρήστος Νομικός Τμήμα Μηχανικών Η/Υ και Πληροφορικής Πανεπιστήμιο Ιωαννίνων 2018 Χρήστος Νομικός ( Τμήμα Μηχανικών Η/Υ Διακριτά

Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον

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

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

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

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

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

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

Εισαγωγή στους Αλγορίθμους

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

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

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

Οι δυναμικές δομές δεδομένων στην ΑΕΠΠ

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

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

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

Advanced Data Indexing

Δυναμικός Κατακερματισμός

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

Αναζήτηση Κατά Πλάτος

ΕΠΛ 211: Θεωρία Υπολογισμού και Πολυπλοκότητας. Διάλεξη 13: Παραλλαγές Μηχανών Turing και Περιγραφή Αλγορίθμων

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

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

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

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

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

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

Εισαγωγή στους Αλγορίθμους Ενότητα 7η

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

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

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

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

Μέγιστη ροή. Κατευθυνόμενο γράφημα. Συνάρτηση χωρητικότητας. αφετηρίακός κόμβος. τερματικός κόμβος. Ροή δικτύου. με τις ακόλουθες ιδιότητες

Αναζήτηση Κατά Πλάτος

Ελαφρύτατες διαδρομές

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

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

Α1. Στον προγραµµατισµό χρησιµοποιούνται δοµές δεδοµένων. 1. Τι είναι δυναµική δοµή δεδοµένων; Μονάδες 3 2. Τι είναι στατική δοµή δεδοµένων;

Δομές Δεδομένων και Αλγόριθμοι. Λουκάς Γεωργιάδης

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

Κεφάλαιο 14. Δομές Ευρετηρίων για Αρχεία. Copyright 2007 Ramez Elmasri and Shamkant B. Navathe Ελληνική Έκδοση,

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

a. b. c. d ΤΕΧΝΟΛΟΓΙΑ ΔΙΚΤΥΩΝ ΕΠΙΚΟΙΝΩΝΙΩΝ

ΤΕΧΝΙΚΕΣ ΤΑΥΤΟΧΡΟΝΙΣΜΟΥ

13/5/2015 ΟΥΡΕΣ ΠΡΟΤΕΡΑΙΟΤΗΤΑΣ. Δομές Δεδομένων. Ουρές Προτεραιότητας

Ερωτήσεις πολλαπλής επιλογής - Κεφάλαιο Κάθε δομή μπορεί να χρησιμοποιηθεί σε οποιοδήποτε πρόβλημα ή εφαρμογή

R-Trees, kd-trees, QuadTrees. Εαρινό Εξάμηνο Τμήμα Μηχανικών Η/Υ και Πληροϕορικής Πολυτεχνική Σχολή, Πανεπιστήμιο Πατρών

Αναζήτηση Κατά Πλάτος

7.7 Πρωτόκολλο ARP. 1. Το πρωτόκολλο ARP μετατρέπει τις διευθύνσεις IP στις αντίστοιχες φυσικές. Σ Λ

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ ΟΝΟΜΑΤΕΠΩΝΥΜΟ:

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

Κεφάλαιο 14. οµές Ευρετηρίων για Αρχεία. ιαφάνεια 14-1

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

Transcript:

Έλεγχος Ταυτοχρονισμού Κεφάλαιο 17 Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke Ελληνική Μετάφραση: Γεώργιος Ευαγγελίδης 1

Συγκρουσιακώς Σειριοποιήσιμα Χρονοπρογράμματα Δυο χρονοπρογράμματα είναι συγκρουσιακώς ισοδύναμα αν: Εμπλέκουν τις ίδιες ενέργειες των ίδιων συναλλαγών Κάθε ζεύγος συγκρουόμενων ενεργειών είναι ταξινομημένο με τον ίδιο τρόπο Το χρονοπρόγραμμα S είναι συγκρουσιακώς σειριοποιήσιμο αν το S είναι συγκρουσιακώς ισοδύναμο με κάποιο σειριακό χρονοπρόγραμμα Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke Ελληνική Μετάφραση: Γεώργιος Ευαγγελίδης 2

Παράδειγμα Ένα χρονοπρόγραμμα που δεν είναι συγκρουσιακώς σειριοποιήσιμο: T1: R(A), W(A), R(B), W(B) T2: R(A), W(A), R(B), W(B) T1 A B Το πρόβλημα φανερώνεται από τον κύκλο στο γράφημα. Το αποτέλεσμα της T1 εξαρτάται από την T2, και αντίστροφα. T2 Γράφημα Προτεραιότητας Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke Ελληνική Μετάφραση: Γεώργιος Ευαγγελίδης 3

Γράφημα Προτεραιότητας Γράφημα Προτεραιότητας: Ένας κόμβος ανά συναλλαγή. Ακμή από την Ti προς της Tj αν η Tj διαβάζει/γράφει ένα αντικείμενο που τελευταία έγραψε η Ti. Θεώρημα: Το χρονοπρόγραμμα είναι συγκρουσιακώς σειριοποιήσιμο αν και μόνο αν το γράφημα προτεραιότητάς του είναι ακυκλικό. Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke Ελληνική Μετάφραση: Γεώργιος Ευαγγελίδης 4

Αυστηρό 2PL Αυστηρό Πρωτόκολλο Κλειδώματος δυο-φάσεων (Αυστηρό 2PL): Κάθε συναλλαγή πρέπει να αποκτά μια S (sharedδιαμοιραζόμενη) κλειδαριά σε ένα αντικείμενο πριν το διαβάσει, και μια X (exclusive-αποκλειστική) κλειδαριά στο αντικείμενο πριν το γράψει. Όλες οι κλειδαριές που διατηρεί μια συναλλαγή πρέπει να αποδεσμεύονται όταν η συναλλαγή ολοκληρώνει Αν μια συναλλαγή διατηρεί μια κλειδαριά X σε ένα αντικείμενο, καμιά άλλη συναλλαγή δεν μπορεί να αποκτήσει κλειδαριά (S ή X) στο αντικείμενο. Το Αυστηρό 2PL επιτρέπει μόνο χρονοπρογράμματα με ακυκλικά γραφήματα προτεραιότητας Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke Ελληνική Μετάφραση: Γεώργιος Ευαγγελίδης 5

Κλείδωμα Δυο-Φάσεων (2PL) Πρωτόκολλο Κλειδώματος Δυο-Φάσεων Κάθε συναλλαγή πρέπει να αποκτά μια S (διαμοιραζόμενη) κλειδαριά στο αντικείμενο πριν το διαβάσει, και μια X (αποκλειστική) κλειδαριά στο αντικείμενο πριν το γράψει. Μια συναλλαγή δεν μπορεί να αιτηθεί απόκτηση επιπλέον κλειδαριών από τη στιγμή που αποδεσμεύσει κάποια κλειδαριά. Αν μια συναλλαγή διατηρεί μια κλειδαριά X σε ένα αντικείμενο, καμιά άλλη συναλλαγή δεν μπορεί να αποκτήσει κλειδαριά (S ή X) στο αντικείμενο. Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke Ελληνική Μετάφραση: Γεώργιος Ευαγγελίδης 6

Διαχείριση Κλειδαριών Τις αιτήσεις απόκτησης και αποδέσμευσης κλειδαριών διαχειρίζεται ο διαχειριστής κλειδαριών Καταχώριση πίνακα κλειδαριών: Πλήθος συναλλαγών που εκείνη τη στιγμή έχουν κλειδαριά Τύπος κλειδαριάς (διαμοιραζόμενη ή αποκλειστική) Δείκτης στην ουρά των αιτήσεων απόκτησης κλειδαριάς Το κλείδωμα και ξεκλείδωμα πρέπει να είναι ατομικές λειτουργίες Αναβάθμιση κλειδαριάς: μια συναλλαγή που διατηρεί μια διαμοιραζόμενη κλειδαριά μπορεί να την αναβαθμίσει σε αποκλειστική κλειδαριά Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke Ελληνική Μετάφραση: Γεώργιος Ευαγγελίδης 7

Αδιέξοδα Αδιέξοδο: Κύκλος συναλλαγών όπου η μια περιμένει την άλλη να αποδεσμεύσει κλειδαριές. Δυο τρόποι αντιμετώπισης αδιεξόδων: Αποφυγή Αδιεξόδου Ανίχνευση Αδιεξόδου Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke Ελληνική Μετάφραση: Γεώργιος Ευαγγελίδης 8

Αποφυγή Αδιεξόδου Ανάθεση προτεραιοτήτων με τη χρήση χρονόσημων (timestamps). Υποθέστε ότι η Ti θέλει μια κλειδαριά που διατηρεί η Tj. Δυο πιθανές στρατηγικές: Wait-Die: Αν η Ti έχει υψηλότερη προτεραιότητα, η Ti περιμένει την Tj, αλλιώς η Ti εγκαταλείπει Wound-wait: Αν η Ti έχει υψηλότερη προτεραιότητα, η Tj εγκαταλείπει, αλλιώς η Ti περιμένει Όταν μια συναλλαγή επανεκκινείται, πρέπει να έχει το αρχικό της χρονόσημο Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke Ελληνική Μετάφραση: Γεώργιος Ευαγγελίδης 9

Ανίχνευση Αδιεξόδου Δημιουργούμε ένα γράφημα αναμονής (waits-for) Οι κόμβοι είναι οι συναλλαγές Υπάρχει μια ακμή από την Ti στην Tj αν η Ti περιμένει την Tj να αποδεσμεύσει μια κλειδαριά Περιοδικά, ελέγχουμε το γράφημα αναμονής για ύπαρξη κύκλων Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke Ελληνική Μετάφραση: Γεώργιος Ευαγγελίδης 10

Ανίχνευση Αδιεξόδου (συνέχεια) Παράδειγμα: T1: S(A), R(A), S(B) T2: X(B),W(B) X(C) T3: S(C), R(C) X(A) T4: X(B) T1 T2 T1 T2 T4 T3 T3 T3 Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke Ελληνική Μετάφραση: Γεώργιος Ευαγγελίδης 11

Κλειδαριές Πολλαπλής-Κλιμάκωσης Δεν είναι εύκολο να αποφασιστεί η κλίμακα στην οποία πρέπει να γίνει το κλείδωμα (εγγραφές vs. σελίδες vs. πίνακες). Δεν θα έπρεπε να αποφασίζουμε εμείς! Υπάρχει ιεραρχία (εμφώλευση) στις δομές αποθήκευσης των δεδομένων: Βάση Δεδομένων περιέχει Πίνακες Σελίδες Εγγραφές Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke Ελληνική Μετάφραση: Γεώργιος Ευαγγελίδης 12

Λύση: νέοι τύποι κλειδώματος, πρωτόκολλο Επιτρέπουμε στις συναλλαγές να κλειδώνουν σε κάθε επίπεδο, αλλά με ένα ειδικό πρωτόκολλο και με τη χρήση νέων κλειδαριών πρόθεσης : Πριν κλειδώσει ένα αντικείμενο, η συναλλαγή πρέπει να αποκτήσει κλειδαριές πρόθεσης σε όλους τους προγόνους του. Το ξεκλείδωμα γίνεται από την ειδική στη γενική κλειδαριά (δηλ., από κάτω προς τα επάνω). Τύπος SIX: Όπως S & IX ταυτόχρονα. -- IS IX S X -- IS IX S X Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke Ελληνική Μετάφραση: Γεώργιος Ευαγγελίδης 13

Πρωτόκολλο Κλειδώματος Πολλαπλής Κλιμάκωσης Κάθε συναλλαγή ξεκινά από τη ρίζα της ιεραρχίας. Για να αποκτήσει κλειδαριά S ή IS σε ένα κόμβο, πρέπει να διατηρεί IS ή IX στο γονικό κόμβο. Τί γίνεται αν διατηρεί SIX στο γονιό; S στο γονιό; Για να αποκτήσει X ή IX ή SIX σε ένα κόμβο, πρέπει να διατηρεί IX ή SIX στο γονικό κόμβο. Πρέπει να αποδεσμεύει τις κλειδαριές από κάτω προς τα επάνω. Το Πρωτόκολλο είναι σωστό επειδή είναι ισοδύναμο με την απευθείας απόκτηση κλειδαριών στα φύλλα της ιεραρχίας. Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke Ελληνική Μετάφραση: Γεώργιος Ευαγγελίδης 14

Παραδείγματα Η T1 σαρώνει τον R, και ενημερώνει μερικές εγγραφές: Η T1 αποκτά κλειδαριά SIX στον R, μετά λαμβάνει διαδοχικές κλειδαριές S σε εγγραφές του R, και περιστασιακά αναβαθμίζει κάποια από αυτές σε X. Η T2 χρησιμοποιεί ένα ευρετήριο για να διαβάσει μόνο τμήμα του R: Η T2 αποκτά κλειδαριά IS στον R, και μετά διαδοχικές κλειδαριές S σε εγγραφές του R. -- IS IX Η T3 διαβάζει ολόκληρο τον R: Η T3 λαμβάνει κλειδαριά S στον R. ή, θα μπορούσε να συμπεριφερθεί όπως η T2 - μπορεί να χρησιμοποιήσει κλιμάκωση κλειδώματος για να αποφασίσει. Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke Ελληνική Μετάφραση: Γεώργιος Ευαγγελίδης 15 -- IS IX S X S X

Δυναμικές Βάσεις Δεδομένων Αν χαλαρώσουμε την υπόθεση ότι η Βάση Δεδομένων είναι μια σταθερή συλλογή αντικειμένων, ακόμα και το Αυστηρό 2PL δεν θα εγγυηθεί τη σειριοποιησιμότητα: Η T1 κλειδώνει όλες τις σελίδες που περιέχουν εγγραφές ναυτών με rating = 1, και βρίσκει τον γηραιότερο ναύτη (έστω, age = 71). Μετά, η T2 εισάγει ένα νέο ναύτη με rating = 1, και age = 96. Επίσης, η T2 διαγράφει τον γηραιότερο ναύτη με rating = 2 (και έστω, age = 80), και ολοκληρώνει. Τώρα, η T1 κλειδώνει όλες τις σελίδες που περιέχουν εγγραφές ναυτών με rating = 2, και βρίσκει τον γηραιότερο (έστω, age = 63). Δεν υπάρχει συνεπής κατάσταση της Βάσης Δεδομένων όπου η T1 να είναι ορθή! Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke Ελληνική Μετάφραση: Γεώργιος Ευαγγελίδης 16

Το Πρόβλημα (του Φαντάσματος) Η T1 εμμέσως υποθέτει ότι έχει κλειδώσει το σύνολο των εγγραφών ναυτών με rating = 1. Η υπόθεση ισχύει μόνο αν δεν εισαχθούν νέες εγγραφές ναυτών όσο εκτελείται η T1! Χρειάζεται κάποιος μηχανισμός για την επιβολή αυτής της υπόθεσης. (Κλείδωμα ευρετηρίου και κλείδωμα κατηγορήματος.) Το παράδειγμα δείχνει ότι η συγκρουσιακή σειριοποιησιμότητα εγγυάται τη σειριοποιησιμότητα μόνο αν το σύνολο των αντικειμένων είναι σταθερό! Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke Ελληνική Μετάφραση: Γεώργιος Ευαγγελίδης 17

Κλείδωμα Ευρετηρίου Index r=1 Αν υπάρχει ένα πυκνό ευρετήριο Εναλλακτικής (2) στο rating, η T1 θα μπορούσε να κλειδώσει τη σελίδα του ευρετηρίου που περιέχει τις καταχωρίσεις δεδομένων με rating = 1. Αν δεν υπάρχουν εγγραφές με rating = 1, η T1 πρέπει να κλειδώσει τη σελίδα ευρετηρίου που θα βρισκόταν μια τέτοια καταχώριση δεδομένων, αν υπήρχε! Data Αν δεν υπάρχει κατάλληλο ευρετήριο, η T1 πρέπει να κλειδώσει όλες τις σελίδες, καθώς και το αρχείο/πίνακα ώστε να αποτραπεί η προσθήκη νέων σελίδων, και να διασφαλιστεί ότι δεν θα εισαχθούν νέες εγγραφές με rating = 1. Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke Ελληνική Μετάφραση: Γεώργιος Ευαγγελίδης 18

Κλείδωμα Κατηγορήματος (Predicate) Χορήγηση κλειδαριών σε όλες τις εγγραφές που ικανοποιούν κάποιο λογικό κατηγόρημα, π.χ., age > 2*salary. Το κλείδωμα ευρετηρίου είναι μια ειδική περίπτωση κλειδώματος κατηγορήματος, όπου ένα ευρετήριο υποστηρίζει την αποδοτική υλοποίηση της κλειδαριάς κατηγορήματος. Ποιο είναι το κατηγόρημα στο παράδειγμα με τους ναύτες; Γενικά, το κλείδωμα κατηγορήματος έχει υψηλό κόστος σε κλειδαριές. Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke Ελληνική Μετάφραση: Γεώργιος Ευαγγελίδης 19

Κλειδώνοντας B+Δέντρα Πώς μπορούμε να κλειδώσουμε αποτελεσματικά έναν κόμβο φύλλο; Παρεμπιπτόντως, μην το συγχέετε με το κλείδωμα πολλαπλής κλιμάκωσης! Μια λύση: Αγνόησε τη δεντρική δομή, και απλά κλείδωνε τις σελίδες κατά τη διάσχιση του δέντρου χρησιμοποιώντας 2PL. Αυτό έχει απαράδεκτη απόδοση! Η ρίζα (και πολλοί κόμβοι των υψηλότερων επιπέδων) γίνονται σημεία συμφόρησης επειδή κάθε πρόσβαση στο δέντρο ξεκινά από τη ρίζα. Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke Ελληνική Μετάφραση: Γεώργιος Ευαγγελίδης 20

Δυο χρήσιμες παρατηρήσεις Τα υψηλότερα επίπεδα του δέντρου απλά κατευθύνουν τις αναζητήσεις προς τα φύλλα. Στις εισαγωγές, ένας κόμβος στη διαδρομή από τη ρίζα προς το τροποποιημένο φύλλο πρέπει να κλειδωθεί (φυσικά με κλειδαριά τύπου X), μόνο αν η διάσπαση μπορεί να διαδοθεί ως αυτόν από το τροποποιημένο φύλλο. (Το ίδιο ισχύει και στην περίπτωση των διαγραφών.) Μπορούμε να εκμεταλλευτούμε τις παρατηρήσεις αυτές για να σχεδιάσουμε αποτελεσματικά πρωτόκολλα κλειδώματος που εγγυώνται τη σειριοποιησιμότητα ακόμα και αν παραβιάζουν το 2PL. Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke Ελληνική Μετάφραση: Γεώργιος Ευαγγελίδης 21

Ένας απλός αλγόριθμος Κλειδώματος Δέντρου Αναζήτηση: Ξεκίνα από τη ρίζα και προχώρα προς τα κάτω διαδοχικά κλείδωνε με S κλειδαριά ένα παιδί και μετά ξεκλείδωνε το γονιό του. Εισαγωγή/Διαγραφή: Ξεκίνα από τη ρίζα και προχώρα προς τα κάτω, αποκτώντας κλειδαριές X. Αφού κλειδωθεί ένα παιδί, έλεγξε αν είναι ασφαλές: Αν ναι, αποδέσμευσε όλες τις κλειδαριές των προγόνων του. Ασφαλής κόμβος: Ένας κόμβος που αν τροποποιηθεί δεν προκαλεί μετάδοση των αλλαγών προς τα πάνω. Εισαγωγές: Ο κόμβος δεν είναι γεμάτος. Διαγραφές: Ο κόμβος δεν είναι ακριβώς 50% γεμάτος. Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke Ελληνική Μετάφραση: Γεώργιος Ευαγγελίδης 22

ΡΙΖΑ Παράδειγμα 20 A Ενέργειες: 1) Αναζήτηση 38* 2) Διαγραφή 38* 3) Εισαγωγή 45* 4) Εισαγωγή 25* 35 B 23 F 38 44 C 20* G H I D 22* 23* 24* 35* 36* 38* 41* 44* E Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke Ελληνική Μετάφραση: Γεώργιος Ευαγγελίδης 23

Ένας καλύτερος αλγόριθμος κλειδώματος δέντρου (Bayer-Schkolnick) Αναζήτηση: Όπως πριν. Εισαγωγή/Διαγραφή: Απόκτησε κλειδαριές όπως στην αναζήτηση, και όταν φτάσεις στο φύλλο πάρε κλειδαριά X. Αν το φύλλο δεν είναι ασφαλές, αποδέσμευσε όλες τις κλειδαριές, και επανεκκίνησε τη συναλλαγή χρησιμοποιώντας το προηγούμενο πρωτόκολλο. Ποντάρει στο ότι μόνο το φύλλο θα τροποποιηθεί. Αλλιώς, χαραμίζονται όλες οι κλειδαριές S του πρώτου περάσματος. Πρακτικά, είναι καλύτερος από τον προηγούμενο αλγόριθμο. Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke Ελληνική Μετάφραση: Γεώργιος Ευαγγελίδης 24

ΡΙΖΑ Παράδειγμα 20 35 A B Ενέργειες: 1) Διαγραφή 38* 2) Εισαγωγή 25* 3) Εισαγωγή 45* 4) Εισαγωγή 45*, και μετά 46* 23 F 38 44 C 20* G H I D 22* 23* 24* 35* 36* 38* 41* 44* E Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke Ελληνική Μετάφραση: Γεώργιος Ευαγγελίδης 25

Υποστήριξη Συναλλαγών στην SQL-92 Κάθε συναλλαγή έχει μια μέθοδο πρόσβασης, ένα μέγεθος διαγνωστικών, και ένα επίπεδο απομόνωσης. Isolation Level Dirty Read Unrepeatable Read Phantom Problem Read Uncommitted Maybe Maybe Maybe Read Committed No Maybe Maybe Repeatable Reads No No Maybe Serializable No No No Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke Ελληνική Μετάφραση: Γεώργιος Ευαγγελίδης 26