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

Σχετικά έγγραφα
ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ - ΤΜΗΥΠ ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ ΙI

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Ακεραιότητα και Ασφάλεια Μέρος 1 Σχεδιασμός Βάσεων Δεδομένων

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

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

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

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

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

Μάθημα 3 ο ΔΙΕΡΓΑΣΙΕΣ (PROCESSES)

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

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

PostgreSQL. Oracle. Εαρινό Εξάμηνο

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

Οργάνωση επεξεργαστή (2 ο μέρος) ΜΥΥ-106 Εισαγωγή στους Η/Υ και στην Πληροφορική

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

Διαχείριση Πολιτισμικών Δεδομένων

Λιβανός Γιώργος Εξάμηνο 2017Β

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

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

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


ΚΕΦΑΛΑΙΟ 9 ΒΑΣΙΚΕΣ ΕΝΤΟΛΕΣ

Προγραμματισμός Η/Υ. Χειρισμός Αρχείων. ΤΕΙ Ιονίων Νήσων Τμήμα Τεχνολόγων Περιβάλλοντος Κατεύθυνση Τεχνολογιών Φυσικού Περιβάλλοντος

Θέμα Α Α3.1 ΤΕΛΟΣ 1ΗΣ ΑΠΟ 9 ΣΕΛΙΔΕΣ

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

Μετακινούμενος Κώδικας (Mobile Code) Κατανεμημένα Συστήματα 1

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

Κεφάλαιο 4 Διεργασίες Β Τάξη ΕΠΑΛ

Λειτουργικά Συστήματα (διαχείριση επεξεργαστή, μνήμης και Ε/Ε)

Τι είναι ένα λειτουργικό σύστημα (ΛΣ); Μια άλλη απεικόνιση. Το Λειτουργικό Σύστημα ως μέρος του υπολογιστή

Ηλεκτρονικοί Υπολογιστές II

Department of Computer Science University of Cyprus EPL646 Advanced Topics in Databases. Lecture 8. Transaction Management Overview

Εαρινό Εξάμηνο

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

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

Εισαγωγή στην Πληροφορική

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

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

Αρχιτεκτονική Συστημάτων Βάσεων Δεδομένων. Κατηγορίες χρηστών ΣΔΒΔ Αρχιτεκτονική ANSI/SPARC Γλώσσες ερωτημάτων Μοντέλα δεδομένων Λειτουργίες ΣΔΒΔ

Πληροφορική ΙΙ Εισαγωγή στις Βάσεις Δεδομένων. Τμήμα Λογιστικής

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

Εικονική Μνήμη (Virtual Μemory)

Προβλήματα ταυτόχρονης εκτέλεσης (για νήματα με κοινή μνήμη)

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

Επισκόπηση Μαθήµατος

Department of Computer Science University of Cyprus EPL646 Advanced Topics in Databases. Lecture 8. Transaction Management Overview

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

Υ- 01 Αρχιτεκτονική Υπολογιστών Back- end: χρονοπρογραμματισμός, εντολές προσπέλασης μνήμης

Μάθημα 3: Αρχιτεκτονική Υπολογιστών

Μαλούτα Θεανώ Σελίδα 1

αντίστοιχο γεγονός. Όταν όντως το κουμπί

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

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

Transcript:

Δοσοληψίες Βάσεις Δεδομένων Διδάσκων: Μαρία Χαλκίδη με βάση slides από A. Silberschatz, H. Korth, S. Sudarshan, Database System Concepts, 5 th edition

Βασικές έννοιες της δοσοληψίας Δοσοληψία είναι μία σειρά από ενέργειες που διαβάζουν ή/και πιθανά ενημερώνουν δεδομένα. Η δοσοληψία πρέπει να βλέπει μία συνεπή ΒΔ. Στη διάρκεια της εκτέλεσης μίας δοσοληψίας η ΒΔ μπορεί να είναι ασυνεπής. Όταν ολοκληρωθεί η εκτέλεση της δοσοληψίας, η ΒΔ πρέπει να είναι συνεπής. Δύο κύρια θέματα προς μελέτη: Διάφοροι τύποι αποτυχίας, όπως αποτυχία hardware και καταστροφή συστήματος Ταυτόχρονες εκτελέσεις πολλαπλών δοσοληψιών Βάσεις Δεδομένων ΙΙ, Παν. Πειραιά 2

