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

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

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

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

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

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

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

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

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

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

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

Locking to ensure serializability

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Finite Field Problems: Solutions

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

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

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

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

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

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

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

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

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

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

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

EE512: Error Control Coding

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

Fractional Colorings and Zykov Products of graphs

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

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

C.S. 430 Assignment 6, Sample Solutions

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

Section 8.3 Trigonometric Equations

CHAPTER 25 SOLVING EQUATIONS BY ITERATIVE METHODS

Ordinal Arithmetic: Addition, Multiplication, Exponentiation and Limit

Lecture 2. Soundness and completeness of propositional logic

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

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

2 Composition. Invertible Mappings

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

ST5224: Advanced Statistical Theory II

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

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

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

derivation of the Laplacian from rectangular to spherical coordinates

Section 9.2 Polar Equations and Graphs

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

ANSWERSHEET (TOPIC = DIFFERENTIAL CALCULUS) COLLECTION #2. h 0 h h 0 h h 0 ( ) g k = g 0 + g 1 + g g 2009 =?

Bounding Nonsplitting Enumeration Degrees

Reminders: linear functions

The challenges of non-stable predicates

9.09. # 1. Area inside the oval limaçon r = cos θ. To graph, start with θ = 0 so r = 6. Compute dr

2. THEORY OF EQUATIONS. PREVIOUS EAMCET Bits.

Matrices and Determinants

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

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

MathCity.org Merging man and maths

b. Use the parametrization from (a) to compute the area of S a as S a ds. Be sure to substitute for ds!

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

Inverse trigonometric functions & General Solution of Trigonometric Equations

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

Minimum Spanning Tree: Prim's Algorithm

The Simply Typed Lambda Calculus

6.1. Dirac Equation. Hamiltonian. Dirac Eq.

DESIGN OF MACHINERY SOLUTION MANUAL h in h 4 0.

Right Rear Door. Let's now finish the door hinge saga with the right rear door

Σχέσεις, Ιδιότητες, Κλειστότητες

Εγκατάσταση λογισμικού και αναβάθμιση συσκευής Device software installation and software upgrade

ORDINAL ARITHMETIC JULIAN J. SCHLÖDER

Statistical Inference I Locally most powerful tests

( y) Partial Differential Equations

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

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

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

Example Sheet 3 Solutions

Practice Exam 2. Conceptual Questions. 1. State a Basic identity and then verify it. (a) Identity: Solution: One identity is csc(θ) = 1

A Note on Intuitionistic Fuzzy. Equivalence Relation

Network Algorithms and Complexity Παραλληλοποίηση του αλγορίθμου του Prim. Αικατερίνη Κούκιου

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

SCHOOL OF MATHEMATICAL SCIENCES G11LMA Linear Mathematics Examination Solutions

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΕ ΤΟ ΚΙΤ ΡΟΜΠΟΤΙΚΗΣ LEGO MINDSTORMS EV3

TMA4115 Matematikk 3

Other Test Constructions: Likelihood Ratio & Bayes Tests

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

Section 7.6 Double and Half Angle Formulas

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

Transcript:

Χρονοδιάγραμμα/Χρονοπρόγραμμα Χρονοδιάγραμμα ή Χρονοπρόγραμμα (Schedule) είναι μια σειρά/ακολουθία ενεργειών που πραγματοποιούνται από μια ή περισσότερες δοσοληψίες. Σημαντικές ενέργειες: ανάγνωση, εγγραφή (γίνονται στους buffers της κύριας μνήμης, όχι στο δίσκο) Όταν ένα στοιχείο της ΒΔ μεταφέρεται σε ένα buffer από την δοσοληψία Τ, μπορεί να αναγνωστεί ή να εγγραφεί στον συγκεκριμένο buffer όχι μόνο από την Τ αλλά και από άλλες δοσοληψίες. 80

