Βίντεο: The Evidence For Evolution Made Easy 2024
Ένα χαρακτηριστικό γνώρισμα συστημάτων σχεσιακής βάσης δεδομένων είναι κάτι που είναι γνωστό ως συμμόρφωση με το οξύ. Όπως ίσως φανταστείτε, το ACID είναι ένα ακρωνύμιο - τα μεμονωμένα γράμματα που προορίζονται να περιγράψουν ένα χαρακτηριστικό των συναλλαγών μεμονωμένων βάσεων δεδομένων, μπορούν να επεκταθούν όπως περιγράφεται σε αυτόν τον κατάλογο:
-
Ατομικότητα: επιτυχία ή αποτυχία. Μερική επιτυχία δεν επιτρέπεται.
-
Συνέπεια: Κατά τη διάρκεια της συναλλαγής βάσης δεδομένων, το RDBMS εξελίσσεται από μια έγκυρη κατάσταση στην άλλη. Το κράτος δεν είναι ποτέ άκυρο.
-
Απομόνωση: Η συναλλαγή της βάσης δεδομένων του πελάτη πρέπει να γίνεται μεμονωμένα από άλλους πελάτες που επιχειρούν να πραγματοποιήσουν συναλλαγές με το RDBMS.
-
Ανθεκτικότητα: Η λειτουργία δεδομένων που ήταν μέρος της συναλλαγής πρέπει να αντικατοπτρίζεται σε μη πτητική αποθήκευση (μνήμη υπολογιστή που μπορεί να ανακτήσει αποθηκευμένες πληροφορίες ακόμα και όταν δεν τροφοδοτείται - όπως ένας σκληρός δίσκος) η συναλλαγή ολοκληρώνεται με επιτυχία. Οι αποτυχίες συναλλαγών δεν μπορούν να αφήσουν τα δεδομένα σε κατάσταση μερικής δέσμευσης.
Ορισμένες περιπτώσεις χρήσης για RDBMS, όπως η επεξεργασία ηλεκτρονικών συναλλαγών, εξαρτώνται από συναλλαγές συμβατές με το ACID μεταξύ του πελάτη και του RDBMS για να λειτουργήσει σωστά το σύστημα. Ένα καλό παράδειγμα μιας συναλλαγής συμβατής με το ACID είναι η μεταφορά χρημάτων από έναν τραπεζικό λογαριασμό σε έναν άλλο.
Αυτό χωρίζεται σε δύο συναλλαγές βάσης δεδομένων, όπου ο αρχικός λογαριασμός εμφανίζει μια απόσυρση και ο λογαριασμός προορισμού εμφανίζει μια κατάθεση. Είναι προφανές ότι οι δύο αυτές συναλλαγές πρέπει να συνδεθούν ώστε να είναι έγκυρες, έτσι ώστε σε περίπτωση αποτυχίας, η όλη διαδικασία δεν πρέπει να εξασφαλίσει ότι και τα δύο υπόλοιπα παραμένουν έγκυρα.
κάνουν αντικατοπτρίζουν τις ιδιότητες που βλέπετε συχνά σε καταστήματα δεδομένων NoSQL, επομένως υπάρχει κάποιο προηγούμενο στην προσέγγιση Hadoop. Μια βασική ιδέα πίσω από τα καταστήματα δεδομένων NoSQL είναι ότι δεν είναι όλες οι εφαρμογές που χρειάζονται πραγματικά ACID συμβατές συναλλαγές. Η χαλάρωση σε ορισμένες ιδιότητες του ACID (και η απομάκρυνση από το σχεσιακό μοντέλο) άνοιξε πληθώρα δυνατοτήτων, οι οποίες επέτρεψαν σε ορισμένα καταστήματα δεδομένων NoSQL να επιτύχουν μαζική επεκτασιμότητα και απόδοση για τις εξειδικευμένες εφαρμογές τους.Ενώ το ACID ορίζει τα βασικά χαρακτηριστικά που απαιτούνται για την αξιόπιστη επεξεργασία συναλλαγών, ο κόσμος NoSQL απαιτεί διαφορετικά χαρακτηριστικά για να επιτρέψει την ευελιξία και την επεκτασιμότητα.Αυτά τα αντικρουόμενα χαρακτηριστικά συλλαμβάνονται έξυπνα στο ακρωνύμιο BASE:
B
-
asical A vilable: Το σύστημα είναι εγγυημένο ότι είναι διαθέσιμο για ερωτήματα από όλους τους χρήστες. (Δεν υπάρχει απομόνωση εδώ) S
-
oft State: Οι τιμές που αποθηκεύονται στο σύστημα ενδέχεται να αλλάξουν λόγω του τελικού μοντέλου συνέπειας, όπως περιγράφεται στην επόμενη κουκκίδα. E
-
επιφανειακά Συνεχής: Δεδομένου ότι τα δεδομένα προστίθενται στο σύστημα, η κατάσταση του συστήματος επαναλαμβάνεται σταδιακά σε όλους τους κόμβους. Για παράδειγμα, στο Hadoop, όταν ένα αρχείο γράφεται στο HDFS, τα αντίγραφα των μπλοκ δεδομένων δημιουργούνται σε διάφορους κόμβους δεδομένων μετά την εγγραφή των αρχικών μπλοκ δεδομένων. Για την σύντομη περίοδο πριν από την αναπαραγωγή των μπλοκ, η κατάσταση του συστήματος αρχείων δεν είναι συνεπής. Το βασικό αρκτικόλεξο BASE είναι κάπως σχεδιασμένο, καθώς τα περισσότερα καταστήματα δεδομένων NoSQL δεν εγκαταλείπουν εντελώς τα χαρακτηριστικά
όλα τα - δεν είναι στην πραγματικότητα η πολική αντίθετη ιδέα που υπονοεί το όνομα, με άλλα λόγια. Επίσης, τα χαρακτηριστικά μαλακής κατάστασης και τελικά συνάφειας αντιστοιχούν στο ίδιο πράγμα, αλλά το θέμα είναι ότι με τη χαλάρωση της συνέπειας, το σύστημα μπορεί να οριζόντια κλίμακα (πολλοί κόμβοι) και να διασφαλίσει τη διαθεσιμότητα. Η συζήτηση για το NoSQL θα ήταν πλήρης χωρίς να αναφερθεί το θεώρημα της ΚΓΠ, το οποίο αντιπροσωπεύει τα τρία είδη εγγυήσεων που οι αρχιτέκτονες σκοπεύουν να παρέχουν στα συστήματά τους:
Συνέπεια:
-
Παρόμοια με το C στο ACID, όλοι οι κόμβοι το σύστημα θα έχει την ίδια άποψη των δεδομένων ανά πάσα στιγμή. Διαθεσιμότητα:
-
Το σύστημα ανταποκρίνεται πάντα στις αιτήσεις. Ανοχή διαμερισμάτων:
-
Το σύστημα παραμένει συνδεδεμένο εάν προκύψουν προβλήματα δικτύου μεταξύ κόμβων του συστήματος. Το θεώρημα CAP αναφέρει ότι σε κατανεμημένα δικτυωμένα συστήματα, οι αρχιτέκτονες πρέπει να επιλέξουν δύο από αυτές τις τρεις εγγυήσεις - δεν μπορείτε να υποσχεθείτε στους χρήστες σας και τα τρία. Αυτό σας αφήνει τις τρεις δυνατότητες που εμφανίζονται:
Τα συστήματα που χρησιμοποιούν παραδοσιακές σχεσιακές τεχνολογίες
-
κανονικά δεν είναι ανεκτά σε διαμερίσματα, έτσι ώστε να εγγυώνται συνέπεια και διαθεσιμότητα. Εν ολίγοις, εάν ένα μέρος αυτών των παραδοσιακών συστημάτων σχεσιακών τεχνολογιών είναι εκτός σύνδεσης, ολόκληρο το σύστημα είναι εκτός σύνδεσης. Τα συστήματα όπου η ανοχή διαχωρισμού και η διαθεσιμότητα είναι πρωταρχικής σημασίας
-
δεν μπορούν να εγγυηθούν συνέπεια, επειδή μπορούν να γίνουν ενημερώσεις (ότι καταστροφέας της συνέπειας) σε κάθε πλευρά του διαμερίσματος. Τα αποθηκευτικά κλειδιά αξίας Dynamo και CouchDB και το κατάστημα Cassandra της οικογένειας-στήλης είναι δημοφιλείς παραδείγματα συστημάτων ανεκτικής διανομής / διαθεσιμότητας (PA). Τα συστήματα όπου η ανοχή διαχωρισμού και η συνέπεια είναι πρωταρχικής σημασίας
-
δεν μπορούν να εγγυηθούν τη διαθεσιμότητα, επειδή τα συστήματα επιστρέφουν σφάλματα μέχρι να επιλυθεί η κατακερματισμένη κατάσταση. Τα αποθηκευμένα δεδομένα Hadoop θεωρούνται συστήματα CP (c ανθεκτικά και p ανθεκτικά στην τέχνη). Με τα δεδομένα που αποθηκεύονται περιττή σε πολλούς κόμβους υποτελών, μπορούν να γίνουν ανεκτές διακοπές σε μεγάλα τμήματα (διαμερίσματα) ενός cluster Hadoop. Ο Hadoop θεωρείται συνεπής επειδή έχει ένα κεντρικό κατάστημα μεταδεδομένων (το όνομαNode) το οποίο διατηρεί μια ενιαία, συνεπή προβολή των δεδομένων που είναι αποθηκευμένα στο σύμπλεγμα.