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

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

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

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

Locking to ensure serializability

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Fractional Colorings and Zykov Products of graphs

EE512: Error Control Coding

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

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

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

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

2 Composition. Invertible Mappings

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

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

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

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

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

Phys460.nb Solution for the t-dependent Schrodinger s equation How did we find the solution? (not required)

Every set of first-order formulas is equivalent to an independent set

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

Finite Field Problems: Solutions

Transaction Processing (Διαχείριση Δοσοληψιών)

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

ΚΥΠΡΙΑΚΗ ΕΤΑΙΡΕΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ CYPRUS COMPUTER SOCIETY ΠΑΓΚΥΠΡΙΟΣ ΜΑΘΗΤΙΚΟΣ ΔΙΑΓΩΝΙΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 24/3/2007

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

The Simply Typed Lambda Calculus

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

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

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

ΚΥΠΡΙΑΚΗ ΕΤΑΙΡΕΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ CYPRUS COMPUTER SOCIETY ΠΑΓΚΥΠΡΙΟΣ ΜΑΘΗΤΙΚΟΣ ΔΙΑΓΩΝΙΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 19/5/2007

The challenges of non-stable predicates

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

Other Test Constructions: Likelihood Ratio & Bayes Tests

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

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

4.6 Autoregressive Moving Average Model ARMA(1,1)

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

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

Physical DB Design. B-Trees Index files can become quite large for large main files Indices on index files are possible.

Μηχανική Μάθηση Hypothesis Testing

Ordinal Arithmetic: Addition, Multiplication, Exponentiation and Limit

Areas and Lengths in Polar Coordinates

ΚΥΠΡΙΑΚΗ ΕΤΑΙΡΕΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ CYPRUS COMPUTER SOCIETY ΠΑΓΚΥΠΡΙΟΣ ΜΑΘΗΤΙΚΟΣ ΔΙΑΓΩΝΙΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 6/5/2006

Ευρετήρια. Βάσεις Δεδομένων. Διδάσκων: Μαρία Χαλκίδη

Areas and Lengths in Polar Coordinates

ω ω ω ω ω ω+2 ω ω+2 + ω ω ω ω+2 + ω ω+1 ω ω+2 2 ω ω ω ω ω ω ω ω+1 ω ω2 ω ω2 + ω ω ω2 + ω ω ω ω2 + ω ω+1 ω ω2 + ω ω+1 + ω ω ω ω2 + ω

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

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

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

Εργαστήριο Ανάπτυξης Εφαρμογών Βάσεων Δεδομένων. Εξάμηνο 7 ο

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

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

ST5224: Advanced Statistical Theory II

Lecture 2: Dirac notation and a review of linear algebra Read Sakurai chapter 1, Baym chatper 3

Chapter 6: Systems of Linear Differential. be continuous functions on the interval

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

HOMEWORK 4 = G. In order to plot the stress versus the stretch we define a normalized stretch:

Lecture 2. Soundness and completeness of propositional logic

3.4 SUM AND DIFFERENCE FORMULAS. NOTE: cos(α+β) cos α + cos β cos(α-β) cos α -cos β

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

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

Nowhere-zero flows Let be a digraph, Abelian group. A Γ-circulation in is a mapping : such that, where, and : tail in X, head in

C.S. 430 Assignment 6, Sample Solutions

Reminders: linear functions

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

Στο εστιατόριο «ToDokimasesPrinToBgaleisStonKosmo?» έξω από τους δακτυλίους του Κρόνου, οι παραγγελίες γίνονται ηλεκτρονικά.

Concrete Mathematics Exercises from 30 September 2016

TMA4115 Matematikk 3

Homework 3 Solutions

Overview. Transition Semantics. Configurations and the transition relation. Executions and computation

Econ 2110: Fall 2008 Suggested Solutions to Problem Set 8 questions or comments to Dan Fetter 1

2. THEORY OF EQUATIONS. PREVIOUS EAMCET Bits.

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