Σειριακό χρονοδιάγραμμα Σειριακό (serial) λέγεται ένα χρονοδιάγραμμα αν αποτελείται από όλες τις ενέργειες μιας δοσοληψίας και στην συνέχεια από όλες μιας άλλης, και συνεχίζει ομοίως. Δεν επιτρέπεται η ανάμιξη ενεργειών. Ένα σειριακό χρονοδιάγραμμα διατηρεί την συνέπεια της ΒΔ. Συμβολισμός: (Τ1, Τ2) ή (Τ2, Τ1) Παράδειγμα: Constraint A=B (περιορισμός συνέπειας) T1: Read(A) T2: Read(A) A A+100 A A*2 Write(A) Write(A) Read(B) Read(B) B B+100 B B*2 Write(B) Write(B) 81

Σειριακό χρονοδιάγραμμα T1 Read(A); A A+100; Write(A); Read(B); B B+100; Write(B); T2 A B 25 25 125 125 Schedule Α Read(A); A A*2; Write(A); Read(B); B B*2; Write(B); 250 250 250 250 82

T1 Σειριακό χρονοδιάγραμμα T2 Read(A); A A*2; Write(A); Read(B); B B*2; Write(B); A B 25 25 50 50 Read(A); A A+100; Write(A); Read(B); B B+100; Write(B); Schedule Β 150 150 150 150 83

Σειριόμορφο χρονοδιάγραμμα Υπάρχουν άλλα χρονοδιαγράμματα που να εγγυώνται τη συνέπεια της ΒΔ; Ένα χρονοδιαγράμματα S είναι σειριόμορφο (serializable) αν υπάρχει σειριακό χρονοδιαγράμματα S τέτοιο ώστε, για κάθε αρχική κατάσταση της ΒΔ, η επίδραση του S και του S να είναι η ίδια. 84

Σειριόμορφο χρονοδιάγραμμα T1 Read(A); A A+100; Write(A); T2 Read(A); A A*2; Write(A); A B 25 25 125 250 Read(B); B B+100; Write(B); Schedule C Read(B); B B*2; Write(B); 125 250 250 250 85

Μη-Σειριόμορφο χρονοδιάγραμμα T1 Read(A); A A+100; Write(A); T2 Read(A); A A*2; Write(A); A B 25 25 125 250 Read(B); B B+100; Write(B); Schedule D Read(B); B B*2; Write(B); 50 150 250 150 86

Σειριόμορφο χρονοδιάγραμμα T1 T2 Read(A); A A+100; Write(A); Read(A); A A+200; Write(A); Οι λεπτομέρειες των δοσοληψιών έχουν σημασία! Αλλά δεν είναι ρεαλιστικό ο scheduler να ασχολείται με αυτές τις λεπτομέρειες. Read(B); B B+100; Write(B); Schedule E Read(B); B B+200; Write(B); A B 25 25 125 325 225 325 325 325 87

Transaction Scheduling Θέλουμε να επιτρέπουμε την εκτέλεση μόνο «καλών» χρονοδιαγραμμάτων ανεξάρτητα από αρχικές καταστάσεις σημασιολογία των δοσοληψιών Μετράει μόνο η σειρά των αναγνώσεων και εγγραφών Παράδειγμα: Δεδομένου ενός χρονοδιαγράμματος στην παρακάτω μορφή, προσδιόρισε αν πρέπει να επιτραπεί η εκτέλεση του χωρίς να προκαλεί προβλήματα ασυνέπειας στην ΒΔ. S C = r1(a);w1(a);r2(a);w2(a);r1(b);w1(b);r2(b);w2(b) 88

Συγκρούσεις (Conflicts) Σύγκρουση: ένα ζεύγος από συνεχόμενες ενέργειες σε ένα χρονοδιάγραμμα, οι οποίες αν εναλλαχτούν θα προκαλέσουν αλλαγές στην συμπεριφορά μιας τουλάχιστον από τις εμπλεκόμενες δοσοληψίες. Τα περισσότερα ζεύγη ενεργειών δεν συγκρούονται. Δεν πρέπει να εναλλάξουμε την σειρά των ενεργειών όταν: Δύο ενέργειες ανήκουν στην ίδια δοσοληψία, γιατί η σειρά των ενεργειών είναι καθορισμένη Δύο εγγραφές του ίδιου στοιχείου της ΒΔ από διαφορετικές δοσοληψίες συγκρούονται Μια ανάγνωση και μια εγγραφή του ίδιου στοιχείου της ΒΔ από διαφορετικές δοσοληψίες συγκρούονται Γενικά, μπορούμε να εναλλάξουμε (swap) δύο ενέργειες που εκτελούνται από διαφορετικές δοσοληψίες, εκτός αν: Αφορούν το ίδιο στοιχείο της ΒΔ Τουλάχιστον η μία ενέργεια να είναι εγγραφή 89

