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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Dr. Garmpis Aristogiannis - EPDO TEI Messolonghi

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

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

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

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

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

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

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

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

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

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

Kεφ.2: Σχεσιακό Μοντέλο (επανάληψη) Κεφ.6.1: Σχεσιακή Άλγεβρα


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

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

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

Σε καθεμιά από τις παρακάτω περιπτώσεις, να μετατρέψετε τη δομή επανάληψης ΟΣΟ στην δομή ΑΠΑΝΤΗΣΗ ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ ΜΕΧΡΙΣ_ΟΤΟΥ Α<-54

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

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

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

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

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

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

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

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

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

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

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

Τμήμα Οικιακής Οικονομίας και Οικολογίας. Οργάνωση Υπολογιστών

ΕΓΧΕΙΡΙΔΙΟ ΥΠΗΡΕΣΙΑΣ ΣΥΛΛΟΓΙΚΗΣ ΕΠΕΞΕΡΓΑΣΙΑΣ ΕΓΓΡΑΦΩΝ

Ημερομηνία: Τετάρτη 26 Οκτωβρίου 2016 Διάρκεια Εξέτασης: 3 ώρες ΕΚΦΩΝΗΣΕΙΣ

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ. Εξετάσεις Προσομοίωσης 24/04/2019

Κλείδωμα αρχείων (file locking) Προγραμματισμός II 1

Πολυπύρηνοι επεξεργαστές Multicore processors

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

EL Eνωμένη στην πολυμορφία EL A8-0086/5. Τροπολογία. Benedek Jávor εξ ονόματος της Ομάδας Verts/ALE

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

Η Διαδικασία Σχεδιασμού Συστημάτων

ΤΗΛΕΦΩΝΙΚΗ ΣΥΣΚΕΥΗ SNOM 300 έκδοση ΕΓΧΕΙΡΙΔΙΟ ΧΡΗΣΗΣ ΙΣΤΟΣΕΛΙΔΑΣ

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

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

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

ΕΙΣΑΓΩΓΗ ΣΤOΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ

ΑΔΙΕΞΟΔΑ. Λειτουργικά Συστήματα Ι. Διδάσκων: Καθ. Κ. Λαμπρινουδάκης ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι

Κεφάλαιο 5. Κεφ. 5 Λειτουργικά Συστήματα 1

Πανεπιστήμιο Θεσσαλίας Τμήμα Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών Τμήμα Πληροφορικής

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

Οι δομές δεδομένων στοίβα και ουρά

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

Αλγόριθμος. Αλγόριθμο ονομάζουμε τη σαφή και ακριβή περιγραφή μιας σειράς ξεχωριστών οδηγιών βημάτων με σκοπό την επίλυση ενός προβλήματος.

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

Locking to ensure serializability

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

ΑΔΙΕΞΟΔΑ (Deadlocks) Παράδειγμα 1 Θανάσιμο αγκάλιασμα (deadly embrace)

Transcript:

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

Έλεγχος συγχρονικότητας Διάφορες δοσοληψίες εκτελούνται ταυτόχρονα στη ΒΔ απομόνωση μπορεί να μην διατηρείται Έλεγχος αλληλεπίδρασης μεταξύ ταυτόχρονων δοσοληψιών Έλεγχος συγχρονικότητας Βάσεις Δεδομένων ΙΙ, Παν. Πειραιά 2

Πρωτόκολλα βασισμένα σε κλειδώματα Ένα κλείδωμα είναι ένας μηχανισμός για να ελέγχουμε τη ταυτόχρονη προσπέλαση στα δεδομένα Τα δεδομένα μπορούν να κλειδωθούν σε δύο καταστάσεις: 1. Αποκλειστική (exclusive (X) mode). Τα δεδομένα μπορούν να διαβαστούν καθώς και να γραφτούν. X-lock απαιτείται χρησιμοποιώντας εντολή lock-x. 2. Κοινόχρηστη (shared (S) mode). Τα δεδομένα μπορούν να διαβαστούν μόνο. S-lock απαιτείται χρησιμοποιώντας εντολή lock-s. Οι αιτήσεις κλειδώματος γίνονται στο διαχειριστή ταυτόχρονου ελέγχου. Η δοσοληψία μπορεί να προχωρήσει μόνο αφού ικανοποιηθεί η αίτηση. Βάσεις Δεδομένων ΙΙ, Παν. Πειραιά 3