Δοσοληψίες & Ταυτοχρονισμός Ανάληψη από το λογαριασμό ΧΧΧ 500$! Κατάθεση στο λογαριασμό ΧΧΧ 200$ Ποιό είναι το υπόλοιπο του λογαριασμού ΧΧΧ DB Σχήμα από διαφάνειες μαθήματος Π. Βασιλειάδης, Τμ. Πληροφορικής, Παν.Ιωαννίνων Βάσεις Δεδομένων ΙΙ, Παν. Πειραιά 3

Δοσοληψίες & Ταυτοχρονισμός Κράτησε για τον κ. Χ την θέση 13Α για LA! Κράτησε για τον κ. Y την θέση 13Α για LA! DB Πόσοι ταξιδεύουν για LA? Σχήμα από διαφάνειες μαθήματος Π. Βασιλειάδης, Τμ. Πληροφορικής, Παν.Ιωαννίνων Βάσεις Δεδομένων ΙΙ, Παν. Πειραιά 4

ACID Ιδιότητες Το σύστημα ΒΔ πρέπει να επιβεβαιώνει: Ατομικότητα (Atomicity). Είτε όλες οι λειτουργίες των δοσοληψιών πρέπει να αναπαριστώνται κατάλληλα στη ΒΔ είτε καμία. Συνέπεια(Consistency). Η εκτέλεση μίας δοσοληψίας μεμονωμένα διατηρεί τη συνέπεια της ΒΔ. Απομόνωση (Isolation). πολλαπλές δοσοληψίες μπορούν να εκτελούνται ταυτόχρονα, κάθε δοσοληψία δεν θα πρέπει να γνωρίζει τις άλλες δοσοληψίες που εκτελούνται ταυτόχρονα. Τα ενδιάμεσα αποτελέσματα δοσοληψιών πρέπει να κρύβονται από τις άλλες ταυτόχρονα εκτελούμενες δοσοληψίες. Για κάθε ζεύγος δοσοληψιών T i και T j, φαίνεται στο T i ότι είτε T j, τελείωσε την εκτέλεση πριν T i ξεκινήσει, είτε ότι το T j άρχισε την εκτέλεση μετά την ολοκλήρωση της T i Διάρκεια (Durability). Μετά την επιτυχή ολοκλήρωση μίας δοσοληψίας, οι αλλαγές που γίνονται τη ΒΔ παραμένουν, ακόμα και εάν υπάρχουν αποτυχίες στο σύστημα. Βάσεις Δεδομένων ΙΙ, Παν. Πειραιά 5

Παράδειγμα (1) Δοσοληψία για τη μεταφορά του ποσού των $50 από το λογαριασμό A στο λογαριασμό B: 1. read(a) 2. A := A 50 3. write(a) 4. read(b) 5. B := B + 50 6. write(b) Απαίτηση συνέπειας το άθροισμα του A και B παραμένει το ίδιο με την εκτέλεση της δοσοληψίας. Απαίτηση ατομικότητας Αποτυχία δοσοληψίας μεταξύ του step 3 και step 6, το σύστημα πρέπει να επιβεβαιώσει ότι οι ενημερώσεις του δεν αντανακλώνται στη ΒΔ αλλιώς θα οδηγήσει σε ασυνέπεια. Βάσεις Δεδομένων ΙΙ, Παν. Πειραιά 6

Παράδειγμα (2) Απαίτηση διάρκειας μόλις ο χρήστης ενημερωθεί ότι η δοσοληψία έχει ολοκληρωθεί (δηλ., η μεταφορά των $50 έχει λάβει χώρα), οι ενημερώσεις τις ΒΔ πρέπει να παραμείνουν παρά την ύπαρξη κάποιων αποτυχιών. Απαίτηση απομόνωσης 1. read(a) 2. A := A 50 3. write(a) 4. read(b) 5. B := B + 50 6. write(b) εάν ανάμεσα στα steps 3 and 6, μία άλλη δοσοληψία επιτραπεί να προσπελάσει την μερικώς ενημερωμένη ΒΔ, θα δει μία ασυνεπή ΒΔ (το A + B θα είναι μικρότερο από αυτό που πρέπει να είναι). Μπορούμε να επιβεβαιώσουμε τη συνέπεια της ΒΔ τρέχοντας τις δοσοληψίες σειριακά. Ωστόσο εκτελώντας πολλαπλές δοσοληψίες ταυτόχρονα έχει σημαντικά πλεονεκτήματα. Βάσεις Δεδομένων ΙΙ, Παν. Πειραιά 7

