Skip to main content

Τι είναι ο έλεγχος ταυτόχρονα;

Στον προγραμματισμό διαχείρισης δεδομένων, ο έλεγχος ταυτόχρονα είναι ένας μηχανισμός που έχει σχεδιαστεί για να διασφαλίσει ότι τα ακριβή αποτελέσματα παράγονται από ταυτόχρονες λειτουργίες.Αυτά τα αποτελέσματα πρέπει επίσης να λαμβάνονται έγκαιρα.Ο έλεγχος ταυτόχρονα παρατηρείται πολύ συχνά σε βάσεις δεδομένων όπου υπάρχει μια μνήμη προσωρινής μνήμης των πληροφοριών που μπορούν να αναζητηθούν για να αποκτήσουν οι χρήστες. Οι προγραμματιστές προσπαθούν να σχεδιάσουν μια βάση δεδομένων με τέτοιο τρόπο ώστε οι σημαντικές συναλλαγές στα κοινά δεδομένα να είναι σειριακά ισοδύναμα.Αυτό σημαίνει ότι τα δεδομένα που έρχονται σε επαφή με σύνολα συναλλαγών θα βρίσκονται σε μια συγκεκριμένη κατάσταση όπου τα αποτελέσματα μπορούν να ληφθούν εάν όλες οι συναλλαγές εκτελούν σειριακά και με συγκεκριμένη σειρά.Μερικές φορές τα δεδομένα αυτά είναι άκυρα ως αποτέλεσμα της τροποποίησης με δύο συναλλαγές, ταυτόχρονα. Υπάρχουν πολλοί τρόποι διασφάλισης ότι οι συναλλαγές εκτελούνται το ένα μετά το άλλο, συμπεριλαμβανομένης της χρήσης αμοιβαίου αποκλεισμού καθώς και της δημιουργίας ενός πόρου που αποφασίζει ποιες συναλλαγές έχουνπρόσβαση.Αυτό είναι overkill, ωστόσο, και δεν θα επιτρέψει σε έναν προγραμματιστή να επωφεληθεί από τον έλεγχο ταυτόχρονα σε ένα κατανεμημένο σύστημα.Ο έλεγχος ταυτόχρονα επιτρέπει την ταυτόχρονη εκτέλεση πολλαπλών συναλλαγών, διατηρώντας παράλληλα αυτές τις συναλλαγές μεταξύ τους, εξασφαλίζοντας τη δυνατότητα γραμμικότητας.Ένας τρόπος για την εφαρμογή του ελέγχου ταυτόχρονης είναι η χρήση μιας αποκλειστικής κλειδαριάς σε έναν συγκεκριμένο πόρο για τις εκτελέσεις σειριακές συναλλαγές που μοιράζονται πόρους.Οι συναλλαγές θα κλειδώσουν ένα αντικείμενο που προορίζεται να χρησιμοποιηθεί και εάν κάποια άλλη συναλλαγή κάνει ένα αίτημα για το αντικείμενο που είναι κλειδωμένο, η συναλλαγή αυτή πρέπει να περιμένει το αντικείμενο να ξεκλειδώσει.Διακομιστές που εκδίδουν κλειδαριές πόρων.Αυτό είναι πολύ παρόμοιο με τους διακομιστές για κεντρικές αμοιβαίες εξαιρέσεις, όπου οι πελάτες μπορούν να ζητήσουν κλειδαριές και να στείλουν μηνύματα για την απελευθέρωση κλειδαριών σε έναν συγκεκριμένο πόρο.Η διατήρηση της σειριακής εκτέλεσης, ωστόσο, εξακολουθεί να είναι απαραίτητη για τον έλεγχο ταυτόχρονης.Εάν δύο ξεχωριστές συναλλαγές έχουν πρόσβαση σε ένα παρόμοιο σύνολο αντικειμένων, τα αποτελέσματα πρέπει να είναι παρόμοια και σαν να εκτελέστηκαν αυτές οι συναλλαγές με συγκεκριμένη σειρά.Για να διασφαλιστεί η παραγγελία σχετικά με την πρόσβαση σε έναν πόρο, εισάγεται το κλείδωμα δύο φάσεων, πράγμα που σημαίνει ότι οι συναλλαγές δεν επιτρέπονται νέες κλειδαριές κατά την απελευθέρωση ξεχωριστή κλειδαριά.φάση, όπου η συναλλαγή αποκτά την απαραίτητη κλειδαριά της.Η επόμενη φάση θεωρείται μια συρρίκνωση της φάσης, στην οποία η συναλλαγή έχει απελευθερωθεί κλειδαριές.Υπάρχουν προβλήματα με αυτόν τον τύπο κλειδώματος.Εάν ακυρώσουν οι συναλλαγές, άλλες συναλλαγές ενδέχεται να χρησιμοποιούν δεδομένα από αντικείμενα που τροποποιούνται και ξεκλειδώνονται από τις ακυρωμένες συναλλαγές.Αυτό θα είχε ως αποτέλεσμα να αποβληθούν άλλες συναλλαγές.