Έλεγχος Ταυτοχρονισμού: Διαφορά μεταξύ των αναθεωρήσεων

Περιεχόμενο που διαγράφηκε Περιεχόμενο που προστέθηκε
Joannoula (συζήτηση | συνεισφορές)
Χωρίς σύνοψη επεξεργασίας
Γραμμή 3:
==Έλεγχος ταυτοχρονισμού στις Βάσεις Δεδομένων==
 
Ο έλεγχος ταυτοχρονισμού στα [[Σύστημα διαχείρισης βάσης δεδομένων|Συστήματα Διαχείρισης Βάσεων Δεδομένων]] (ΣΔΒΔ), σε άλλα ''Αντικείμενα Συναλλαγής'' (αντικείμενα με καταστάσεις οι οποίες αλλάζουν και προσπελαύνονται από συναλλαγές βάσεων δεδομένων) και συσχετιζόμενες κατανεμημένες εφαρμογές (π.χ. ''Grid Computing'' και ''Cloud Computing'') διασφαλίζει ότι οι συναλλαγές ΒΔ πραγματοποιούνται ταυτόχρονα χωρίς ο ταυτοχρονισμός να παραβιάζει την ακεραιότητα των δεδομένων της βάσης. Μια συναλλαγή στις ΒΔ ορίζεται σαν ένα αντικείμενο το οποίο τηρεί τους [[ACID|κανόνες ACID]] οι οποίοι περιγράφονται πιο κάτω. Ένα ΣΔΒΔ συνήθως εγγυάται ότι πραγματοποιούνται μόνο σειριοποιήσιμα [[Χρονοπρόγραμμα|χρονοπρογράμματα]] για ορθότητα (εκτός αν η σειριοποιησιμότητα αγνοείται σκόπιμα). Για να διατηρείται η ορθότητα σε περίπτωση εσφαλμένων συναλλαγών στα χρονοπρογράμματα πρέπει να είναι ανακτήσιμα (Η ανακτησιμότητα (recoverability) σημαίνει ότι οι δεσμευμένες συναλλαγές δεν έχουν δεδομένα γραμμένα από ακυρωμένες συναλλαγές (και οι συνέπειες τους δεν υπάρχουν στις καταστάσεις της βάσης δεδομένων). Αφού η [[Χρονοπρόγραμμα|σειριοποιησιμότητα]] είναι εκτεθειμένη σκόπιμα σε πολλές εφαρμογές για καλύτερη εφαρμογή (μόνο σε περιπτώσεις όπου η ορθότητα της εφαρμογής δεν επηρεάζεται), εκθέτοντας την ανακτησιμότητα θα παραβιαζόταν η ακεραιότητα της βάσης αλλά και θα εξέθετε τα αποτελέσματα των συναλλαγών.). Ένα ΣΔΒΔ εγγυάται επίσης ότι δεν χάνεται κανένα αποτέλεσμα συναλλαγής η οποία έχει πάρει commit και δεν παραμένει κανένα αποτέλεσμα συναλλαγής στην σχετική βάση δεδομένων η οποία έχει γίνει abort.
 
===Κανόνες ACID===
Γραμμή 30:
* Έλεγχος Ταυτοχρονισμού με Ευρετήρια
 
Ένας κοινός κύριος στόχος του έλεγχου ταυτοχρονισμού είναι να δημιουργούν σειριοποιήσιμα χρονοπρογράμματα. Η σειριοποιησιμότητα θεωρείται το υψηλότερο επίπεδο απομόνωσης μεταξύ συναλλαγών και το μεγαλύτερο κριτήριο ορθότητας για ταυτόχρονες συναλλαγές. Σε μερικές περιπτώσεις πιο απλές μορφές σειριοποιησιμότητας επιτρέπονται για καλύτερη ταχύτητα του συστήματος, αν η ορθότητα της εφαρμογής δεν παραβιάζεται από την απλούστευση. Σχεδόν όλες οι υλοποιημένες τεχνικές ελέγχου ταυτοχρονισμού πετυχαίνουν σειριοποιησιμότητα προσφέροντας σειριοποιησιμότητα συγκρούσεων, μια ειδική περίπτωση σειριοποιησιμότητας (η άλλη περίπτωση είναι η [[Χρονοπρόγραμμα|σειριοποιησιμότητα όψεως]]) η οποία μπορεί να υλοποιηθεί ανάλογα με την περίσταση.
 
Ο έλεγχος ταυτοχρονισμού διασφαλίζει επίσης την ιδιότητα της ανακτησιμότητας των χρονοπρογραμμάτων, για διατήρηση ορθότητας όταν οι συναλλαγές δεχτούν abort (το οποίο μπορεί να συμβεί για διαφορετικούς λόγους).
 
Καθώς τα ΣΔΒΔ γίνονται κατανεμημένα ή συνεργάζονται με κατανεμημένα περιβάλλοντα δημιουργείται η ανάγκη για τεχνικές κατανεμημένου ελέγχου ταυτοχρονισμού. Επιτυγχάνοντας κατανεμημένη σειριοποιησιμότητα και ευρεία [[Χρονοπρόγραμμα|σειριοποιησιμότητα]] προϋποθέτει ειδικές απαιτήσεις οι οποίες τυπικά δεν υιοθετούνται από τοπικές τεχνικές σειριοποιησιμότητας. Η τεχνική [http://en.wikipedia.org/wiki/Commitment_ordering Commitment Ordering] παρέχει μια αποτελεσματική λύση και για τα δυο (ευρεία και κατανεμημένη σειριοποιησιμότητα).
 
==Αναφορές==