Συγκρούσεις (Conflicts) Ένα χρονοδιάγραμμα είναι συγκρουσιακώς σειριόμορφο (conflict-serializable) αν είναι συγκρουσιακώς ισοδύναμο (conflict-equivalent) με ένα σειριακό χρονοδιάγραμμα δηλ. το ένα μπορεί να μετατραπεί στο άλλο μέσω μιας ακολουθίας μη συγκρουσιακών εναλλαγών. S C =r1(a)w1(a)r2(a)w2(a)r1(b)w1(b)r2(b)w2(b) S C =r1(a)w1(a) r1(b)w1(b)r2(a)w2(a)r2(b)w2(b) T1 T2 Το S C είναι συγκρουσιακώς σειριόμορφο? 90

The transaction game A r w r w B r w r w T1 r w r w T2 r w r w we can move a column until it hits something 91

move A r w r w B r w r w T1 r w r w T2 r w r w move A r w r w B r w r w T1 r w r w T2 r w r w 92

Βασικές έννοιες Δοσοληψία (Transaction): μια σειρά ενεργειών ri(x) και wi(x) Συγκρουόμενες ενέργειες (Conflicting actions): r1(a); w2(a), w2(a); r1(a), w1(a); w2(a) Χρονοπρόγραμμα (Schedule): αναπαριστά την χρονολογική σειρά εκτέλεσης των ενεργειών Σειριακό χρονοπρόγραμμα (Serial schedule): δεν επιτρέπεται διαπλοκή (interleaving) των δοσοληψιών

Χρονοπρογραμματισμός Δοσοληψιών (Transaction Scheduling) Παράδειγμα: Υπάρχει ισοδύναμο σειριακό χρονοδιάγραμμα του S D =r1(a)w1(a)r2(a)w2(a) r2(b)w2(b)r1(b)w1(b)? Πρέπει να γίνει είτε T1 T2 είτε T2 T1. Όμως για το S D : S D =r1(a)w1(a)r2(a)w2(a) r2(b)w2(b)r1(b)w1(b) Για το S D δεν υπάρχουν εναλλαγές που να το μετατρέπουν σε ισοδύναμο σειριακό, επομένως το S D είναι «κακό» 94

Γράφημα προήγησης (precedence graph) Για ένα χρονοδιάγραμμα S, ο γράφος προήγησης P(S) ορίζεται ως εξής: Κόμβοι (Nodes): οι δοσοληψίες στο S Ακμές (Arcs): η Ti προηγείται της Tj (Ti Tj) όταν pi(a), qj(a) είναι ενέργειες στο S pi(a) < S qj(a) και αφορούν το ίδιο στοιχείο Α τουλάχιστον ένα από τα pi, qj είναι ενέργεια εγγραφής Ένας τρόπος για να ελέγξουμε conflict-serializability 95

Γράφημα προήγησης (precedence graph) Παράδειγμα1 S : r2(a);r1(b);w2(a);r3(a);w1(b);w3(a);r2(b);w2(b); Για τις ενέργειες που αφορούν το Α, Τ2(A) < S Τ3(A) 2 3 Για τις ενέργειες που αφορούν το Β, Τ1(Β) < S Τ2(Β) 1 2 Συνολικά (άρα το S είναι συγκρουσιακώς σειριόμορφο): 1 2 3 96

Γράφημα προήγησης (precedence graph) Παράδειγμα2 S : r2(a);r1(b);w2(a);r2(b);r3(a);w1(b);w3(a);w2(b); Για τις ενέργειες που αφορούν το Α, Τ2(A) < S Τ3(A) 2 3 Για τις ενέργειες όμως που αφορούν το Β, διαπιστώνουμε ότι Τ1(Β) < S Τ2(Β) και Τ2(Β) < S Τ1(Β) Συνολικά: 1 2 3 97

