el el el el el el el el el el el el el el el el el el el el el el el el el el el el el el el el el el el el el el el el el en el el el el el el en el en en en en el el el el el el el el el el el el
Το λήμμα παραθέτει τις πηγές του αόριστα, χωρίς παραπομπές. Βοηθήστε συνδέοντας το κείμενο με τις πηγές χρησιμοποιώντας παραπομπές, ώστε να είναι επαληθεύσιμο.
Το πρότυπο τοποθετήθηκε χωρίς ημερομηνία. Για τη σημερινή ημερομηνία χρησιμοποιήστε: {{χωρίς παραπομπές|4|10|2022}}
1 Έλεγχος ταυτοχρονισμού στις Βάσεις Δεδομένων
Έλεγχος ταυτοχρονισμού στις Βάσεις ΔεδομένωνΕπεξεργασία
Ο έλεγχος ταυτοχρονισμού στα Συστήματα Διαχείρισης Βάσεων Δεδομένων (ΣΔΒΔ), σε άλλα Αντικείμενα Συναλλαγής (αντικείμενα με καταστάσεις οι οποίες αλλάζουν και προσπελαύνονται από συναλλαγές βάσεων δεδομένων) και συσχετιζόμενες κατανεμημένες εφαρμογές (π.χ. Grid Computing και Cloud Computing) διασφαλίζει ότι οι συναλλαγές ΒΔ πραγματοποιούνται ταυτόχρονα χωρίς ο ταυτοχρονισμός να παραβιάζει την ακεραιότητα των δεδομένων της βάσης. Μια συναλλαγή στις ΒΔ ορίζεται σαν ένα αντικείμενο το οποίο τηρεί τους κανόνες ACID οι οποίοι περιγράφονται πιο κάτω. Ένα ΣΔΒΔ συνήθως εγγυάται ότι πραγματοποιούνται μόνο σειριοποιήσιμα χρονοπρογράμματα για ορθότητα (εκτός αν η σειριοποιησιμότητα αγνοείται σκόπιμα). Για να διατηρείται η ορθότητα σε περίπτωση εσφαλμένων συναλλαγών στα χρονοπρογράμματα πρέπει να είναι ανακτήσιμα (Η ανακτησιμότητα (recoverability) σημαίνει ότι οι δεσμευμένες συναλλαγές δεν έχουν δεδομένα γραμμένα από ακυρωμένες συναλλαγές (και οι συνέπειες τους δεν υπάρχουν στις καταστάσεις της βάσης δεδομένων). Αφού η σειριοποιησιμότητα είναι εκτεθειμένη σκόπιμα σε πολλές εφαρμογές για καλύτερη εφαρμογή (μόνο σε περιπτώσεις όπου η ορθότητα της εφαρμογής δεν επηρεάζεται), εκθέτοντας την ανακτησιμότητα θα παραβιαζόταν η ακεραιότητα της βάσης αλλά και θα εξέθετε τα αποτελέσματα των συναλλαγών.). Ένα ΣΔΒΔ εγγυάται επίσης ότι δεν χάνεται κανένα αποτέλεσμα συναλλαγής η οποία έχει πάρει commit και δεν παραμένει κανένα αποτέλεσμα συναλλαγής στην σχετική βάση δεδομένων η οποία έχει γίνει abort.
Ατομικότητα (Atomicity) – Είτε επιτυγχάνουν όλες οι ενέργειες σωστά είτε θα αποτύχουν (αν αποτύχει μια ενέργεια τότε αποτυγχάνει ολόκληρη η συναλλαγή) – πιο απλά μια συναλλαγή είναι αδιαίρετη, ατομική
Συνέπεια (Consistency) – Κάθε συναλλαγή πρέπει να είναι συνεπής όταν αποχωρεί από την βάση δηλαδή να διατηρείται οι προκαθορισμένοι κανόνες της.
Απομόνωση (Isolation) – Οι συναλλαγές δεν μπορούν να παρεμβαίνουν η μία στην άλλη – δηλαδή κάθε συναλλαγή θεωρεί ότι τρέχει μόνη της χωρίς άλλες συναλλαγές μέχρις ότου να τερματιστεί. Η απομόνωση είναι ο κύριος στόχος του έλεγχου ταυτοχρονισμού.
Μονιμότητα (Durability) – Τα αποτελέσματα συναλλαγών που έχουν εξασφαλίσει commit πρέπει να παραμένουν ακόμα μετά από αποτυχίες του συστήματος.
Οι κύριες κατηγορίες τεχνικών ελέγχου ταυτοχρονισμού είναι:
Αισιόδοξη Τεχνική – Καθυστέρηση του ελέγχου της συναλλαγής όσο αφορά την απομόνωση ή την ατομικότητα της μέχρι το τέλος της χωρίς να εμποδίζει καμία από τις ενέργειες της και μετά να την τερματίζει αν οι κανόνες αυτοί παραβιάζονται.
Απαισιόδοξη Τεχνική – Μπλοκάρονται οι ενέργειες της συναλλαγής αν υπάρχει παραβίαση οποιουδήποτε κανόνα.
Ημί – Αισιόδοξη Τεχνική – Μπλοκάρονται ενέργειες σε μερικές περιπτώσεις ενώ καθυστερείται ο έλεγχος των κανόνων στο τέλος μιας συναλλαγής όπως και στην αισιόδοξη τεχνική.
Υπάρχουν πολλές μέθοδοι ελέγχου ταυτοχρονισμού. Οι περισσότερες από αυτές μπορούν να υλοποιηθούν με οποιαδήποτε από τις παραπάνω τεχνικές. Οι κυριότερες μέθοδοι οι οποίες έχουν πολλές παραλλαγές περιλαμβάνουν:
Κλείδωμα δύο Φάσεων (2PL)
Έλεγχος Ταυτοχρονισμού Πολλαπλών Εκδοχών
Έλεγχος Ταυτοχρονισμού με Ευρετήρια
Ένας κοινός κύριος στόχος του έλεγχου ταυτοχρονισμού είναι να δημιουργούν σειριοποιήσιμα χρονοπρογράμματα. Η σειριοποιησιμότητα θεωρείται το υψηλότερο επίπεδο απομόνωσης μεταξύ συναλλαγών και το μεγαλύτερο κριτήριο ορθότητας για ταυτόχρονες συναλλαγές. Σε μερικές περιπτώσεις πιο απλές μορφές σειριοποιησιμότητας επιτρέπονται για καλύτερη ταχύτητα του συστήματος, αν η ορθότητα της εφαρμογής δεν παραβιάζεται από την απλούστευση. Σχεδόν όλες οι υλοποιημένες τεχνικές ελέγχου ταυτοχρονισμού πετυχαίνουν σειριοποιησιμότητα προσφέροντας σειριοποιησιμότητα συγκρούσεων, μια ειδική περίπτωση σειριοποιησιμότητας (η άλλη περίπτωση είναι η σειριοποιησιμότητα όψεως) η οποία μπορεί να υλοποιηθεί ανάλογα με την περίσταση.
Ο έλεγχος ταυτοχρονισμού διασφαλίζει επίσης την ιδιότητα της ανακτησιμότητας των χρονοπρογραμμάτων, για διατήρηση ορθότητας όταν οι συναλλαγές δεχτούν abort (το οποίο μπορεί να συμβεί για διαφορετικούς λόγους).
Καθώς τα ΣΔΒΔ γίνονται κατανεμημένα ή συνεργάζονται με κατανεμημένα περιβάλλοντα δημιουργείται η ανάγκη για τεχνικές κατανεμημένου ελέγχου ταυτοχρονισμού. Επιτυγχάνοντας κατανεμημένη σειριοποιησιμότητα και ευρεία σειριοποιησιμότητα προϋποθέτει ειδικές απαιτήσεις οι οποίες τυπικά δεν υιοθετούνται από τοπικές τεχνικές σειριοποιησιμότητας. Η τεχνική Commitment Ordering παρέχει μια αποτελεσματική λύση και για τα δυο (ευρεία και κατανεμημένη σειριοποιησιμότητα).
Philip A. Bernstein, Vassos Hadzilacos, Nathan Goodman: Concurrency Control and Recovery in Database Systems, Addison Wesley Publishing Company, 1987, ISBN 0-201-10715-5
Database concurrency control research: 20 years of incompetence. Post in dbforums conversation about Commitment ordering on 02-21-2010.