Έλεγχος ταυτότητας DBMS: Χρονική σήμανση & Πρωτόκολλα που βασίζονται σε κλειδαριά

Πίνακας περιεχομένων:

Anonim

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

Ο έλεγχος ταυτότητας στο Σύστημα Διαχείρισης Βάσεων Δεδομένων είναι μια διαδικασία διαχείρισης ταυτόχρονων λειτουργιών χωρίς σύγκρουση μεταξύ τους. Διασφαλίζει ότι οι συναλλαγές βάσης δεδομένων εκτελούνται ταυτόχρονα και με ακρίβεια για να παράγουν σωστά αποτελέσματα χωρίς να παραβιάζεται η ακεραιότητα των δεδομένων της αντίστοιχης βάσης δεδομένων.

Η ταυτόχρονη πρόσβαση είναι αρκετά εύκολη εάν όλοι οι χρήστες διαβάζουν απλώς δεδομένα. Δεν υπάρχει τρόπος να αλληλεπιδρούν μεταξύ τους. Αν και για οποιαδήποτε πρακτική βάση δεδομένων, θα είχε ένα συνδυασμό λειτουργιών READ και WRITE και ως εκ τούτου η ταυτόχρονη είναι μια πρόκληση.

Το DBMS Concurrency Control χρησιμοποιείται για την αντιμετώπιση τέτοιων διενέξεων, οι οποίες συμβαίνουν κυρίως με ένα σύστημα πολλών χρηστών. Επομένως, το Concurrency Control είναι το πιο σημαντικό στοιχείο για την ορθή λειτουργία ενός Συστήματος Διαχείρισης Βάσεων Δεδομένων όπου δύο ή περισσότερες συναλλαγές βάσης δεδομένων εκτελούνται ταυτόχρονα, τα οποία απαιτούν πρόσβαση στα ίδια δεδομένα.

Σε αυτό το σεμινάριο, θα μάθετε

  • Τι είναι ο έλεγχος ταυτόχρονης λειτουργίας;
  • Πιθανά προβλήματα ταυτότητας
  • Γιατί να χρησιμοποιήσετε τη μέθοδο Concurrency;
  • Πρωτόκολλα ελέγχου ταυτότητας
  • Πρωτόκολλα που βασίζονται σε κλειδαριά
  • Πρωτόκολλο κλειδώματος δύο φάσεων (2PL)
  • Πρωτόκολλα με χρονική σήμανση
  • Πρωτόκολλο βάσει επικύρωσης
  • Χαρακτηριστικά του πρωτοκόλλου Good Concurrency

Πιθανά προβλήματα ταυτότητας

Εδώ είναι μερικά ζητήματα τα οποία πιθανότατα θα αντιμετωπίσετε κατά τη χρήση της μεθόδου DBMS Concurrency Control:

  • Οι χαμένες ενημερώσεις εμφανίζονται όταν πολλές συναλλαγές επιλέγουν την ίδια σειρά και ενημερώνουν τη σειρά με βάση την επιλεγμένη τιμή
  • Ζητήματα εξάρτησης χωρίς δέσμευση προκύπτουν όταν η δεύτερη συναλλαγή επιλέγει μια σειρά που ενημερώνεται από άλλη συναλλαγή ( βρώμικη ανάγνωση )
  • Η μη επαναλαμβανόμενη ανάγνωση συμβαίνει όταν μια δεύτερη συναλλαγή προσπαθεί να έχει πρόσβαση στην ίδια σειρά αρκετές φορές και διαβάζει διαφορετικά δεδομένα κάθε φορά.
  • Λανθασμένο πρόβλημα περίληψης παρουσιάζεται όταν μία συναλλαγή λαμβάνει περίληψη πάνω από την αξία όλων των παρουσιών ενός επαναλαμβανόμενου στοιχείου δεδομένων και η δεύτερη συναλλαγή ενημερώνει λίγες εμφανίσεις αυτού του συγκεκριμένου στοιχείου δεδομένων. Σε αυτήν την περίπτωση, η περίληψη που προκύπτει δεν αντικατοπτρίζει ένα σωστό αποτέλεσμα.

Γιατί να χρησιμοποιήσετε τη μέθοδο Concurrency;