Κατάσταση δοσοληψίας (1) Ενεργή(Active), αρχική κατάσταση. Η δοσοληψία παραμένει σ αυτή τη κατάσταση όσο εκτελείται Μερικώς ολοκληρωμένη (Partially committed), μετά την εκτέλεση της τελευταίας εντολής (final statement). Αποτυχημένη(Failed), μετά την ανακάλυψη ότι η κανονική εκτέλεση δεν μπορεί να προχωρήσει. Aborted, μετά από την ακύρωση μίας δοσοληψίας. Η ΒΔ αποκαθίσταται στην κατάσταση της πριν την αρχή της δοσοληψίας. Δύο επιλογές μετά τη διακοπή δοσοληψίας: Επανεκκίνηση της δοσοληψίας μόνο εάν δεν υπάρχει κάποιο εσωτερικό λογικό λάθος Αναγκαστικός τερματισμός της δοσοληψίας(kill the transaction) Ολοκληρωμένη (Committed), μετά την επιτυχή εκτέλεση της δοσοληψίας. Βάσεις Δεδομένων ΙΙ, Παν. Πειραιά 8

Κατάσταση δοσοληψίας (2) Βάσεις Δεδομένων ΙΙ, Παν. Πειραιά 9

Υλοποίηση Ατομικότητας και Διάρκειας Το στοιχείο της διαχείρισης αποκατάστασης ενός συστήματος ΒΔ υλοποιεί την υποστήριξη ατομικότητας και διάρκειας. Το σκιασμένο σχήμα ΒΔ (shadow-database scheme): Υποθέτουμε ότι μόνο μία δοσοληψία είναι ενεργή κάθε φορά. Ένας δείκτης ονομαζόμενος db_pointer δείχνει πάντα στο τρέχον αντίγραφο της ΒΔ. Όλες οι ενημερώσεις γίνονται πάνω στο shadow copy της ΒΔ. Ο db_pointer δείχνει στο ενημερωμένο shadow copy μόνο αφού η δοσοληψία φτάσει στη φάση της ολοκληρωμένης δοσοληψίας και όλες οι ενημερωμένες σελίδες έχουν γραφεί στο δίσκο. Στην περίπτωση που αποτύχει μία δοσοληψία, το παλιό αντίγραφο που δείχνεται από το db_pointer μπορεί να χρησιμοποιηθεί και το shadow copy μπορεί να διαγραφεί. Βάσεις Δεδομένων ΙΙ, Παν. Πειραιά 10

Υλοποίηση Ατομικότητας και Διάρκειας (2) Shadow-database scheme: Υποθέτουμε ότι οι δίσκοι δεν αποτυγχάνουν Χρήσιμο για κειμενογράφους (text editors), αλλά ιδιαίτερα μη αποτελεσματικό για μεγάλες ΒΔ: εκτελώντας μία απλή δοσοληψία απαιτεί αντιγραφή ολόκληρης της ΒΔ. Βάσεις Δεδομένων ΙΙ, Παν. Πειραιά 11

Ταυτόχρονες εκτελέσεις Πολλαπλές δοσοληψίες επιτρέπεται να τρέχουν ταυτόχρονα στο σύστημα. Πλεονεκτήματα: αυξημένη χρήση του επεξεργαστή και του δίσκου,οδηγεί σε καλύτερο transaction throughput: μία συναλλαγή μπορεί να χρησιμοποιεί τη CPU ενώ μία άλλη διαβάζει από ή γράφει στο δίσκο Μείωση μέσου χρόνο απόκρισης για δοσοληψίες: μικρές δοσοληψίες πρέπει να περιμένουν πίσω από μεγάλες δοσοληψίες. Σχήματα ταυτόχρονου ελέγχου μηχανισμοί για να επιτυγχάνουμε απομόνωση ελέγχουμε την αλληλεπίδραση ανάμεσα στις ταυτόχρονες δοσοληψίες προκειμένου να τις αποτρέψουμε να καταστρέψουν την συνέπεια της ΒΔ Βάσεις Δεδομένων ΙΙ, Παν. Πειραιά 12

