Κλείδωμα δύο Φάσεων: Διαφορά μεταξύ των αναθεωρήσεων

Περιεχόμενο που διαγράφηκε Περιεχόμενο που προστέθηκε
μ Διόρθωση λάθους CHECKWIKI 53 + επιμέλεια με τη χρήση AWB (8463)
Γραμμή 4:
 
Υπόψη ότι το 2PL είναι διαφορετικό από το [http://en.wikipedia.org/wiki/Two-phase_commit_protocol 2PC] (two-phase commit protocol).
 
 
==Κλειδώματα==
Γραμμή 10 ⟶ 9 :
Ένας από τους βασικότερους μηχανισμούς ταυτοχρονισμού στηρίζεται στη χρήση κλειδωμάτων. Σε μια βάση δεδομένων, ένα [[κλείδωμα]] μπορεί να χρειαστεί σε ένα αντικείμενο της από την συναλλαγή πριν να αποκτηθεί πρόσβαση σε αυτό. Η σωστή χρήση κλειδώματος μπορεί να αποτρέψει μη επιθυμητά, λάθη και ασυνεπή λειτουργίες σε κοινόχρηστες πηγές από ταυτόχρονες συναλλαγές. Όταν ένα αντικείμενο είναι κλειδωμένο από μία συναλλαγή και μία άλλη συναλλαγή χρειάζεται πρόσβαση σε αυτό, το παρών κλείδωμα και ο τύπος της προσδοκώμενης πρόσβασης ελέγχονται από το σύστημα.
Ένα κλείδωμα αντιστοιχεί σε ένα τμήμα δεδομένων και πρόκειται για μια μεταβλητή που περιγράφει την κατάσταση του τμήματος των δεδομένων σε σχέση με τις λειτουργίες που ενεργούν στα συγκεκριμένα δεδομένα.
 
 
Υπάρχουν 2 βασικοί τύποι κλειδωμάτων:
Γραμμή 17 ⟶ 15 :
 
* '''Κλείδωμα εγγραφής Write-lock (exclusive lock)''' το οποίο επιτρέπει σε μια συναλλαγή τόσο να διαβάσει όσο και να ενημερώσει δεδομένα.
 
 
Ο μηχανισμός κλειδωμάτων λειτουργεί ως εξής:
Γραμμή 61 ⟶ 58 :
 
Σε μια συναλλαγή στο τέλος της φασης-1, είναι ασφαλές διευκρινισμένη μόνο όταν μια συναλλαγή είναι στη φάση «έτοιμη» σε όλες της διεργασίες (read, write) της. (Η διεργασία έχει τελειώσει και είναι έτοιμη να δεσμευτεί και δεν μπορεί να πάρει περεταίρω κλειδώματα). Σε αυτή την περίπτωση η φάση-2 μπορεί να τελειώσει αμέσως αφού δεν χρειάζεται να συνεχίσει. Επίσης αν πολλές διεργασίες περιπλέκονται τότε χρειάζεται ένα σημείο συγχρονισμού μεταξύ τους για να διευκρινίζει τη φάση-1για όλες τους έτσι ώστε να αρχίσει να απελευθερώνει κλειδώματα στη φάση-2(Αλλιώς είναι πολύ πιθανό η σειριοποιησιμότητα και το 2PL να παραβιαστούν). Ένα τέτοιο σημείο συγχρονισμού κοστίζει πολύ (περιπλέκοντας ένα κατανεμημένο πρωτόκολλο παρόμοιο με το atomic commitment) και το τέλος της φάσης-1 αναστέλλεται για να συγχωνευτεί με το τέλος της συναλλαγής όπου και πάλι δεν χρειάζεται η φάση-2.
 
 
===Αυστηρό Κλείδωμα δύο Φάσεων (S2PL)===
Γραμμή 71 ⟶ 67 :
Αντίθετα τα κλειδώματα-ανάγνωση απελευθερώνονται κανονικά κατά τη διάρκεια της φάσης-2. Υλοποιώντας γενικά το S2PL απαιτεί σαφή υποστήριξη του τέλους της φάσης-1, διαχωρισμό από το τέλος της συναλλαγής και δεν έχει ακόμη υλοποιηθεί ένα τέτοιο προϊόν.
Το αυστηρό 2PL πρωτόκολλο είναι μία ειδική περίπτωση 2PL.
 
 
===Δυνατό Αυστηρό Κλείδωμα δύο Φάσεων (SS2PL)===
Γραμμή 113 ⟶ 108 :
: '''Σχόλιο''': Όταν διαμοιράζονται τα δεδομένα στα μέλη της συναλλαγής με το πρωτόκολλο ατομικής δέσμευσης η αυτόματη επίλυση καθολικών αδιεξόδων φροντίζεται από:
:*Για τα [http://en.wikipedia.org/wiki/Commitment_ordering Commitment Ordering] και στην ειδική περίπτωση του SS2PL η αυτόματη επίλυση από το πρωτόκολλο ατομικής δέσμευσης σημειώνεται μόνο σε άρθρα για το [http://en.wikipedia.org/wiki/Commitment_ordering Commitment Ordering].
:* Για το 2PL γενικά η αυτόματη επίλυση από το πρωτόκολλο σημείου συγχρονισμού στο τέλος της φάσης – 1 (η οποία έχει τον ίδιο μηχανισμό voting με το πρωτόκολλο ατομικής δέσμευσης, και το φαινόμενο της «vote που αγνοείται» στο voting-deadlock καταλήγει σε επίλυση καθολικού αδιεξόδου) δεν αναφέρεται μέχρι το 2009. Πρακτικά χρησιμοποιείται μόνο το SS2PL και δεν χρειάζεται ούτε συγχρονισμός στο τέλος της φάσης – 1 ούτε και πρωτόκολλο ατομικής δέσμευσης.
 
Σε κατανεμημένα περιβάλλοντα όπου τα ανακτήσιμα δεδομένα δεν διαμοιράζονται ανάμεσα στα μέλη του [http://en.wikipedia.org/wiki/Two-phase_commit_protocol 2PC] χρειάζονται ειδικές τεχνικές για να επιλύσουν τα καθολικά αδιέξοδα.
Γραμμή 124 ⟶ 119 :
*<cite id=Raz1992>Yoav Raz (1992): [http://www.informatik.uni-trier.de/~ley/db/conf/vldb/Raz92.html "The Principle of Commitment Ordering, or Guaranteeing Serializability in a Heterogeneous Environment of Multiple Autonomous Resource Managers Using Atomic Commitment"], ''Proceedings of the Eighteenth International Conference on Very Large Data Bases'' (VLDB), pp. 292-312, Vancouver, Canada, August 1992, ISBN 1-55860-151-1 (also DEC-TR 841, [[Digital Equipment Corporation]], November 1990) </cite>
 
[[Κατηγορία:Βάσεις δεδομένων]]
[[Κατηγορία:Επεξεργασία συναλλαγών]]
 
[[de:Sperrverfahren#Zwei-Phasen-Sperrprotokoll]]
[[en:Two-phase locking]]
[[it:Two Phase Locking]]
[[ja:ツーフェーズロック]]
[[it:Two Phase Locking]]
[[en:Two-phase locking]]
 
[[Κατηγορία:Βάσεις δεδομένων]]
[[Κατηγορία:Επεξεργασία συναλλαγών]]