Γράφημα προήγησης (precedence graph) Άσκηση: Βρείτε το γράφημα προήγησης P(S) για το χρονοπρόγραμμα S = w3(a) w2(c) r1(a) w1(b) r1(c) w2(a) r4(a) w4(d) Για να διαπιστώσουμε αν ένα χρονοδιάγραμμα είναι συγκρουσιακώς σειριόμορφο, κατασκευάζουμε το γράφημα προήγησης και εξετάζουμε αν περιέχει κύκλους. Αν ναι, τότε δεν είναι συγκρουσιακώς σειριόμορφο. 98

Γράφημα προήγησης (precedence graph) Λήμμα Αν S1, S2 συγκρουσιακώς ισοδύναμα P(S1)=P(S2) Proof: Assume P(S1) P(S2) Then, Ti: Ti Tj in S1 and not in S2 S1 = pi(a)... qj(a) pi, qj S2 = qj(a) pi(a)... conflict Hence, S1 and S2 cannot be conflict equivalent Σημείωση: Αν P(S1)=P(S2) δεν σημαίνει ότι τα S1, S2 είναι συγκρουσιακώς ισοδύναμα Αντιπαράδειγμα: S1=w1(A) r2(a) w2(b) r1(b) S2=r2(A) w1(a) r1(b) w2(b) 99

Γράφημα προήγησης (precedence graph) Θεώρημα: Το P(S1) δεν έχει κύκλους αν και μόνο αν το S1 είναι συγκρουσιακώς σειριόμορφο Proof: (if) Assume S1 is conflict serializable Ss: Ss, S1 conflict equivalent P(Ss) = P(S1) P(S1) acyclic since P(Ss) is acyclic (only if) Assume P(S1) is acyclic. Transform S1 as follows: 1. Take T1 to be transaction with no incoming arcs 2. Move all T1 actions to the front 3. We now have S1 = < T1 actions ><... rest...>; remove T1 and incident arcs 4. Repeat above steps to serialize rest! 100

Επιβολή σειριομορφίας Επιλογή 1: επιτρέπουμε κάθε χρονοπρόγραμμα και ελέγχουμε για κύκλους στο γράφο προήγησης (reactive) Επιλογή 2: αποτρέπουμε κύκλους στο γράφο προήγησης (proactive) Πρωτόκολλα φραγμών/κλειδωμάτων (Locking protocols) χρησιμοποιούνται για την υλοποίηση της επιλογής 2 New actions: lock (exclusive), unlock Scheduler maintains information about locks in a lock table Rule 1: well-formed transactions A transaction is well-formed when every operation on a DB item X (read or write) is preceded by a lock request on X and followed by an unlock request on X Rule 2: legal schedule A schedule is legal if no lock request is granted to a transaction T j for a DB item X when a transaction T i has already been granted the lock to X 101

Απλό πρωτόκολλο φραγμών Δύο νέες ενέργειες: lock (exclusive): li (Χ) unlock: ui (Χ) Ένα μόνο είδος κλειδιού Rule #1: Well-formed transactions Ti: li(χ) pi(χ) ui(χ)... Rule #2: Legal schedule S =.. li(χ)... ui(χ)... όχι lj(χ) T1 T2 scheduler lock table Περιέχει εγγραφές του τύπου: Lock(X, Ti) 102

Απλό πρωτόκολλο φραγμών Άσκηση: Ποια από τα παρακάτω χρονοπρογράμματα είναι legal? Ποιες δοσοληψίες είναι well-formed? S1 = l1(a)l1(b)r1(a)w1(b)l2(b)u1(a)u1(b)r2(b)w2(b)u2(b)l3(b)r3(b)u3(b) S2 = l1(a)r1(a)w1(b)u1(a)u1(b)l2(b)r2(b)w2(b)l3(b)r3(b)u3(b) u2(b)? S3 = l1(a)r1(a)u1(a)l1(b)w1(b)u1(b)l2(b)r2(b)w2(b)u2(b)l3(b)r3(b)u3(b) 103