Section 8.3 Trigonometric Equations

Statistical Inference I Locally most powerful tests

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

Math 6 SL Probability Distributions Practice Test Mark Scheme

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

PARTIAL NOTES for 6.1 Trigonometric Identities

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

( y) Partial Differential Equations

Advanced Subsidiary Unit 1: Understanding and Written Response

Section 9.2 Polar Equations and Graphs

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

Partial Differential Equations in Biology The boundary element method. March 26, 2013

Matrices and Determinants

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

Transcript:

Πλειάδες φαντάσματα (phantoms) Τα phantoms είναι πλειάδες που θα έπρεπε να έχουν φραγή αλλά δεν έχουν, γιατί δεν υπήρχαν όταν αποκτήθηκε το lock Παράδειγμα: σχέση R (E#, name, ) constraint: E# is key χρήση κλειδώματος στις πλειάδες R E# Name. o1 55 Smith o2 75 Jones 132

Πλειάδες φαντάσματα (phantoms) T1: Insert <95,White, > into R T2: Insert <95,Black, > into R Για την εισαγωγή κάθε μιας από τις παραπάνω δεν υπάρχει lock στις πλειάδες και ο περιορισμός στο κλειδί δεν παραβιάζεται αν οι Τ1 και Τ2 γίνονται παράλληλα. Λύση: Για να αποφύγουμε την εμφάνιση πλειάδωνφαντασμάτων, πρέπει να θεωρήσουμε την εισαγωγή/διαγραφή μιας πλειάδας σαν πράξη εγγραφής επί της σχέσης (δηλαδή να λάβουμε αποκλειστικό φραγμό στην σχέση συνολικά και όχι μεμονωμένα στις πλειάδες). 133

Δενδρικό Πρωτόκολλο (Tree Protocol) Δενδρικά δεδομένα που όμως οι κόμβοι δεν έχουν ιεραρχική δομή βασισμένη στον αποκλεισμό. Ξένα μεταξύ τους κομμάτια που συνδέονται μέσω του μητρικού κόμβου π.χ. B-tree Διαφορετικές δυνατότητες για πολιτικές φραγμών 2PL δεν είναι καθόλου ευέλικτο σε αυτές τις περιπτώσεις: θέτει φραγμούς στο ριζικό κόμβο. Αν χρησιμοποιήσουμε ένα συνηθισμένο σύνολο φραγμών (S, X, U κλπ) σε επίπεδο κόμβου, η σύγχρονη χρήση του B- tree είναι σχεδόν αδύνατη: κάθε δοσοληψία ξεκινά από την ρίζα του δέντρου και κλειδώνονται όλοι οι κόμβοι στην διαδρομή (μαζί με την ρίζα). 134

Δενδρικό Πρωτόκολλο (Tree Protocol) Επιπλέον προβλήματα με το 2PL εισαγωγές/διαγραφές μπορεί να δημιουργήσουν επανεγγραφές στον ριζικό κόμβο. Exclusive ή update locks πρέπει να χρησιμοποιηθούν στην ρίζα οι πράξεις μόνο ανάγνωσης μπορούν να εκτελεστούν παράλληλα Αν άρουμε τον φραγμό στην ρίζα νωρίτερα, τότε θα είχαμε περισσότερες δυνατότητες αλλά θα παραβίαζε το 2PL και την σειριομορφία Χρειαζόμαστε εξειδικευμένα πρωτόκολλα που μπορεί να παραβιάζουν το 2PL. Πρέπει να εκμεταλλευτούμε την σειρά προσπέλασης στους κόμβους για να διασφαλίσουμε σειριομορφία. 135

Κανόνες προσπέλασης δενδροειδώς δομημένων δεδομένων Το Δενδρικό πρωτόκολλο (Tree Protocol) Υποθέσεις: έχουμε μόνο ένα είδους φραγμού, οι δοσοληψίες είναι συνεπείς, τα χρονοπρογράμματα είναι legal Κανόνες: 1. Ο πρώτος φραγμός κάθε δοσοληψίας μπορεί να αφορά οποιοδήποτε κόμβο του δέντρου. 2. Επόμενοι φραγμοί μπορούν να αποκτηθούν μόνο αν η δοσοληψία κατέχει εκείνη την στιγμή έναν φραγμό επί του μητρικού κόμβου. 3. Φραγμοί επί των κόμβων μπορούν να αρθούν οποιαδήποτε στιγμή. 4. Αν μια δοσοληψία άρει έναν φραγμό επί ενός κόμβου, δεν μπορεί να θέσει εκ νέου φραγμό σε αυτόν, ακόμα και αν εξακολουθεί να κατέχει φραγμό επί του μητρικού κόμβου. 136

Δενδρικό Πρωτόκολλο (Tree Protocol) Παράδειγμα 137

Λειτουργεί σωστά το δενδρικό πρωτόκολλο? Ορίζει εμμέσως μια σειριακή διάταξη εκτέλεσης των δοσοληψιών: αν στο χρονοδιάγραμμα S, οι Ti και Tj φράζουν ένα κόμβο από κοινού και η Ti τον φράζει πρώτη, τότε η Ti προηγείται της Tj Μπορούμε να φτιάξουμε ένα γράφο προήγησης για την αναπαράσταση αυτών σχέσεων προήγησης στο χρονοπρόγραμμα Αν δεν έχει κύκλους ο γράφος, τότε κάθε τοπολογική διάταξη δοσοληψιών αποτελεί ισοδύναμο σειριακό χρονοδιάγραμμα Ισχυρισμός: χρονοδιαγράμματα που ακολουθούν το δενδρικό πρωτόκολλο πάντα παράγουν γράφους χωρίς κύκλους αν δύο δοσοληψίες φράσσουν πολλά στοιχεία από κοινού, τότε όλα φράσσονται με την ίδια σειρά αν η Ti φράσσει την ρίζα πριν την Tj, τότε η Ti φράσσει κάθε κόμβο που είναι κοινός μεταξύ των Ti και Tj πριν την Tj. 138

Εξασφάλιση σειριομορφίας (Ensuring Serializability) Μπορούμε να αποδείξουμε ότι, για κάθε χρονοδιάγραμμα S που ακολουθεί το δενδρικό πρωτόκολλο, υπάρχει κάποια σειριακή διάταξη ισοδύναμη με το S Σχεδιάγραμμα της απόδειξης: (με επαγωγή στον αριθμό των κόμβων) Base case: 1 node (root); follows by the previous observations Induction hypothesis: there is a serial order for all the transactions that lock nodes in any subtree containing more than one node Induction: Must merge the serial orders of the subtrees. Consider for each subtree the set of transactions that lock one or more nodes in the subtree. These sets have as common elements the transactions that lock the root. These transactions lock every common node in the same order they lock the root. Build a serial order for the entire set by starting with the transactions that lock the root in the appropriate order. The rest only need to be placed consistently with the serial order of their subtrees. 139

Εξασφάλιση σειριομορφίας (Ensuring Serializability) Παράδειγμα: Έστω ότι έχουμε 10 δοσοληψίες, T 1, T 2,, T 10 από τις οποίες οι T 1, T 3, T 4, T 6 κλειδώνουν την ρίζα, με αυτή την σειρά. Υποθέτουμε επίσης ότι ο ριζικός κόμβος έχει δύο θυγατρικούς κόμβους: ο πρώτος κόμβος έχει κλειδωθεί από τις δοσοληψίες με περιττό αριθμό και την T 4, ενώ ο δεύτερος από τις δοσοληψίες με άρτιο αριθμό και την T 3. Σειριακή διάταξη στο 1 ο υποδέντρο: T 9, T 1, T 5, T 7, T 3,T 4 Σειριακή διάταξη στο 2 ο υποδέντρο : T 8, T 3, T 10, T 4, T 2, T 6 T 5 T 2 T 9 T 1 T 7 T 4 T 6 T 8 T 10 T 3 Μια από την πολλές τοπολογικές ταξινομήσεις είναι: T 9, T 8, T 1, T 5, T 7, T 3,T 10,T 4, T 2, T 6 140

Δενδρικό Πρωτόκολλο (Tree Protocol) Άσκηση: Θεωρείστε τις ακόλουθες δοσοληψίες που ενεργούν στο διπλανό δέντρο T1: r1(a); r1(b); r1(e) T2: r2(a); r2(c); r2(b) T3: r3(b); r3(e); r3(f) Αν τα χρονοδιαγράμματα ακολουθούν το δενδρικό πρωτόκολλο, πόσα προγράμματα σύγχρονης εκτέλεσης (συμπλεγμένα) υπάρχουν : a) T1 και T2 b) T1 και T3 c) T1, T2 και T3 141