Χρονοπρογράμματα (Schedules) Χρονοπρογράμματα ακολουθίες που υποδεικνύουν τη χρονολογική σειρά με την οποία οι εντολές από τις ταυτόχρονες δοσοληψίες εκτελούνται Ένα χρονοπρόγραμμα για ένα σύνολο δοσοληψιών πρέπει να αποτελείται από όλες τις εντολές των δοσοληψιών διατηρούμε τη σειρά με την οποία εμφανίζονται οι εντολές σε κάθε μεμονωμένη δοσοληψία. Βάσεις Δεδομένων ΙΙ, Παν. Πειραιά 13

Παράδειγμα χρονοπρογραμμάτων (1) T 1 transfer $50 from A to B, and T 2 transfer 10% of the balance from A to B. Α 1000$ Β 2000$ Schedule 1- Σειριακό χρονοπρόγραμμα: T1 ακολουθείται από το T2. Temp=950 Α 855 Β 2145 Βάσεις Δεδομένων ΙΙ, Παν. Πειραιά 14

Παράδειγμα χρονοπρογραμμάτων (2) Schedule 1 Schedule 3 Schedule 3: Μη σειριακό. Ισοδύναμο με το Schedule 1 Στο Schedule 1 και 3, το A + B διατηρείται Βάσεις Δεδομένων ΙΙ, Παν. Πειραιά 15

Παράδειγμα χρονοπρογραμμάτων (3) Schedule 4 : Ταυτόχρονο χρονοπρόγραμμα Δεν διατηρεί την τιμή του A+Β Schedule 1 Schedule 4 A=950 A=1000 A=950 B=2050 B=2100 Βάσεις Δεδομένων ΙΙ, Παν. Πειραιά 16

Σειριακή Διάταξη (Serializability) Βασική υπόθεση: Κάθε δοσοληψία διατηρεί τη συνέπεια της ΒΔ. Η σειριακή εκτέλεση ενός συνόλου δοσοληψιών διατηρεί τη συνέπεια της ΒΔ. Ένα (ταυτόχρονο) χρονοπρόγραμμα μπορεί να γίνει σειριακό εάν είναι ισοδύναμο με ένα σειριακό χρονοπρόγραμμα. Διαφορετικές μορφές ισοδυναμίας χρονοπρογραμμάτος οδηγούν στις έννοιες της: 1. Σειριακής διάταξης με σύγκρουση(διένεξη) - conflict serializability 2. Σειριακή διάταξη με όψη(προβολή) - view serializability Τα χρονοπρογράμματα που θεωρούμε αποτελούνται μόνο από εντολές read και write. Αγνοούμε λειτουργίες άλλες εκτός των εντολών read and write και υποθέτουμε ότι δοσοληψίες μπορούν να εκτελούν τυχαίους υπολογισμούς πάνω στα δεδομένα σε τοπικούς buffers μεταξύ των αναγνώσεων και εγγραφών. Βάσεις Δεδομένων ΙΙ, Παν. Πειραιά 17

Σειριακή διάταξη με σύγκρουση (1) Εντολές l i και l j των δοσοληψιών T i και T j αντίστοιχα, συγκρούονται(conflict) εάν και μόνο εάν υπάρχουν κάποια αντικείμενα Q που προσπελαύνονται και από την l i και από την l j, και τουλάχιστον μία αυτές τις εντολές γράφει το Q. 1. l i = read(q), l j = read(q). l i and l j don t conflict. 2. l i = read(q), l j = write(q). They conflict. 3. l i = write(q), l j = read(q). They conflict 4. l i = write(q), l j = write(q). They conflict Μία σύγκρουση (conflict) ανάμεσα σε l i και l j ενδυναμώνει μια λογική χρονική σειρά ανάμεσα τους. Εάν l i και l j εκτελούνται ακολουθιακά στο χρονοπρόγραμμα και δεν υπάρχουν συγκρούσεις, τα αποτελέσματα τους παραμένουν τα ίδια ακόμα και εάν έχουν ανταλλαχθεί στο χρονοπρόγραμμα. Βάσεις Δεδομένων ΙΙ, Παν. Πειραιά 18