Διφασική φραγή (2-Phase Lock) Η μέθοδος αυτή εξασφαλίζει ότι ένα schedule είναι conflict-serializable Rule #3: 2-Phase Locking (2PL) Σε κάθε δοσοληψία, όλες οι αιτήσεις για φραγές προηγούνται όλων των αιτήσεων για εκφραγές/ξεκλειδώματα. Ιδέα: Ti =. li(a)... ui(a)... no unlock no locks # locks held by T i time Στο προηγούμενο παράδειγμα, η S3 συμμορφώνεται με το 2PL? Growing Phase Shrinking Phase 104

Διφασική φραγή (2-Phase Lock) Διαισθητικά, μπορούμε να θεωρήσουμε ότι κάθε δοσοληψία 2PL εκτελείτε εξ ολοκλήρου την στιγμή που υποβάλλει το πρώτο αίτημα για unlock (απελευθέρωση του πρώτου στοιχείου) Για κάθε χρονοπρόγραμμα S που αποτελείται από 2PL δοσοληψίες υπάρχει πάντοτε τουλάχιστον ένα συγκρουσιακώς ισοδύναμο σειριακό χρονοπρόγραμμα (conflict-equivalent serial schedule): αυτό στο οποίο οι δοσοληψίες εμφανίζονται με την ίδια σειρά που έχουν οι πρώτες εκφραγές (unlocks) που εκτελούν Απόδειξη: με επαγωγή ως προς το πλήθος n των δοσοληψιών στο legal schedule S Σημείωση: εναλλάσσουμε (swap) την σειρά μόνο των ενεργειών read και write των διαφόρων δοσοληψιών και αγνοούμε τα locks και unlocks. Μόλις διατάξουμε σειριακά τις ενέργειες τότε προσθέτουμε τα lock / unlock 105

Επαγωγή Διφασική φραγή (2-Phase Lock) Αν n=1 τότε το S είναι ήδη σειριακό Έστω ότι το S περιέχει n δοσοληψίες T1, T2,, Tn. Let Ti be the first transaction to unlock an item by op. Ui(X). Then, it is possible to move all read/write actions of Ti to the beginning of S without passing any conflicting action. Let Ti include an action Wi(Y). If there existed an action Wj(Y) in S that precedes Wi(Y), then Uj(Y) and Li(Y) must also appear between Wj(Y) and Wi(Y). We assumed that Ui(X) is the first unlock, hence it precedes Uj(Y). This means that Ui(X) must also appear before Li(Y). But then, Ti is not a 2PL transaction. 106

2PL υποσύνολο των σειριόμορφων χρονοπρογραμμάτων Παράδειγμα: S1: w1(a);w3(a);w2(b);w1(b) Serializable Το S1 είναι σειριόμορφο S1 (ισοδύναμο με T2 T1 T3) Δεν μπορεί να εφαρμοστεί 2PL στο S1: Το κλείδωμα του Β από την T1 πρέπει να γίνει μετά το w2(b), έτσι το ξεκλείδωμα του A από την Τ1 πρέπει να γίνει μετά από αυτό το σημείο. Επομένως, το 2PL κλείδωμα του w3(a) δεν μπορεί να γίνει γιατί η T1 ακόμα έχει κλειδωμένο το A σε αυτό το σημείο. 2PL 107

Exercise: Are the schedules S C and S D serializable and/or 2PL schedules? S C : w1(a) w2(a) w1(b) w2(b) S D : w1(a) w2(a) w2(b) w1(b) 108

2PL και Deadlocks Το 2PL δεν λύνει το πρόβλημα πιθανών αδιεξόδων (deadlocks) Παράδειγμα: Θεωρούμε το παρακάτω S L1(A), R1(A), L2(B), R2(B), W1(A), W2(B), L1(B), L2(A) wait Καμία δεν μπορεί να προχωρήσει, και οι δύο θα περιμένουν για πάντα η μια την άλλη για να απελευθερώσουν διαφορετικά αντικείμενα 109