Έλεγχος συγχρονικότητας με χρονοσήμανση (Timestamp-based Concurrency Control) Βασικές ιδέες: Σε κάθε δοσοληψία βάζουμε μια «χρονοσήμανση» (timestamp) Καταγράφονται τα χρονόσημα των δοσοληψιών που έγραψαν ή διάβασαν τελευταίες ένα στοιχείο της ΒΔ Συγκρίνουμε αυτές τις τιμές με τα χρονόσημα των δοσοληψιών για να διασφαλίσουμε ότι το σειριακό χρονοδιάγραμμα με βάση τα χρονόσημα είναι ισοδύναμο με το πραγματικό χρονοδιάγραμμα των δοσοληψιών Αισιόδοξη (optimistic) προσέγγιση: υποθέτει ότι δεν θα προκύψει μησειριόμορφη συμπεριφορά και τα προβλήματα επιδιορθώνονται αν υπάρξει κάποια παραβίαση η μόνη θεραπεία είναι η ακύρωση και επανεκκίνηση Οι μέθοδοι κλειδώματος είναι απαισιόδοξες (pessimistic) και αποτρεπτικές (preventive). Οι διεργασίες καθυστερούν αλλά δεν ακυρώνονται. Γενικά, ο αισιόδοξος χρονοπρογραμματισμός είναι καλύτερος από τις φραγές όταν υπάρχουν πολλές δοσοληψίες που κάνουν μόνο ανάγνωση. 142