Οι λόγοι για τη χρήση της μεθόδου ελέγχου ταυτότητας είναι DBMS:

  • Εφαρμογή απομόνωσης μέσω αμοιβαίου αποκλεισμού μεταξύ αντικρουόμενων συναλλαγών
  • Για την επίλυση προβλημάτων σύγκρουσης ανάγνωσης και εγγραφής
  • Για τη διατήρηση της συνοχής της βάσης δεδομένων μέσω της διατήρησης των εμποδίων εκτέλεσης
  • Το σύστημα πρέπει να ελέγχει την αλληλεπίδραση μεταξύ των ταυτόχρονων συναλλαγών. Αυτός ο έλεγχος επιτυγχάνεται χρησιμοποιώντας σχήματα ταυτόχρονου ελέγχου.
  • Ο έλεγχος ταυτότητας συμβάλλει στη διασφάλιση της σειριοποίησης

Παράδειγμα

Ας υποθέσουμε ότι δύο άτομα που πηγαίνουν ταυτόχρονα σε ηλεκτρονικά κιόσκια για να αγοράσουν ένα εισιτήριο ταινίας για την ίδια ταινία και την ίδια ώρα εκπομπής.

Ωστόσο, απομένει μόνο μία θέση για την κινηματογραφική εκπομπή στο συγκεκριμένο θέατρο. Χωρίς έλεγχο ταυτότητας στο DBMS, είναι πιθανό και οι δύο κινηματογραφιστές να καταλήξουν να αγοράσουν ένα εισιτήριο. Ωστόσο, η μέθοδος ελέγχου ταυτότητας δεν επιτρέπει αυτό να συμβεί. Και οι δύο κινηματογράφοι εξακολουθούν να έχουν πρόσβαση σε πληροφορίες που είναι γραμμένες στη βάση δεδομένων καθισμάτων ταινιών. Όμως, ο έλεγχος ταυτότητας παρέχει μόνο ένα εισιτήριο στον αγοραστή που έχει ολοκληρώσει πρώτα τη διαδικασία συναλλαγής.

Πρωτόκολλα ελέγχου ταυτότητας

Διαφορετικά πρωτόκολλα ελέγχου ταυτότητας προσφέρουν διαφορετικά οφέλη μεταξύ του ποσού της ταυτότητας που επιτρέπουν και του ποσού των γενικών εξόδων που επιβάλλουν. Ακολουθούν οι τεχνικές ελέγχου ταυτότητας στο DBMS:

  • Πρωτόκολλα που βασίζονται σε κλειδαριά
  • Πρωτόκολλο κλειδώματος δύο φάσεων
  • Πρωτόκολλα βάσει χρονικής σήμανσης
  • Πρωτόκολλα βάσει επικύρωσης

Πρωτόκολλα που βασίζονται σε κλειδαριά

Πρωτόκολλα βάσει κλειδώματος στο DBMS είναι ένας μηχανισμός στον οποίο μια συναλλαγή δεν μπορεί να διαβάσει ή να γράψει τα δεδομένα μέχρι να αποκτήσει το κατάλληλο κλείδωμα Τα πρωτόκολλα που βασίζονται στο κλείδωμα βοηθούν στην εξάλειψη του προβλήματος ταυτόχρονης πρόσβασης στο DBMS για ταυτόχρονες συναλλαγές κλειδώνοντας ή απομονώνοντας μια συγκεκριμένη συναλλαγή σε έναν μόνο χρήστη.

Το κλείδωμα είναι μια μεταβλητή δεδομένων που σχετίζεται με ένα στοιχείο δεδομένων. Αυτό το κλείδωμα σημαίνει ότι λειτουργίες που μπορούν να εκτελεστούν στο στοιχείο δεδομένων. Οι κλειδαριές στο DBMS συμβάλλουν στο συγχρονισμό της πρόσβασης στα στοιχεία της βάσης δεδομένων με ταυτόχρονες συναλλαγές.

Όλα τα αιτήματα κλειδώματος υποβάλλονται στον διαχειριστή ταυτόχρονου ελέγχου. Οι συναλλαγές προχωρούν μόνο μετά την αποδοχή του αιτήματος κλειδώματος.