Σειριακή διάταξη με σύγκρουση (2) Εάν ένα χρονοπρόγραμμα S μπορεί να μετασχηματιστεί σε ένα χρονοπρόγραμμα S από μία σειρά εναλλαγών (swaps) μη συγκρουόμενων εντολών, λέμε ότι το S και S είναι ισοδύναμα ως προ τις συγκρούσεις (conflict equivalent). Λέμε ότι ένα χρονοπρόγραμμα S είναι σειριοποιήσιμο ως προς τις συγκρούσεις(conflict serializable) εάν είναι ισοδύναμο ως προ τις συγκρούσεις με ένα σειριακό χρονοπρόγραμμα Παράδειγμα χρονοπρογράμματος που δεν είναι σε σειριακή διάταξη με σύγκρουση : T 3 T 4 read(q) write(q) write(q) Δεν μπορούμε να αλλάξουμε τις εντολές στο παραπάνω χρονοπρόγραμμα για να πάρουμε το σειριακό χρονοπρόγραμμα < T 3, T 4 >, ή < T 4, T 3 >. Βάσεις Δεδομένων ΙΙ, Παν. Πειραιά 19

Παράδειγμα: Σειριακή διάταξη με σύγκρουση Schedule 3 μπορεί να μετασχηματιστεί στο Schedule 6, σειριακό χρονοπρόγραμμα όπου T 2 ακολουθεί T 1, με μία σειρά εναλλαγών μη συγκρουόμενων εντολών. Schedule 3 μπορεί να μπει σε σειριακή διάταξη με σύγκρουση. Schedule 3 Schedule 5 Schedule 6 Βάσεις Δεδομένων ΙΙ, Παν. Πειραιά 20

Ερώτηση T 1 read(a); write(a); read(b); write(b). T 2 read(b); write(b); read(a); write(a). Είναι σειριοποιήσιμο ως προς τις συγκρούσεις? Βάσεις Δεδομένων ΙΙ, Παν. Πειραιά 21

Προβλήματα με την εκτελεση δοσοληψιών Βάσεις Δεδομένων ΙΙ, Παν. Πειραιά 22

Σειριακή διάταξη όψης Έστω S και S είναι δύο χρονοπρογράμματα με το ίδιο σύνολο δοσοληψιών. S και S είναι ισοδύναμα ως προς την όψη (view equivalent) εάν ισχύουν οι ακόλουθες 3 συνθήκες : 1. Για κάθε αντικείμενο Q, εάν η δοσοληψία T i διαβάζει την αρχική τιμή του Q στο χρονοπρόγραμμα S, τότε η δοσοληψία T i πρέπει στο χρονοπρόγραμμα S,να διαβάζει επίσης την αρχική τιμή του Q. 2. Για κάθε αντικείμενο Q εάν η δοσοληψία T i εκτελεί read(q) στο χρονοπρόγραμμα S, και αυτή η τιμή παράγεται από μία λειτουργία write(q) στη δοσοληψία T j, τότε η δοσοληψία T i πρέπει στο S να διαβάζει επίσης τη τιμή του Q που παράγεται από τη δοσοληψίαt j. 3. Για κάθε αντικείμενο Q, η δοσοληψία που εκτελεί το τελικό write(q) στο S πρέπει να εκτελεί το τελικο write(q) στο S. Η ισοδυναμία ως προ την όψη βασίζεται επίσης στις εντολές read και write. Βάσεις Δεδομένων ΙΙ, Παν. Πειραιά 23

Σειριακή διάταξη όψης (2) Ένα χρονοπρόγραμμα S είναι σε σειριακή διάταξη ως προς την όψη (view serializable) εάν είναι ισοδύναμο ως προς την όψη με σειριακό χρονοπρόγραμμα. Κάθε χρονοπρόγραμμα που είναι σε σειριακή διάταξη ως προς τη σύγκρουση είναι επίσης σε σειριακή διάταξη ως προς την όψη. Βάσεις Δεδομένων ΙΙ, Παν. Πειραιά 24