Χρονόσημα (Timestamps) Σε κάθε δοσοληψία T αποδίδεται ένα μοναδικό χρονόσημο (unique timestamp) TS(T) Τα χρονόσημα αποδίδονται με αύξουσα σειρά όταν οι δοσοληψίες αρχίζουν Τα χρονόσημα μπορούν να παράγονται με δύο διαφορετικούς τρόπους: χρησιμοποιώντας το ρολόι του συστήματος χρησιμοποιώντας έναν μετρητή που τηρεί ο χρονοδιαγραμματιστής (scheduler), ο οποίος αυξάνεται κατά 1 κάθε φορά που ξεκινά μια δοσοληψία O scheduler πρέπει να τηρεί έναν πίνακα με τις ενεργές δοσοληψίες την τρέχουσα χρονική στιγμή και τα αντίστοιχα χρονόσημά τους. 143

Χρονόσημα (Timestamps) Για να χρησιμοποιήσουμε χρονόσημα ως μέθοδο έλεγχου συγχρονικότητας, πρέπει να συσχετίσουμε κάθε στοιχείο της ΒΔ με δύο χρονόσημα και ένα επιπλέον bit: RT(X): χρόνος ανάγνωσης του X, το μεγαλύτερο από τα χρονόσημα των δοσοληψιών που έχουν διαβάσει το Χ WT(X): χρόνος εγγραφής του X, το μεγαλύτερο από τα χρονόσημα των δοσοληψιών που έχουν γράψει το Χ C(X): bit οριστικοποίησης για το X, είναι 1 αν και μόνο αν η πιο πρόσφατη δοσοληψία που έγραψε το Χ έχει ήδη οριστικοποιηθεί Το bit αυτό χρησιμοποιείται για την αποφυγή της κατάστασης όπου μια δοσοληψία Τ διαβάζει δεδομένα τα οποία γράφει μια άλλη δοσοληψία U και αργότερα η U ακυρώνεται (dirty read on uncommitted data) 144