Πρωτόκολλα βασισμένα σε κλειδώματα (2) Πίνακας συμβατότητας κλειδώματος (Lock-compatibility matrix) Σε μία δοσοληψία μπορεί να παραχωρηθεί κλείδωμα σ ένα αντικείμενο εάν το αιτούμενο κλείδωμα είναι συμβατό με τα κλειδώματα που ήδη έχουν δοθεί στο αντικείμενο από άλλες δοσοληψίες Οποιοσδήποτε αριθμός από δοσοληψίες μπορεί να έχει κοινόχρηστα κλειδώματα σ ένα αντικείμενο Εάν μία δοσοληψία έχει αποκλειστικό κλείδωμα σε ένα αντικείμενο καμία άλλη δοσοληψία δεν μπορεί να διατηρεί κλείδωμα στο αντικείμενο. Εάν ένα κλείδωμα δεν μπορεί να παραχωρηθεί, η αιτούμενη δοσοληψία μπαίνει σε αναμονή μέχρις ότου όλα τα μη συμβατά κλειδώματα που διατηρούνται από άλλες δοσοληψίες απελευθερωθούν. Στη συνέχεια το κλείδωμα παραχωρείται. Βάσεις Δεδομένων ΙΙ, Παν. Πειραιά 4

Πρωτόκολλα βασισμένα σε κλειδώματα (3) Παράδειγμα μίας δοσοληψίας που εκτελεί κλείδωμα: T1: lock-χ(β); read (B); Β=Β-50; write(b); unlock(b); lock-x(a); read (A); A=A+50; write(a); unlock(a); T2: lock-s(a); read (A); unlock(a); lock-s(b); read (B); unlock(b); display(a+b) Κλείδωμα όπως παραπάνω δεν είναι αρκετό για να διασφαλίσει σειριακή διάταξη if A and B get updated in-between the read of A and B, the displayed sum would be wrong. Σειριακή εκτέλεση <Τ1, Τ2> Α+Β=300 Βάσεις Δεδομένων ΙΙ, Παν. Πειραιά 5

T1 T2 Έλεγχος συγχρονικότητας Α=100, Β=200 Με βάση το Χρονοπρόγραμμα Α+Β=250 λάθος lock-χ(β); read (B); Β=Β-50; write(b); unlock(b); lock-s(a); grant-x(b, T1) grant-s(a, T2) Τ1 ξεκλείδωσε τα δεδομένα Β πολύ νωρίς read (A); unlock(a); lock-s(b); grant-s(b, T2) lock-x(a); read (B); unlock(b); display(a+b) grant-x(a, T1) read (A); A=A+50; write(a); unlock(a); Βάσεις Δεδομένων ΙΙ, Παν. Πειραιά 6

Παράδειγμα T1: lock-χ(β); read (B); Β=Β-50; write(b); unlock(b); lock-x(a); read (A); A=A+50; write(a); unlock(a); T2: lock-s(a); read (A); unlock(a); lock-s(b); read (B); unlock(b); display(a+b) T3: lock-χ(β); read (B); Β=Β-50; write(b); lock-x(a); read (A); A=A+50; write(a); unlock(b); unlock(a); T2: lock-s(a); read (A); lock-s(b); read (B); display(a+b); unlock(α); unlock(β); Βάσεις Δεδομένων ΙΙ, Παν. Πειραιά 7

Προβλήματα των πρωτοκόλλων βασισμένων σε κλείδωμα (1) Υποθέτουμε το χρονοπρόγραμμα Ούτε η T 3 ούτεt 4 μπορούν να προχωρήσουν εκτελώντας lock-s(b) κάνει τη T 4 να περιμένει για τη T 3 να αποδεσμεύσει το κλείδωμα της στο B, ενώ εκτελώντας το lock-x(a) κάνει τη T 3 να περιμένει για το T 4 να ελευθερώσει το κλείδωμα του στο A. Μία τέτοια κατάσταση ονομάζεται αδιέξοδο (deadlock) Για να διαχειριστούμε ένα αδιέξοδο, πρέπει μία από τις T 3 ή T 4 να αναιρεθεί και να αποδεσμευτούν τα κλειδώματα τους. Βάσεις Δεδομένων ΙΙ, Παν. Πειραιά 8

