* Ταυτόχρονη πρόσβαση: Πολλαπλές οντότητες (χρήστες, συναλλαγές, διαδικασίες, νήματα) αλληλεπιδρούν με τα ίδια δεδομένα περίπου την ίδια στιγμή.
* κοινόχρηστα δεδομένα: Τα δεδομένα που έχουν πρόσβαση μοιράζονται μεταξύ αυτών των πολλαπλών οντοτήτων. Αυτά τα δεδομένα θα μπορούσαν να διαμένουν σε μια βάση δεδομένων, ένα αρχείο, μνήμη ή οποιοδήποτε άλλο κοινόχρηστο χώρο.
* Δυναμικό για συγκρούσεις: Η πρωταρχική ανησυχία για τη συνάφεια είναι η πιθανότητα συγκρούσεων. Αυτές οι συγκρούσεις προκύπτουν όταν πολλαπλές οντότητες προσπαθούν να τροποποιήσουν ταυτόχρονα τα ίδια δεδομένα. Αυτό μπορεί να οδηγήσει σε ασυνεπή, λανθασμένα ή απρόβλεπτα αποτελέσματα. Το κλασικό παράδειγμα είναι το πρόβλημα "Lost Update" όπου μια ενημέρωση αντικαθιστά ένα άλλο.
Τύποι μηχανισμών ελέγχου ταυτόχρονα:
Χρησιμοποιούνται διάφορες τεχνικές για τη διαχείριση και την επίλυση ζητημάτων ταυτόχρονης, όπως:
* Κλείδωμα: Αυτή είναι μια κοινή προσέγγιση όπου μια οντότητα αποκτά μια κλειδαριά στα δεδομένα πριν από την πρόσβαση σε αυτήν, εμποδίζοντας άλλες οντότητες να την τροποποιήσουν μέχρι να απελευθερωθεί η κλειδαριά. Υπάρχουν διαφορετικοί μηχανισμοί ασφάλισης, όπως αποκλειστικές κλειδαριές (μόνο μία οντότητα που μπορεί να έχει πρόσβαση), κοινόχρηστες κλειδαριές (πολλαπλές οντότητες μπορούν να διαβάσουν αλλά να μην γράφουν) και διάφορες κοκκοποιήσεις κλειδώματος (επίπεδο σε επίπεδο, επίπεδο σελίδας, σε επίπεδο πίνακα).
* αισιόδοξος έλεγχος ταυτόχρονα (OCC): Αυτή η προσέγγιση προϋποθέτει ότι οι συγκρούσεις είναι σπάνιες. Μια οντότητα διαβάζει τα δεδομένα, κάνει αλλαγές και στη συνέχεια ελέγχει πριν από τη διάπραξη των αλλαγών εάν τα δεδομένα έχουν τροποποιηθεί από μια άλλη οντότητα. Εάν ανιχνευθεί μια σύγκρουση, η συναλλαγή έχει επαναληφθεί.
* απαισιόδοξος έλεγχος ταυτόχρονα (PCC): Αυτή η προσέγγιση προϋποθέτει ότι οι συγκρούσεις είναι συχνές. Χρησιμοποιεί επιθετικά μηχανισμούς κλειδώματος για να αποτρέψει την εμφάνιση συγκρούσεων στην πρώτη θέση.
* έκδοση: Κάθε έκδοση των δεδομένων παρακολουθείται, επιτρέποντας σε πολλούς χρήστες να εργάζονται ταυτόχρονα τα ίδια δεδομένα χωρίς να παρεμβαίνουν άμεσα μεταξύ τους. Οι συγκρούσεις επιλύονται συγχωνεύοντας ή επιλέγοντας την κατάλληλη έκδοση.
* timestamping: Κάθε συναλλαγή έχει εκχωρηθεί μια χρονική σήμανση και το σύστημα διασφαλίζει ότι οι συναλλαγές υποβάλλονται σε επεξεργασία με σειρά χρονομέτρησης, αποτρέποντας τις συγκρούσεις.
Συνέπειες του κακού ελέγχου ταυτόχρονης:
* Δεδομένα ασυνέπεια: Τα δεδομένα καθίστανται αλλοιωμένα ή αναξιόπιστα λόγω των αντικρουόμενων ενημερώσεων.
* χαμένες ενημερώσεις: Μια ενημέρωση αντικαθιστά ένα άλλο, με αποτέλεσμα την απώλεια δεδομένων.
* Dirty Reads: Μια συναλλαγή διαβάζει δεδομένα που έχουν τροποποιηθεί από άλλη συναλλαγή, αλλά δεν έχουν ακόμη δεσμευτεί.
* Μη επαναλαμβανόμενες αναγνώσεις: Μια συναλλαγή διαβάζει τα ίδια δεδομένα πολλές φορές, αλλά τα δεδομένα έχουν αλλάξει με άλλη συναλλαγή μεταξύ των αναγνώσεων.
* Phantom διαβάζει: Μια συναλλαγή εκτελεί ένα ερώτημα δύο φορές και το δεύτερο ερώτημα επιστρέφει επιπλέον σειρές που προστέθηκαν από μια άλλη συναλλαγή μεταξύ των δύο ερωτημάτων.
Συνοπτικά, η ταυτότητα των δεδομένων είναι μια κρίσιμη πτυχή της ανάπτυξης λογισμικού, ειδικά σε συστήματα με πολλούς χρήστες ή διαδικασίες που έχουν πρόσβαση σε κοινούς πόρους. Η εφαρμογή των σωστών μηχανισμών ελέγχου ταυτόχρονα είναι απαραίτητη για την εξασφάλιση της ακεραιότητας των δεδομένων και της αξιοπιστίας των εφαρμογών.
Πνευματικά δικαιώματα © Γνώση Υπολογιστών Όλα τα δικαιώματα κατοχυρωμένα