Προβλήματα με τα χρονόσημα Ο scheduler υποθέτει ότι η σειρά χρονοσήμανσης των δοσοληψιών είναι επίσης η σειριακή διάταξη με την οποία πρέπει να φαίνεται πως εκτελούνται Ο scheduler πρέπει να ελέγχει ότι κάθε φορά που γίνεται μια ανάγνωση ή εγγραφή, αυτό που συμβαίνει στον πραγματικό χρόνο θα μπορούσε να είχε συμβεί αν κάθε δοσοληψία είχε εκτελεστεί στιγμιαία την χρονική στιγμή του χρονόσημού της. Σε αντίθετη περίπτωση μπορεί να προκύψουν δύο ειδών προβλήματα: Καθυστερημένη ανάγνωση: Η T προσπαθεί να διαβάσει το X, αλλά ο χρόνος εγγραφής WT(X) φανερώνει ότι η τρέχουσα τιμή του Χ εγγράφηκε μετά την θεωρητική εκτέλεση της T, δηλαδή TS(T) < WT(X). Η T δεν πρέπει να διαβάσει το X και ο scheduler πρέπει να ακυρώσει την T. Καθυστερημένη εγγραφή: Η T προσπαθεί να γράψει το X, αλλά ο χρόνος διαβάσματος RT(X) φανερώνει ότι κάποια άλλη δοσοληψία έπρεπε να είχε διαβάσει την τιμή που γράφτηκε από την T αλλά αντί αυτής διάβασε κάποια άλλη τιμή, δηλαδή WT(X) < TS(T) < RT(X) 145

Προβλήματα με τα χρονόσημα Καθυστερημένη ανάγνωση T2 γράφει το Χ Τ1 διαβάζει το Χ έναρξη της Τ1 έναρξη της T2 Καθυστερημένη εγγραφή T2 διαβάζει το Χ Τ1 γράφει το Χ έναρξη της Τ1 έναρξη της T2 146

Περισσότερα προβλήματα Η T1 διαβάζει το X το οποίο γράφτηκε τελευταία από την T2 και TS(T2) < TS(T1). Τι θα γίνει αν μετά την ανάγνωση του Χ από την Τ1, η T2 ακυρωθεί; είναι καλύτερο να καθυστερήσουμε την ανάγνωση από την Τ1 μέχρι η T2 να οριστικοποιηθεί ή να ακυρωθεί μπορούμε να ελέγξουμε το C(X) για να δούμε αν η T2 έχει οριστικοποιηθεί TS(T1) < TS(T2) και η T2 γράφει πρώτη το X. Όταν η T1 προσπαθήσει να γράψει, δεν κάνουμε τίποτα Κανόνας εγγραφής του Thomas: οι εγγραφές μπορούν να παραλειφθούν όταν έχει πραγματοποιηθεί ήδη μια εγγραφή με μεταγενέστερο χρόνο εγγραφής Πολιτική: όταν η T εγγράφει ένα στοιχείο X, η εγγραφή είναι δοκιμαστική (tentative write) και μπορεί να αναιρεθεί αν η Τ ματαιωθεί. Το C(X) γίνεται 0 και ο scheduler δημιουργεί ένα αντίγραφο της παλιάς τιμής του X και του προηγούμενου χρόνου εγγραφής WT(X) 147

Περισσότερα προβλήματα Dirty read T2 γράφει το Χ Τ1 διαβάζει το Χ έναρξη της T2 έναρξη της Τ1 η T2 ακυρώνεται T2 γράφει το Χ Τ1 γράφει το Χ έναρξη της Τ1 έναρξη της T2 T1 commits T2 aborts 148