Προβλήματα των πρωτοκόλλων βασισμένων σε κλείδωμα (2) Η πιθανότητα για αδιέξοδο υπάρχει στα περισσότερα πρωτόκολλα κλειδώματος. Starvation είναι επίσης πιθανό εάν ο διαχειριστής ταυτόχρονου ελέγχου δεν είναι καλά σχεδιασμένος. Παράδειγμα: Μία δοσοληψία μπορεί να περιμένει για ένα X-lock πάνω σ ένα αντικείμενο, ενώ μία ακολουθία από άλλες δοσοληψίες απαιτούν και τους παραχωρηθεί ένα S-lock πάνω στο ίδιο αντικείμενο. Η ίδια δοσοληψία επανειλημμένα αναιρείται εξαιτίας αδιεξόδων. Ο διαχειριστής ταυτόχρονου ελέγχου μπορεί να σχεδιαστεί για να αποφύγουμε starvation. Βάσεις Δεδομένων ΙΙ, Παν. Πειραιά 9

Πρωτόκολλο κλειδώματος Ένα πρωτόκολλο κλειδώματος είναι ένα σύνολο από κανόνες που ακολουθούνται απ όλες τις δοσοληψίες ενώ αιτούνται και αποδεσμεύουν κλειδώματα. Πρωτόκολλα κλειδώματος περιορίζουν το σύνολο δυνατών χρονοπρογραμμάτων. Νόμιμο χρονοπρόγραμμα κάτω από κάποιο πρωτόκολλο κλειδώματος: S είναι ένα πιθανό χρονοπρόγραμμα για ένα σύνολο από δοσοληψίες που ακολουθούν τους κανόνες του πρωτοκόλλου κλειδώματος Πρωτόκολλο κλειδώματος διασφαλίζει τη σειριακή διάταξη σύγκρουσης εάν και μόνο εάν οποιαδήποτε νόμιμα χρονοπρογράμματα μπορούν να μπουν σε σειριακή διάταξη ως προς σύγκρουση Βάσεις Δεδομένων ΙΙ, Παν. Πειραιά 10

Δύο φάσεων πρωτόκολλο κλειδώματος Πρωτόκολλο που διασφαλίζει σειριακή διάταξη ως προς τις συγκρούσεις. Φάση 1: Φάση ανάπτυξης η δοσοληψία μπορεί να πάρει κλειδώματα η δοσοληψία δεν μπορεί να ελευθερώσει κάποιο κλείδωμα Φάση 2: Φάση σύμπτυξης η δοσοληψία μπορεί να ελευθερώσει κλειδώματα η δοσοληψία δεν μπορεί να πάρει νέα κλειδώματα Το πρωτόκολλο εξασφαλίζει σειριακή διάταξη. Μπορεί να αποδειχθεί ότι οι δοσοληψίες μπορεί να είναι σε σειριακή διάταξη σύμφωνα με τη σειρά των σημείων κλειδώματος τους (δηλ. σημείο όπου μία δοσοληψία αποκτά το τελικό της κλείδωμα). Βάσεις Δεδομένων ΙΙ, Παν. Πειραιά 11

Δύο φάσεων πρωτόκολλο κλειδώματος (2) Ζήτα κλείδωμα πριν εκτελέσεις κάποια πράξη: Για να διαβάσεις, πρέπει να πάρεις ένα Shared lock (S-lock). Είναι δυνατόν να υπάρχουν πολλές δοσοληψίες με S-lock για το ίδιο αντικείμενο Για να γράψεις, πρέπει να πάρεις ένα exclusive lock (X-lock). Αν μια δοσοληψία έχει X-lock για ένα αντικείμενο, απαγορεύεται οποιαδήποτε άλλη να έχει κάποιο κλείδωμα για το αντικείμενο αυτό Δεν μπορείς να ξεκλειδώσεις αντικείμενο μέχρι να έχεις πάρει και το τελευταίο κλείδωμα που χρειάζεσαι Βάσεις Δεδομένων ΙΙ, Παν. Πειραιά 12