Binary Locks: Ένα δυαδικό κλείδωμα σε ένα στοιχείο δεδομένων μπορεί είτε να κλειδωθεί είτε να ξεκλειδωθεί.

Κοινόχρηστο / αποκλειστικό: Αυτός ο τύπος μηχανισμού κλειδώματος διαχωρίζει τις κλειδαριές στο DBMS με βάση τις χρήσεις τους. Εάν ένα κλείδωμα αποκτάται σε ένα στοιχείο δεδομένων για να εκτελεστεί μια λειτουργία εγγραφής, ονομάζεται αποκλειστική κλειδαριά.

1. Κοινόχρηστο κλείδωμα (S):

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

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

2. Αποκλειστική κλειδαριά (X):

Με το αποκλειστικό κλείδωμα, μπορείτε να διαβάσετε και να γράψετε ένα στοιχείο δεδομένων. Αυτό είναι αποκλειστικό και δεν μπορεί να κρατηθεί ταυτόχρονα στο ίδιο στοιχείο δεδομένων. Ζητείται X-lock χρησιμοποιώντας οδηγίες lock-x. Οι συναλλαγές ενδέχεται να ξεκλειδώσουν το στοιχείο δεδομένων μετά την ολοκλήρωση της λειτουργίας «εγγραφής».

Για παράδειγμα, όταν μια συναλλαγή πρέπει να ενημερώσει το υπόλοιπο του λογαριασμού ενός ατόμου. Μπορείτε να επιτρέψετε αυτήν τη συναλλαγή τοποθετώντας το X lock σε αυτήν. Επομένως, όταν η δεύτερη συναλλαγή θέλει να διαβάσει ή να γράψει, το αποκλειστικό κλείδωμα εμποδίζει αυτήν τη λειτουργία.

3. Απλοποιημένο πρωτόκολλο κλειδώματος

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

4. Κλείδωμα πριν από την αξίωση

Το πρωτόκολλο κλειδώματος προ-αξίωσης βοηθά στην αξιολόγηση των λειτουργιών και στη δημιουργία μιας λίστας απαιτούμενων στοιχείων δεδομένων που απαιτούνται για την έναρξη μιας διαδικασίας εκτέλεσης. Στην περίπτωση που παρέχονται όλες οι κλειδαριές, η συναλλαγή εκτελείται. Μετά από αυτό, όλες οι κλειδαριές απελευθερώνονται όταν τελειώσουν όλες οι λειτουργίες της.

Πείνα

Η πείνα είναι η κατάσταση κατά την οποία μια συναλλαγή πρέπει να περιμένει για αόριστο χρονικό διάστημα για να αποκτήσει κλειδαριά.

Ακολουθούν οι λόγοι για την πείνα:

  • Όταν το πρόγραμμα αναμονής για κλειδωμένα αντικείμενα δεν διαχειρίζεται σωστά
  • Σε περίπτωση διαρροής πόρων
  • Η ίδια συναλλαγή επιλέγεται ως θύμα επανειλημμένα

Αδιέξοδο

Το αδιέξοδο αναφέρεται σε μια συγκεκριμένη κατάσταση όπου δύο ή περισσότερες διεργασίες περιμένουν ο ένας τον άλλον για την απελευθέρωση ενός πόρου ή περισσότερες από δύο διαδικασίες περιμένουν τον πόρο σε μια κυκλική αλυσίδα.

Πρωτόκολλο κλειδώματος δύο φάσεων

Πρωτόκολλο κλειδώματος δύο φάσεων, επίσης γνωστό ως πρωτόκολλο 2PL, είναι μια μέθοδος ελέγχου ταυτόχρονων δεδομένων στο DBMS που διασφαλίζει σειριοποίηση με την εφαρμογή κλειδώματος στα δεδομένα συναλλαγών που εμποδίζουν άλλες συναλλαγές να έχουν ταυτόχρονη πρόσβαση στα ίδια δεδομένα. Το πρωτόκολλο κλειδώματος δύο φάσεων βοηθά στην εξάλειψη του προβλήματος ταυτόχρονης λειτουργίας στο DBMS.

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

  • Στην πρώτη φάση, όταν η συναλλαγή αρχίσει να εκτελείται, απαιτεί άδεια για τις κλειδαριές που χρειάζεται.
  • Το δεύτερο μέρος είναι όπου η συναλλαγή αποκτά όλες τις κλειδαριές. Όταν μια συναλλαγή απελευθερώνει το πρώτο της κλείδωμα, ξεκινά η τρίτη φάση.
  • Σε αυτήν την τρίτη φάση, η συναλλαγή δεν μπορεί να απαιτήσει νέες κλειδαριές. Αντ 'αυτού, απελευθερώνει μόνο τις αποκτηθείσες κλειδαριές.