Κανόνες χρονοπρογραμματισμού με χρονόσημα 1. Αν ο scheduler λάβει ένα αίτημα από την δοσοληψία T για να διαβάσει το X τότε: a. If TS(T) >= WT(X) then i. If C(X)=1, grant the request. If TS(T) > RT(X), set RT(X):=TS(T); otherwise do not change RT(X) ii. If C(X)=0, delay T until C(X) becomes 1 or the transaction that wrote X aborts b. If TS(T) < WT(X) then abort T and restart it with a new, higher timestamp 149

Κανόνες χρονοπρογραμματισμού με χρονόσημα 2. Αν ο scheduler λάβει ένα αίτημα από την δοσοληψία T για να γράψει το X τότε: a. If TS(T) >= RT(X) and TS(T) >= WT(X) then i. Write the new value for X ii. Set WT(X):=TS(T) iii. Set C(X):=0 b. If TS(T) >= RT(X) but TS(T) < WT(X) then there is already a later value for X. i. If C(X)=1, ignore the write by T ii. If C(X)=0, delay T 150

Κανόνες χρονοπρογραμματισμού με χρονόσημα 3. Αν ο scheduler λάβει ένα αίτημα οριστικοποίησης της Τ, τότε πρέπει να βρεθούν όλα τα στοιχεία της ΒΔ που γράφτηκαν από την T και το commit bit C(X) να τεθεί σε 1 4. Αν ο scheduler λάβει ένα αίτημα ματαίωσης της Τ ή αποφασίζει να ανακαλέσει (roll back) την Τ, τότε κάθε δοσοληψία που περίμενε κάποιο στοιχείο X που ενέγραψε η T πρέπει να επαναλάβει την απόπειρά της να διαβάσει ή να γράψει. 151

Πολυεκδοχικά χρονόσημα Υπάρχουν παραλλαγές της χρονοσήμανσης που χρησιμοποιούν παλιές εκδοχές των στοιχείων της ΒΔ εκτός από την τρέχουσα έκδοση. Η μέθοδος είναι χρήσιμη αν τα στοιχεία της ΒΔ είναι disk blocks ή pages. χρονόσημα έναρξης των δοσοληψιών TS(T x ) Αν ήταν διαθέσιμη η παλιά τιμή του Α, θα μπορούσε να επιτραπεί στην Τ3 να τη διαβάσει και να μην ματαιωθεί. T 1 T 2 T 3 T 4 A 150 200 175 225 r 1 (A) RT(A)=150 w 1 (A) WT(A)=150 r 2 (A) RT(A)=200 w 2 (A) WT(A)=200 r 3 (A) abort r 4 (A) RT(A)=225 152

Χρονόσημα έναντι Φραγής (Timestamp-based Scheduling vs Locking) Η χρονοσήμανση υπερέχει της φραγής όταν οι περισσότερες δοσοληψίες κάνουν μόνο ανάγνωση ή σπάνια υπάρχουν συγχρονικές δοσοληψίες που προσπαθούν να διαβάσουν και να γράψουν το ίδιο στοιχείο. Σε καταστάσεις που συμβαίνουν πολλές συγκρούσεις, η φραγή έχει καλύτερες επιδόσεις: Η φραγή συχνά καθυστερεί τις δοσοληψίες καθώς περιμένουν για κάποιο lock. Ακόμα και αν έχουμε deadlock, κάποια από τις δοσοληψίες θα ανακληθεί (rolled back). Αλλά αν τα rollbacks είναι συχνά, εισάγεται ακόμα μεγαλύτερη καθυστέρηση. Πολλά εμπορικά συστήματα ακολουθούν συμβιβαστικές λύσεις: Οι δοσοληψίες χωρίζονται σε read-only και read/write Οι read/write εκτελούνται με 2PL ενώ οι read-only εκτελούνται με χρονοσήμανση (με πολυεκδοχικά χρονόσημα). 153