Πρωτόκολλο 2 φάσεων? T 9 lock-x(b) read(b) B := B - 50 write(b) lock-x(a) read(a) A := A + 50 write(a) unlock(b) unlock(a) T 10 lock-s(a) read(a) lock-s(b) unlock(a) unlock(b) display(a + B) T 7 lock-x(b) read(b) B := B - 50 write(b) unlock(b) lock-x(a) read(a) A := A + 50 write(a) unlock(a) T 8 lock-s(a) read(a) unlock(a) lock-s(b) unlock(b) display(a + B) NOT LEGAL LEGAL LEGAL NOT LEGAL Βάσεις Δεδομένων ΙΙ, Παν. Πειραιά 13

Μερικό χρονοπρόγραμμα κάτω από κλείδωμα δύο φάσεων Kλείδωμα δύο φάσεων δεν διαβεβαιώνει ελευθερία από αδιέξοδα Διαδοχικές αναιρέσεις είναι δυνατές κάτω από κλείδωμα δύο φάσεων. Αποτυχία της Τ5 μετά το read(a) οδηγεί σε αποτυχία Τ6, Τ7 Βάσεις Δεδομένων ΙΙ, Παν. Πειραιά 14

Δύο φάσεων πρωτόκολλο κλειδώματος Για να αποφύγουμε διαδοχικές αναιρέσεις ακολουθούμε ένα τροποποιημένο πρωτόκολλο καλούμενο περιορισμένο δύοφάσεων κλείδωμα (strict two-phase locking). Μία δοσοληψία μπορεί να κρατήσει όλα τα αποκλειστικά κλειδώματα μέχρι να κάνει commit/abort. Όποια δεδομένα γράφονται από μία δοσοληψία που δεν έχει εκτελεστεί πλήρως, κλειδώνονται σε αποκλειστική κατάσταση μέχρι να ολοκληρωθεί η δοσοληψία. Οποιαδήποτε άλλη δοσοληψία εμποδίζεται να διαβάσει δεδομένα. Αυστηρό δύο-φάσεων κλείδωμα είναι ακόμα πιο περιοριστικό: όλα τα κλειδώματα κρατούνται μέχρι την ολοκλήρωση/αναίρεση(commit/abort). Στο πρωτόκολλο αυτό οι δοσοληψίες μπορούν να γίνουν σειριακές με βάση τη σειρά με την οποία κάνουν commit. Βάσεις Δεδομένων ΙΙ, Παν. Πειραιά 15

Μετατροπές κλειδώματος Δύο φάσεων κλείδωμα με μετατροπές κλειδώματος: Πρώτη φάση: Μπορεί να αποκτήσει lock-s σε ένα αντικείμενο Μπορεί να αποκτήσει lock-x στο αντικείμενο Μπορεί να μετατρέψει ένα lock-s σε ένα lock-x (upgrade) Δεύτερη φάση: μπορεί να αποδεσμεύσει ένα lock-s μπορεί να αποδεσμεύσει ένα lock-x Μπορεί να μετατρέψει ένα lock-x σ ένα lock-s (downgrade) Το πρωτόκολλο αυτό επιβεβαιώνει δυνατότητα σειριακής διάταξης. Πάλι όμως εξαρτάται από το προγραμματιστή να εισάγει διάφορες εντολές κλειδώματος. Βάσεις Δεδομένων ΙΙ, Παν. Πειραιά 16

Μη πλήρες χρονοπρόγραμμα με μετατροπή κλειδώματος Τ8: read(a1); read(a2);.. read(an); write(a1) T9: read(a1) read(a2) display(a1+a2) Η Τ8 χρειάζεται κλείδωμα μόνο στο τέλος όταν γράφει το α1 Μπορεί να κλειδώσει το α1 σε κοινόχρηστη χρήση και μετά να αλλάξει το κλείδωμα σε αποκλειστική χρήση Βάσεις Δεδομένων ΙΙ, Παν. Πειραιά 17