Σειριακή διάταξη όψης (3) Schedule 9 ισοδύναμο ως προς την όψη με το σειριακό χρονοπρόγραμμα <Τ3, Τ4, Τ6> Κάθε ζεύγος συνεχόμενων εγγραφών έρχονται σε σύγκρουση Δεν μπορεί να μπει σε σειριακή διάταξη ως προς τη σύγκρουση Εκτέλεση εντολών write(q) χωρίς να έχουν εκτελέσει Read(Q) Tυφλή εγγραφή Τυφλές εγγραφές εμφανίζονται σε κάθε χρονοπρόγραμμα μπορεί να μπει σε σειριακή διάταξη ως προς την όψη αλλά δεν μπορεί να μπει σε σειριακή διάταξη ως προς τη σύγκρουση Βάσεις Δεδομένων ΙΙ, Παν. Πειραιά 25

Άλλες έννοιες της σειριακής διάταξης Schedule 8: Παράγει τα ίδια αποτελέσματα με το σειριακό χρονοπρόγραμμα < T 1, T 5 >. Είναι ισοδύναμο ως προς τη σύγκρουση ή την προβολή ως προς αυτό? T1: read(b) διαβάζει το Αποτέλεσμα της T5:write(B) Δε συμβαίνει το ίδιο στο < T1, T5 > Ο ορισμός μίας τέτοιας ισοδυναμίας απαιτεί ανάλυση λειτουργιών πέρα από read και write Βάσεις Δεδομένων ΙΙ, Παν. Πειραιά 26

Αποκατάσταση (Recoverability) Ανάγκη να αντιμετωπίσουμε την επίδραση των αποτυχιών συναλλαγής σε ταυτόχρονα εκτελέσιμες συναλλαγές. Χρονοπρόγραμμα αποκαταστάσιμο (Recoverable schedule)- εάν η συναλλαγή Τ j διαβάζει αντικείμενα που προηγουμένως έχουν γραφτεί από μία συναλλαγή T i, η λειτουργία της ολοκλήρωσης εκτέλεσης (commit) της T i εμφανίζεται πριν την λειτουργία ολοκλήρωσης εκτέλεσης (commit) της T j. Το ακόλουθο χρονοπρόγραμμα (Schedule 11) δεν είναι αποκαταστάσιμο εάν η T 9 κάνει commit αμέσως μετά το read Εάν T 8 διακοπεί, T 9 θα έχει διαβάσει (και πιθανά εμφανίσει στο χρήστη) μία ασυνεπή κατάσταση της ΒΔ. Συνεπώς η ΒΔ πρέπει να επιβεβαιώνει ότι τα χρονοπρογράμματα μπορούν να ανανήψουν. Βάσεις Δεδομένων ΙΙ, Παν. Πειραιά 27

Παράδειγμα S: R1(X)R2(X)W1(X)R1(Y)W2(X)C2W1(Y)C1 S: R1(X)W1(X) R2(X) R1(Y)W2(X)C2Α1 Βάσεις Δεδομένων ΙΙ, Παν. Πειραιά 28

Αποκατάσταση (2) Διαδοχικές αναιρέσεις (Cascading rollback) η αποτυχία μίας απλής δοσοληψίας οδηγεί σε μία σειρά από αναιρέσεις δοσοληψιών. Υποθέτουμε το ακόλουθο χρονοπρόγραμμα όπου καμία από από τις συναλλαγές δεν έχει κάνει ακόμα commit (το χρονοπρόγραμμα μπορεί να αποκατασταθεί) Εάν T 10 αποτύχει, T 11 και T 12 πρέπει επίσης να αναιρεθούν. Μπορεί να οδηγήσει σε ένα σημαντικό σύνολο δουλειάς που δεν θα εκτελεστεί Βάσεις Δεδομένων, Παν. Πειραιά 29