Έλεγχος συγχρονικότητας με επικύρωση (Validation-based Concurrency Control ) Μια άλλη αισιόδοξη στρατηγική ελέγχου συγχρονικότητας: Οι δοσοληψίες επιτρέπεται να έχουν πρόσβαση στα δεδομένα χωρίς κλειδώματα Ελέγχουμε αν οι δοσοληψίες συμπεριφέρθηκαν σειριόμορφα Ακριβώς πριν ξεκινήσει η δοσοληψία να εγγράφει τιμές σε στοιχεία της ΒΔ, περνά από μια φάση επικύρωσης όπου τα σύνολα των στοιχείων που διάβασε και πρόκειται να εγγράψει συγκρίνονται με τα σύνολα εγγραφής των άλλων ενεργών δοσοληψιών. Αν υπάρχει κίνδυνος φυσικώς μη πραγματοποιήσιμης συμπεριφοράς, η δοσοληψία ανακαλείται (roll back). Οι δοσοληψίες εκτελούνται σε 3 φάσεις Read Validate Write 154

Έλεγχος συγχρονικότητας με επικύρωση (Validation-based Concurrency Control ) Κάθε δοσοληψία που επικυρώνεται επιτυχώς είναι σαν να εκτελείται την στιγμή της επικύρωσής της. Ένας scheduler επικυρωτικού τύπου διαθέτει μια υποθετική σειριακή διάταξη των δοσοληψιών με βάση τους χρόνους επικύρωσης, για να αποφασίσει αν η συμπεριφορά των δοσοληψιών είναι συνεπείς με αυτή την διάταξη. Ο scheduler τηρεί τρία σύνολα: START: το σύνολο των δοσοληψιών που έχουν ξεκινήσει αλλά δεν έχουν ακόμα ολοκληρώσει την επικύρωση. START(T): ο χρόνος που ξεκίνησε η T VAL: το σύνολο των δοσοληψιών που έχουν επικυρωθεί αλλά δεν έχουν τελειώσει ακόμα την φάση εγγραφής. VAL(T): ο χρόνος που η T επικυρώθηκε FIN: το σύνολο των δοσοληψιών που έχουν ολοκληρώσει την φάση 3. FIN(T): ο χρόνος που τελείωσε η T 155

Κανόνες της Επικύρωσης RS(T): το σύνολο των στοιχείων της ΒΔ που διαβάζει η T WS(T): το σύνολο των στοιχείων της ΒΔ που γράφει η T Όταν η Τ επιχειρεί να επικυρώσει: 1. Σύγκρινε το RS(T) με WS(U) για κάθε U έτσι ώστε FIN(U) > START(T) και έλεγξε αν RS(T) WS(U) = 2. Σύγκρινε το WS(T) με WS(U) για κάθε U έτσι ώστε FIN(U) > VAL(T) και έλεγξε αν WS(T) WS(U) = 156

Προβλήματα με την επικύρωση Πρόβλημα όταν RS(T) WS(U) T διαβάζει το Χ U γράφει το Χ Ενδέχεται η Τ και U να μην είναι συνεπείς με την υποθετική διάταξη (διακεκομμένες γραμμές) Η Τ πρέπει να ανακληθεί και στις δύο περιπτώσεις Πρόβλημα όταν WS(T) WS(U) έναρξη της U έναρξη της T επικύρωση της U T γράφει το Χ επικύρωση της T U γράφει το Χ επικύρωση της U επικύρωση της T λήξη της U 157