Το πρωτόκολλο κλειδώματος δύο φάσεων επιτρέπει σε κάθε συναλλαγή να κάνει αίτηση κλειδώματος ή ξεκλειδώματος σε δύο βήματα:

  • Φάση ανάπτυξης : Σε αυτήν τη φάση η συναλλαγή μπορεί να αποκτήσει κλειδαριές, αλλά ενδέχεται να μην αποδεσμεύσει κλειδαριές.
  • Φάση συρρίκνωσης : Σε αυτήν τη φάση, μια συναλλαγή μπορεί να αποδεσμεύσει κλειδαριές αλλά να μην αποκτήσει νέα κλειδαριά

Είναι αλήθεια ότι το πρωτόκολλο 2PL προσφέρει δυνατότητα σειριοποίησης. Ωστόσο, δεν διασφαλίζει ότι δεν θα συμβούν αδιέξοδα.

Στο παραπάνω διάγραμμα, μπορείτε να δείτε ότι οι τοπικοί και παγκόσμιοι ανιχνευτές αδιεξόδου αναζητούν αδιέξοδα και τα επιλύουν με τη συνέχιση των συναλλαγών στις αρχικές τους καταστάσεις.

Αυστηρή μέθοδος κλειδώματος δύο φάσεων

Το σύστημα κλειδώματος Strict-Two phase είναι σχεδόν παρόμοιο με το 2PL. Η μόνη διαφορά είναι ότι το Strict-2PL δεν απελευθερώνει ποτέ κλειδαριά μετά τη χρήση του. Κρατά όλες τις κλειδαριές μέχρι το σημείο δέσμευσης και απελευθερώνει όλες τις κλειδαριές ταυτόχρονα όταν τελειώσει η διαδικασία.

Κεντρικό 2PL

Στο Centralized 2 PL, ένας μεμονωμένος ιστότοπος είναι υπεύθυνος για τη διαδικασία διαχείρισης κλειδώματος. Έχει μόνο έναν διαχειριστή κλειδώματος για ολόκληρο το DBMS.

Κύριο αντίγραφο 2PL

Κύριος μηχανισμός αντιγραφής 2PL, πολλοί διαχειριστές κλειδώματος διανέμονται σε διαφορετικούς ιστότοπους. Μετά από αυτό, ένας συγκεκριμένος διαχειριστής κλειδώματος είναι υπεύθυνος για τη διαχείριση της κλειδαριάς για ένα σύνολο στοιχείων δεδομένων. Όταν το κύριο αντίγραφο έχει ενημερωθεί, η αλλαγή μεταδίδεται στους σκλάβους.

Διανεμήθηκε 2PL

Σε αυτόν τον τύπο μηχανισμού κλειδώματος δύο φάσεων, οι διαχειριστές κλειδώματος διανέμονται σε όλους τους ιστότοπους. Είναι υπεύθυνοι για τη διαχείριση κλειδαριών για δεδομένα σε αυτόν τον ιστότοπο. Εάν δεν αναπαράγονται δεδομένα, είναι ισοδύναμο με το πρωτεύον αντίγραφο 2PL. Το κόστος επικοινωνίας του διανεμημένου 2PL είναι αρκετά υψηλότερο από το πρωτεύον αντίγραφο 2PL

Πρωτόκολλα με χρονική σήμανση

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

Η παλαιότερη συναλλαγή έχει πάντα προτεραιότητα σε αυτήν τη μέθοδο. Χρησιμοποιεί χρόνο συστήματος για να καθορίσει τη χρονική σφραγίδα της συναλλαγής. Αυτό είναι το πρωτόκολλο ταυτόχρονης χρήσης που χρησιμοποιείται πιο συχνά.

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

Παράδειγμα:

Suppose there are there transactions T1, T2, and T3.T1 has entered the system at time 0010T2 has entered the system at 0020T3 has entered the system at 0030Priority will be given to transaction T1, then transaction T2 and lastly Transaction T3.

Πλεονεκτήματα :

  • Τα προγράμματα είναι σειριοποιήσιμα όπως τα πρωτόκολλα 2PL
  • Χωρίς αναμονή για τη συναλλαγή, η οποία εξαλείφει την πιθανότητα αδιεξόδων!

Μειονεκτήματα:

Η πείνα είναι δυνατή εάν επανεκκινηθεί η ίδια συναλλαγή και συνεχώς ακυρωθεί

Πρωτόκολλο βάσει επικύρωσης

Πρωτόκολλο επικύρωσης βασισμένο σε DBMS γνωστό και ως Optimistic Concurrency Control Technique είναι μια μέθοδος για την αποφυγή ταυτόχρονης συναλλαγής. Σε αυτό το πρωτόκολλο, τα τοπικά αντίγραφα των δεδομένων συναλλαγής ενημερώνονται και όχι τα ίδια τα δεδομένα, με αποτέλεσμα λιγότερες παρεμβολές κατά την εκτέλεση της συναλλαγής.

Το Πρωτόκολλο βάσει επικύρωσης εκτελείται στις ακόλουθες τρεις φάσεις:

  1. Διαβάστε τη Φάση
  2. Φάση επικύρωσης
  3. Γράψτε φάση

Διαβάστε τη Φάση

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

Φάση επικύρωσης

Στη φάση επικύρωσης, τα δεδομένα ελέγχονται για να διασφαλιστεί ότι δεν υπάρχει παραβίαση της σειριοποίησης κατά την εφαρμογή των ενημερώσεων συναλλαγών στη βάση δεδομένων.

Γράψτε φάση

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

Χαρακτηριστικά του πρωτοκόλλου Good Concurrency

Ένας ιδανικός μηχανισμός ελέγχου ταυτότητας DBMS έχει τους ακόλουθους στόχους:

  • Πρέπει να είναι ανθεκτικό σε αστοχίες ιστότοπου και επικοινωνίας.
  • Επιτρέπει την παράλληλη εκτέλεση των συναλλαγών για την επίτευξη μέγιστης ταυτόχρονης εκτέλεσης.
  • Οι μηχανισμοί αποθήκευσης και οι υπολογιστικές μέθοδοι πρέπει να είναι μέτριες για την ελαχιστοποίηση των γενικών εξόδων
  • Πρέπει να επιβάλει ορισμένους περιορισμούς στη δομή των ατομικών ενεργειών των συναλλαγών.

Περίληψη

  • Ο έλεγχος ταυτότητας είναι η διαδικασία στο DBMS για τη διαχείριση ταυτόχρονων λειτουργιών χωρίς σύγκρουση μεταξύ τους.
  • Χαμένες ενημερώσεις, βρώμικη ανάγνωση, μη επαναλαμβανόμενη ανάγνωση και εσφαλμένη περίληψη Το πρόβλημα είναι προβλήματα που αντιμετωπίζονται λόγω έλλειψης ελέγχου ταυτόχρονης ταυτότητας.
  • Με βάση το κλείδωμα, δύο φάσεων, βάσει χρονικής σήμανσης, βάσει επικύρωσης είναι τύποι πρωτοκόλλων χειρισμού ταυτόχρονων
  • Η κλειδαριά θα μπορούσε να είναι Shared (S) ή Exclusive (X)
  • Το πρωτόκολλο κλειδώματος δύο φάσεων, το οποίο είναι επίσης γνωστό ως πρωτόκολλο 2PL, χρειάζεται συναλλαγή, θα πρέπει να αποκτήσει ένα κλείδωμα αφού αποδεσμεύσει μία από τις κλειδαριές του. Έχει 2 φάσεις που αυξάνονται και συρρικνώνονται.
  • Ο αλγόριθμος που βασίζεται στη χρονική σήμανση χρησιμοποιεί μια χρονική σήμανση για σειριοποίηση της εκτέλεσης των ταυτόχρονων συναλλαγών. Το πρωτόκολλο χρησιμοποιεί την ώρα συστήματος ή τη λογική μέτρηση ως χρονική σήμανση.