Αποκατάσταση (3) Χρονοπρογράμματα χωρίς διαδοχικές αναιρέσεις (Cascadeless schedules) δεν μπορούν να συμβούν διαδοχικές αναιρέσεις Για κάθε ζεύγος δοσοληψιών T i και T j έτσι ώστε T j διαβάζει ένα αντικείμενο που γράφτηκε προηγουμένως από το T i, η λειτουργία commit του T i εμφανίζεται πριν την λειτουργία read του T j. Κάθε χρονοπρόγραμμα χωρίς διαδοχικές αναιρέσεις μπορεί επίσης να ανανήψει Είναι επιθυμητό να περιορίσουμε τα χρονοπρογράμματα σε αυτά που είναι χωρίς διαδοχικές αναιρέσεις Βάσεις Δεδομένων ΙΙ, Παν. Πειραιά 30

Υλοποίηση απομόνωσης Τα χρονοπρογράμματα πρέπει να μπορεί να είναι σειριακά ως προς τη σύγκρουση ή την όψη, για χάρη της συνέπειας της ΒΔ και κατά προτίμηση χωρίς διαδοχικές αναιρέσεις. Μία πολιτική στην οποία μόνο μία δοσοληψία μπορεί να εκτελεστεί τη φορά παράγει σειριακά χρονοπρογράμματα, αλλά παρέχει μικρό βαθμό συγχρονικότητας. Σχήματα ταυτόχρονου ελέγχου- tradeoff ανάμεσα στο σύνολο της ταυτοχρονικότητας που επιτρέπουν και το σύνολο του παραπάνω φόρτου που προκαλούν. Κάποια σχήματα επιτρέπουν να παράγονται μόνο χρονοπρογράμματα που μπορούν να είναι σειριακά ως προς τη σύγκρουση, ενώ άλλα επιτρέπουν χρονοπρογράμματα που μπορεί να είναι σειρικά ως προς την όψη και δεν είναι σειριακά ως προς τη σύγκρουση. Βάσεις Δεδομένων ΙΙ, Παν. Πειραιά 31

Ορισμός δοσοληψιών στην SQL Μία γλώσσα χειρισμού δεδομένων πρέπει να περιλαμβάνει μία δομή για να καθορίσει το σύνολο των ενεργειών που συνιστούν μία δοσοληψία. Στην SQL, μία δοσοληψία αρχίζει έμμεσα. Μία δοσοληψία στην SQL τελειώνει με τις ακόλουθες εντολές: Commit work τελειώνει μία τρέχουσα δοσοληψία και αρχίζει μία νέα. Rollback work διακόπτει μία τρέχουσα δοσοληψία. Βάσεις Δεδομένων ΙΙ, Παν. Πειραιά 32

Έλεγχος για σειριακή διάταξη Υποθέτουμε κάποιο χρονοπρόγραμμα από ένα σύνολο δοσοληψιών T 1, T 2,..., T n Γράφημα προτεραιότητας (Precedence graph) ένα κατευθυνόμενο γράφημα όπου οι κόμβοι είναι οι δοσοληψίες Σχεδιάζουμε μία ακμή από T i στο T j ένα υπάρχει σύγκρουση σε δύο δοσοληψίες, κα T i προσπελαύνει το αντικείμενο πάνω στο οποίο συμβαίνει η σύγκρουση νωρίτερα. Τ i εκτελεί τη write(q) πριν η Τ j εκτελεί τη read(q) Τ i εκτελεί τη read(q) πριν η Τ j εκτελεί τη write(q) Τ i εκτελεί τη write(q) πριν η Τ j εκτελεί τη write(q) Μπορούμε να γράψουμε το όνομα του αντικειμένου που επεξεργαζόμαστε πάνω στην ακμή. ΠΑΡΑΔΕΙΓΜΑ 1 x y Βάσεις Δεδομένων ΙΙ, Παν. Πειραιά 33

Παραδείγματα(1): Γράφημα προτεραιότητας (a) Schedule 1 (b) Schedule 2 Βάσεις Δεδομένων ΙΙ, Παν. Πειραιά 34

Παραδείγματα(2): Γράφημα προτεραιότητας Τ1 read(a) πριν Τ2 write(a) T2 read(b) πριν Τ1 write(b) Περιέχει κύκλο που υποδεικνύει ότι αυτό το χρονοπρόγραμμα δεν μπορεί να μπει σε σειριακή διάταξη Βάσεις Δεδομένων ΙΙ, Παν. Πειραιά 35