Σύγκριση των μηχανισμών ελέγχου συγχρονικότητας Χρησιμοποίηση αποθηκευτικού χώρου: Φραγή: ο χώρος στον πίνακα φραγμών είναι ανάλογος του πλήθους των φραγμένων στοιχείων της ΒΔ Χρονόσημα: Σε μια απλοϊκή υλοποίηση: απαιτείται χώρος για τους χρόνους ανάγνωσης και εγγραφής κάθε στοιχείου της ΒΔ Όλα τα χρονόσημα που είναι προγενέστερα της παλαιότερης ενεργής δοσοληψίας δεν χρειάζονται. Αποθηκεύουμε μόνο τους χρόνους των στοιχείων που προσπελάστηκαν «πρόσφατα». Επικύρωση: χώρος για τα χρονόσημα και για τα σύνολα ανάγνωσης/εγγραφής κάθε ενεργής δοσοληψίας Τα Timestamping και Validation μπορεί να χρησιμοποιούν ελαφρώς περισσότερο χώρο από το Locking. 158

Σύγκριση των μηχανισμών ελέγχου συγχρονικότητας Χρόνοι καθυστέρησης: εξαρτάται από το βαθμό αλληλεπίδρασης δηλαδή την πιθανότητα μια δοσοληψία να προσπελάσει ένα στοιχείο που προσπελάζεται συγχρόνως από μια άλλη Η φραγή καθυστερεί τις δοσοληψίες αλλά αποφεύγει τις ανακλήσεις (rollbacks) εκτός από περιπτώσεις deadlock - ακόμα και όταν η αλληλεπίδραση είναι υψηλή. Τα χρονόσημα και η επικύρωση δεν καθυστερούν τις δοσοληψίες αλλά μπορούν να προκαλέσουν την ανάκλησή τους, η οποία περιλαμβάνει περισσότερες καθυστερήσεις και σπατάλη πόρων. Αν η αλληλεπίδραση είναι χαμηλή, τότε τα χρονόσημα και η επικύρωση δεν θα προκαλέσουν πολλές ανακλήσεις και μπορεί να είναι προτιμότερα από την φραγή. Όταν είναι απαραίτητη μια ανάκληση, τα χρονόσημα εντοπίζουν νωρίτερα τα προβλήματα από την επικύρωση (η οποία αφήνει πάντοτε μια δοσοληψία να κάνει όλη την δουλεία πριν εξετάσει αν θα πρέπει να ανακληθεί). 159

View Serializability Conflict serializability guarantees serializability independently of what transactions actually do But. it is a quite strong condition on schedules of concurrent execution A weaker notion that still guarantees serializability is view serializability The main difference between conflict and view serializability appears in situations where a transaction writes a value that no other transaction reads (but possibly writes later) under view serializability such a write action can be repositioned in the schedule (might be prohibited under conflict serializability) 160

Definitions Let S 1 and S 2 be two schedules involving the same set of transactions; let T I be a hypothetical transaction that writes initial values for each DB element read by any transaction in the schedule; let T F be a hypothetical transaction that reads every element written by the transactions after the schedule ends for every R i (A), we can find the W j (A) that most closely precedes it; transaction T j is called the source of the read action S 1 and S 2 are called view equivalent if for every read action in S 1 its source is the same in S 2, and vice versa. A schedule that is view equivalent to a serial schedule is called view serializable 161

Example Consider the following schedule S: T 1 : R 1 (A) W 1 (B) T 2 : R 2 (B) W 2 (A) W 2 (B) T 3 : R 3 (A) W 3 (B) only the value of B written by T 3 is read by T F S is not conflict serializable sources for read actions: o source of R 2 (B) is T I o source of R 1 (A) and R 3 (A) is T 2 o source of R F (A) is T 2 o source of R F (B) is T 3 S is view serializable; equivalent serial schedule: (T 2, T 1, T 3 ) 162

Testing View Serializability Polygraphs: a generalization of precedence graphs a node for each transaction and additional nodes for the two hypothetical transactions an arc from Tj to T i for each action R i (X) with source Tj if Tj is the source of R i (X) and T k is another transaction that writes X, T k must appear either before Tj or after T i. This is denoted by two arcs in the graph (can choose one of the two). Special cases: if Tj is TI, then the arc from T i to T k is introduced if T i is TF, then the arc from T k to Tj is introduced 163