Κατέβασμα παρουσίασης
Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε
ΔημοσίευσεMelaina Kallas Τροποποιήθηκε πριν 10 χρόνια
1
ΤΑΥΤΟΧΡΟΝΙΣΜΟΣ1
2
2 Θεωρείστε δύο συναλλαγές (Xacts): T1:BEGIN R(X), X=Χ-N, W(X), R(Y), Y=Y+N, W(Y), END T2:BEGIN R(X) X=X+M, W(X) END v Διαισθητικά, η T1 μεταφέρει Ν κρατήσεις θέσεων από μια πτήση (Χ) και τις μεταφέρει σε μία άλλη (Y). Η T2 απλώς κρατά Μ θέσεις στην πρώτη πτήση (τη Χ ) v Δεν υπάρχει καμία εγγύηση ότι η T1 θα εκτελεστεί πριν την T2 η το ανάποδο, αν και η δύο υποβληθούν ταυτόχρονα. Ωστόσο, το συνολικό αποτέλεσμα πρέπει να είναι ισοδύναμο με τη μία ή την άλλη περίπτωση (δηλαδή, με κάποια σειριακή εκτέλεση των δύο Συναλλαγών)
3
ΤΑΥΤΟΧΡΟΝΙΣΜΟΣ3 BEGIN R(X) X=Χ-N W(X) R(Y) Y=Y+N W(Y) END BEGIN R(X) X=Χ+M W(X) END T1 T2 σειριακή εκτέλεση Τ1 Τ2 BEGIN R(X) X=Χ-N W(X) R(Y) Y=Y+N W(Y) END BEGIN R(X) X=Χ+M W(X) END T1 T2 σειριακή εκτέλεση Τ2 Τ1
4
ΤΑΥΤΟΧΡΟΝΙΣΜΟΣ4 T1 T2 BEGIN R(X) X=Χ-N W(X) END Απώλεια Ενημερώσεων W(X) R(Y) BEGIN R(X) X=Χ+M Y=Y+N W(Y) END Η τιμή του X είναι λανθασμένη
5
ΤΑΥΤΟΧΡΟΝΙΣΜΟΣ5 BEGIN R(X) X=Χ-N W(X) T1 T2 Προσωρινή Ενημέρωση BEGIN R(X) X=Χ+M W(X) END Y=Y+N Τι θα συμβεί αν η Τ1 αποτύχει - η Τ2 θα έχει διαβάσει «ανύπαρκτη τιμή» Dirty Read
6
ΤΑΥΤΟΧΡΟΝΙΣΜΟΣ6 BEGIN R(X) X=Χ-N T1 T2 Μη Επαναλήψιμη Ανάγνωση BEGIN R(X) X=Χ+M W(X) END R(X) H τιμή του Χ που διαβάζει η Τι είναι διαφορετική!!
7
ΤΑΥΤΟΧΡΟΝΙΣΜΟΣ7 Τα τρία προβλήματα είναι: Το πρόβλημα της χαμένης ενημέρωσης (lost update) Το πρόβλημα της εξάρτησης από ανεπικύρωτη μεταβολή (uncommitted dependency) Το πρόβλημα της ασυνεπούς ανάλυσης (inconsistent analysis)
8
ΤΑΥΤΟΧΡΟΝΙΣΜΟΣ8 1. Χαμένη Ενημέρωση ΑΒ --------------------------------------------- Retrieve pt1- -t2Retrive p Update pt3- -t4Update p
9
ΤΑΥΤΟΧΡΟΝΙΣΜΟΣ9 2. Εξάρτηση από ανεπικύρωτη μεταβολή ΑΒ ---------------------------------------------------- ---- t1 Update p Retrieve p t2- Update pt3 ---- t4Rollback
10
ΤΑΥΤΟΧΡΟΝΙΣΜΟΣ10 ΤΑΥΤΟΧΡΟΝΙΣΜΟΣ 3. Ασυνεπής ανάλυση Α[ACC1=40, ACC2=50, ACC3=30]Β -------------------------------------------------------------- Retrieve ACC1 sum=40t1- Retrieve ACC2 sum=90 t2- -t3Retrieve ACC3 -t4Update ACC3 30-->20 -t5Retrieve ACC1 -t6Update ACC1 40-->50 -t7COMMIT Reatrive ACC3 t8- sum=110 no 120
11
ΤΑΥΤΟΧΡΟΝΙΣΜΟΣ11 ΤΑΥΤΟΧΡΟΝΙΣΜΟΣ Τεχνική Ελέγχου ΚΛΕΙΔΩΜΑ (locking) Το αποτέλεσμα του κλειδώματος είναι να αποκλειστούν οι άλλες συναλλαγές από την συστοιχία, και έτσι να μην μπορούν να την μεταβάλουν. Αποκλειστικά κλειδώματα X (exclusive locks) κλείδωμα πράξεων εγγραφής (write lock) Μεριζόμενα κλειδώματα S (shared locks) κλείδωμα πράξεων ανάγνωσης (read lock )
12
ΤΑΥΤΟΧΡΟΝΙΣΜΟΣ12 ΤΑΥΤΟΧΡΟΝΙΣΜΟΣ ΚΛΕΙΔΩΜΑ (locking) Αν η συναλλαγή Α κατέχει ένα αποκλειστικό (Χ) κλείδωμα πάνω στη συστοιχία ρ, τότε μια αίτηση από κάποια άλλη συναλλαγή Β για ένα κλείδωμα οποιουδήποτε από τους δύο τύπους στην ρ θα απορριφθεί.
13
ΤΑΥΤΟΧΡΟΝΙΣΜΟΣ13 ΤΑΥΤΟΧΡΟΝΙΣΜΟΣ ΚΛΕΙΔΩΜΑ (locking) Αν η συναλλαγή Α κατέχει ένα μεριζόμενο (S) κλείδωμα πάνω στη συστοιχία ρ, τότε: Μια αίτηση από κάποια άλλη συναλλαγή Β για ένα κλείδωμα Χ στην ρ θα απορριφθεί. Μια αίτηση από κάποια άλλη συναλλαγή Β για ένα κλείδωμα S στην ρ θα γίνει δεκτή (δηλαδή, και η Β θα διατηρεί τώρα ένα κλείδωμα S στην ρ).
14
ΤΑΥΤΟΧΡΟΝΙΣΜΟΣ14 ΤΑΥΤΟΧΡΟΝΙΣΜΟΣ ΜΗΤΡΩΟ ΣΥΜΒΑΤΟΤΗΤΑΣ (Compatibility Matrix) για τους τύπους κλειδωμάτων Χ και S (η παύλα->χωρίς κλείδωμα) XS- XOON SONN -NNN
15
ΤΑΥΤΟΧΡΟΝΙΣΜΟΣ15 ΤΑΥΤΟΧΡΟΝΙΣΜΟΣ Πρωτόκολλο προσπέλασης δεδομένων (data access protocol) 1. Μια συναλλαγή που θέλει να ανακαλέσει μια συστοιχία πρέπει πρώτα να αποκτήσει ένα κλείδωμα S σε αυτή τη συστοιχία. 2. Μια συναλλαγή που θέλει να ενημερώσει μια συστοιχία πρέπει πρώτα να αποκτήσει ένα κλείδωμα Χ σε αυτή τη συστοιχία. Αν κατέχει ήδη ένα κλείδωμα S στη συστοιχία,όπως συμβαίνει σε μια ακολουθία ανάκλησης και ενημέρωσης (RETRIEVE-UPDATE), τότε θα πρέπει να προαγάγει το κλείδωμα S σε κλείδωμα επιπέδου Χ. 3. Αν μια αίτηση κλειδώματος από τη συναλλαγή Β απορριφθεί επειδή έρχεται σε σύγκρουση με ένα κλείδωμα που κατέχει ήδη η συναλλαγή Α, τότε η συναλλαγή Β περνάει σε κατάσταση αναμονής. 4. Τα κλειδώματα Χ διατηρούνται μέχρι το τέλος της συναλλαγής (COMMIT ή ROLLBACK).
16
ΤΑΥΤΟΧΡΟΝΙΣΜΟΣ16 ΤΑΥΤΟΧΡΟΝΙΣΜΟΣ ΑΔΙΕΞΟΔΟ (DEADLOCK) Το αδιέξοδο είναι μια κατάσταση όπου δύο ή περισσότερες συναλλαγές είναι ταυτόχρονα σε κατάσταση αναμονής, και η κάθε μία περιμένει μια από τις άλλες να απελευθερώσει ένα κλείδωμα, πριν μπορέσει να προχωρήσει.
17
ΤΑΥΤΟΧΡΟΝΙΣΜΟΣ17 ΤΑΥΤΟΧΡΟΝΙΣΜΟΣ ΑΔΙΕΞΟΔΟ (DEADLOCK) Το πρόβλημα της χαμένης ενημέρωσης ΑΒ --------------------------------------------------------------- retrieve p St1- -t2 retrieve p S update p Xt3- αναμονήt4 update p Xαναμονή
18
ΤΑΥΤΟΧΡΟΝΙΣΜΟΣ18 ΤΑΥΤΟΧΡΟΝΙΣΜΟΣ ΑΔΙΕΞΟΔΟ (DEADLOCK) Το πρόβλημα Εξάρτησης από Ανεπικύρωτη Μεταβολή ΑΒ ------------------------------------------------------------------------ ---- t1 Update p Χ Retrieve p t2- ΑΝΑΜΟΝΗ ΑΝΑΜΟΝΗ t3Rollback/ Commit Συνέχεια Retrieve p St4
19
ΤΑΥΤΟΧΡΟΝΙΣΜΟΣ19 ΤΑΥΤΟΧΡΟΝΙΣΜΟΣ ΑΔΙΕΞΟΔΟ (DEADLOCK) Το πρόβλημα Ασυνεπούς Ανάλυσης Α[ACC1=40, ACC2=50, ACC3=30]Β -------------------------------------------------------------- Retrieve S ACC1 sum=40t1- Retrieve S ACC2 sum=90 t2- -t3Retrieve S ACC3 -t4Update X ACC3 30-->20 -t5Retrieve S ACC1 -t6Update Χ ACC1 40-->50 Reatrive S ACC3 t7Αναμονή Αναμονήt8Αναμονή
20
ΤΑΥΤΟΧΡΟΝΙΣΜΟΣ20 ΤΑΥΤΟΧΡΟΝΙΣΜΟΣ ΑΔΙΕΞΟΔΟ (DEADLOCK) Γενικό Παράδειγμα ΑΒ --------------------------------------------------------------- Lock p1 Xt1- -t2 Lock p2 X Lock p2 Xt3- αναμονήt4 Lock p1 Xαναμονή
21
ΤΑΥΤΟΧΡΟΝΙΣΜΟΣ21 ΤΑΥΤΟΧΡΟΝΙΣΜΟΣ ΑΔΙΕΞΟΔΟ (DEADLOCK) Στην πράξη, δεν εντοπίζουν όλα τα συστήματα τα αδιέξοδα — μερικά χρησιμοποιούν απλώς ένα μηχανισμό χρονικού ορίου (timeout) και θεωρούν ότι μια συναλλαγή που δεν έχει κάνει καμία δουλειά για ένα προκαθορισμένο χρονικό διάστημα είναι σε αδιέξοδο.
22
ΤΑΥΤΟΧΡΟΝΙΣΜΟΣ22 ΤΑΥΤΟΧΡΟΝΙΣΜΟΣ Σειροποιησιμότητα (serialiability) κριτήριο ορθότητας για έλεγχο συναλλαγών 1. Αν όλες οι συναλλαγές υπακούουν στο «πρωτόκολλο κλειδώματος δύο φάσεων» τότε όλα τα δυνατά πλεκτά χρονοδιαγράμματα είναι σειροποιήσιμα.
23
ΤΑΥΤΟΧΡΟΝΙΣΜΟΣ23 ΤΑΥΤΟΧΡΟΝΙΣΜΟΣ πρωτόκολλο κλειδώματος δύο φάσεων 1. Πριν επενεργήσει σε οποιοδήποτε αντικείμενο (π.χ., σε μια συστοιχία βάσης δεδομένων), μια συναλλαγή πρέπει να αποκτήσει ένα κλείδωμα σε αυτό το αντικείμενο. 2. Αφού απελευθερώσει ένα κλείδωμα, μια συναλλαγή δεν πρέπει ποτέ να προχωρήσει στην απόκτηση και άλλων κλειδωμάτων. Μια συναλλαγή που υπακούει σε αυτό το πρωτόκολλο έχει λοιπόν δύο φάσεις, μια φάση απόκτησης κλειδώματος και μια φάση απελευθέρωσης κλειδώματος
24
ΤΑΥΤΟΧΡΟΝΙΣΜΟΣ24 ΤΑΥΤΟΧΡΟΝΙΣΜΟΣ Προτιθέμενο κλείδωμα Αναφέραμε ήδη ότι τα κλειδώματα Χ και S έχουν νόημα και για ολόκληρες σχέσεις και για μεμονωμένες συστοιχίες. Εισάγουμε τρία νέα είδη κλειδωμάτων, που ονομάζονται προτιθέμενα κλειδώματα (intent locks), τα οποία έχουν επίσης νόημα για τις σχέσεις αλλά όχι για τις μεμονωμένες συστοιχίες. προτιθέμενο μεριζόμενο κλείδωμα (intent shared — IS), προτιθέμενο αποκλειστικό κλείδωμα (intent exclusive — IX) μεριζόμενο και προτιθέμενο αποκλειστικό κλείδωμα (shared intent exclusive — SIX).
25
ΤΑΥΤΟΧΡΟΝΙΣΜΟΣ25 ΤΑΥΤΟΧΡΟΝΙΣΜΟΣ Προτιθέμενο κλείδωμα IS :Η συναλλαγή Τ σκοπεύει να θέσει κλειδώματα S σε μεμονωμένες συστοιχίες της R, για να εξασφαλιστεί η σταθερότητα αυτών των συστοιχιών ενώ γίνεται η επεξεργασία τους. IX :Το ίδιο με το IS, και επιπλέον η Τ μπορεί να χρειαστεί να ενημερώνει μεμονωμένες συστοιχίες της R, γι' αυτό θέτει κλειδώματα Χ σε αυτές τις συστοιχίες. S :Η T ανέχεται ταυτόχρονες αναγνώσεις, αλλά όχι ταυτόχρονες ενημερώσεις της R. Η ίδια η T δεν ενημερώνει συστοιχίες της R. SIX :Συνδυάζει τα S και IX, δηλαδή, η T ανέχεται ταυτόχρονες αναγνώσεις, αλλά όχι ταυτόχρονες ενημερώσεις της R, και επιπλέον η T μπορεί να χρειαστεί να ενημερώνει μεμονωμένες συστοιχίες της R, γι' αυτό θέτει κλειδώματα Χ σε αυτές τις συστοιχίες. Χ :Η Τ δεν ανέχεται καμία απολύτως ταυτόχρονη προσπέλαση της R, η ίδια η T μπορεί να ενημερώνει ή να μην ενημερώνει μεμονωμένες συστοιχίες της R.
26
ΤΑΥΤΟΧΡΟΝΙΣΜΟΣ26 ΤΑΥΤΟΧΡΟΝΙΣΜΟΣ Μητρώο συμβατότητας, διευρυμένο ώστε να περιλαμβάνει τα προτιθέμενα κλειδώματα ΧSIXIXSIS- X00000Ν SIX0000ΝΝ IX00Ν0ΝΝ S000ΝΝΝ IS0ΝΝΝΝΝ -ΝΝΝΝΝΝ
Παρόμοιες παρουσιάσεις
© 2024 SlidePlayer.gr Inc.
All rights reserved.