Πολλαπλοί τύποι φραγμών Πρόβλημα: Με το 2PL εφαρμόζουμε μια φραγή στο στοιχείο Χ ακόμα και αν θέλουμε απλώς να το διαβάσουμε. Βελτίωση την απόδοση του 2PL με δύο διαφορετικά είδη φραγμών: Κοινόχρηστος φραγμός ή φραγμός ανάγνωσης (shared lock) Αποκλειστικός φραγμός ή φραγμός εγγραφής (exclusive lock) Κοινόχρηστος φραγμός ενέργειες ανάγνωσης δεν συγκρούονται δεν χρειάζεται αποκλειστικός φραγμός για ανάγνωση Συμβολισμός: SLi(X): Η Ti αιτείται ένα κοινόχρηστο φραγμό για το X XLi(X): Η Ti αιτείται ένα αποκλειστικό φραγμό για το X Ui(X): Η Ti απελευθερώνει τον φραγμό για το X 110

Κοινόχρηστος φραγμός Μέχρι τώρα στο 2PL: S =...l1(a) r1(a) u1(a) l2(a) r2(a) u2(a) Τώρα: Do not conflict S =... sl1(a) r1(a) sl2(a) r2(a). u1(a) u2(a) ui(a): απελευθερώνει οποιοδήποτε φραγμό έχει κλειδώσει η Ti το A 111

Απαιτήσεις shared και exclusive locks Συνέπειας (Consistency) 2PL Πριν από κάθε ενέργεια Ri(X) πρέπει να προηγείται μια ενέργεια SLi(X) ή XLi(X) χωρίς παρεμβολή μιας ενέργειας Ui(X) Πριν από κάθε ενέργεια Wi(X) πρέπει να προηγείται μια ενέργεια XLi(X) χωρίς παρεμβολή μιας ενέργειας Ui(X) Όλα τα κλειδώματα πρέπει να ακολουθούνται από ένα ξεκλείδωμα του στοιχείου Σε κάθε 2PL δοσοληψία Ti, καμία ενέργεια SLi(X) ή XLi(X) δεν μπορεί να έπεται μιας ενέργειας Ui(Υ) για κανένα Υ 112

Απαιτήσεις shared και exclusive locks Επιτρεπτότητα (Legality) Ένα στοιχείο μπορεί είτε να έχει ένα exclusive lock από μια δοσοληψία είτε να έχει shared lock από πολλές δοσοληψίες, αλλά όχι και τα δύο: Αν εμφανίζεται ένα XLi(X) τότε δεν μπορεί να ακολουθεί ένα XLj(X) ή SLj(X) για j i, χωρίς παρεμβολή μιας ενέργειας Ui(X) Αν εμφανίζεται ένα SLi(X) τότε δεν μπορεί να ακολουθεί ένα XLj(X) για j i, χωρίς παρεμβολή μιας ενέργειας Ui(X) 113

Παράδειγμα Θεωρούμε τις παρακάτω δοσοληψίες T1: SL1(A); R1(A); XL1(B); R1(B); W1(B); U1(A); U1(B) T2: SL2(A); R2(A); SL2(B); R2(B); U2(A); U2(B) Μια επιτρεπτή συμπλεγμένη εκτέλεση των T1, T2 : T1 SL1(A); R1(A); XL1(B); wait XL1(B); R1(B); W1(B); U1(A); U1(B) T2 SL2(A); R2(A); SL2(B), R2(B); U2(A); U2(B); Παρατήρηση: Το διπλανό χρονοπρόγραμμα είναι συγκρουσιακώς σειριόμορφο γιατί υπάρχει ισοδύναμη σειριακή διάταξη (Τ2 Τ1) 114

Μήτρα/Πίνακας συμβατότητας (compatibility matrix) Όταν έχουμε πολλούς τύπους φραγμών, ο scheduler χρειάζεται μια πολιτική για το πότε μπορεί να ικανοποιήσει ένα αίτημα φραγής. Ένας βολικός τρόπος περιγραφής της διαχείρισης των φραγμών είναι η μήτρα συμβατότητας (για κάθε στοιχείο). φραγμός που κατέχεται S φραγμός που απαιτείται S True False X False False X Η στήλη για το S λέει ότι μπορούμε να δώσουμε ένα s-lock αν δεν υπάρχει x-lock. Η στήλη για το X λέει ότι μπορούμε να δώσουμε ένα x-lock αν δεν υπάρχουν οτιδήποτε άλλοι φραγμοί. 115