Πίνακας περιεχομένων:
- Αυτή η βάση δεδομένων έχει εγκαταστάσεις για να σας εμποδίσει να καταστρέψετε ή να χάσετε δεδομένα,
- Για να διασφαλιστεί ότι κάθε πελάτης βλέπει όλες τις ενημερώσεις (δηλαδή, έχουν μια συνεπή προβολή των δεδομένων), πρέπει να κλειδώσει η εγγραφή στον κύριο κόμβο που κρατάει τα δεδομένα, μέχρι να είναι ενημερωμένα όλα τα αντίγραφα ανάγνωσης. Αυτό ονομάζεται
- Ορισμένες βάσεις δεδομένων του NoSQL έχουν συμμόρφωση με το ACID στον χάρτη πορείας τους, παρόλο που υποστηρίζουν την BASE, η οποία δείχνει πόσο συναφείς εγγυήσεις ACID είναι σε συστήματα
Βίντεο: Zeitgeist: Addendum 2025
Η ιδιότητα της συνέπειας μιας βάσης δεδομένων σημαίνει ότι όταν τα δεδομένα έχουν γραφτεί επιτυχώς σε μια βάση δεδομένων, τα ερωτήματα που ακολουθούν μπορούν να έχουν πρόσβαση στα δεδομένα και να έχουν μια συνεπή προβολή των δεδομένων. Στην πράξη, αυτό σημαίνει ότι αν γράψετε μια εγγραφή σε μια βάση δεδομένων και στη συνέχεια ζητήσετε αμέσως αυτό το αρχείο, είστε σίγουροι ότι θα το δείτε. Είναι ιδιαίτερα χρήσιμο για πράγματα όπως οι παραγγελίες του Amazon και οι τραπεζικές μεταφορές.
Η συνοχή είναι μια κλίμακα ολίσθησης, όμως, και ένα θέμα πολύ βαθύ για να καλύψει εδώ. Εντούτοις, στον κόσμο NoSQL, η συνοχή εμπίπτει γενικά σε ένα από τα δύο στρατόπεδα:
-
ACID Consistency (ACID σημαίνει Ατομικότητα, Συνάφεια, Απομόνωση, Ανθεκτικότητα): ACID σημαίνει ότι από τη στιγμή που γράφονται τα δεδομένα, διαβάζει.
-
Eventual Consistency (BASE): Η BASE σημαίνει ότι μόλις δημιουργηθούν τα δεδομένα, θα εμφανιστούν τελικά για ανάγνωση.
Μία μάχη έσπασε ανάμεσα σε ανθρώπους που πιστεύουν ότι δεν υπάρχει ισχυρή συνέπεια σε μια βάση δεδομένων και όσοι πιστεύουν ότι είναι απολύτως απαραίτητο (μεταφράστε ανθρώπους σε εταιρείες NoSQL «τμήματα μάρκετινγκ! ).
Η πραγματικότητα είναι κάπου ενδιάμεσα. Έχει σημασία το γεγονός ότι η δημοσίευση ενός ατόμου στο Facebook δεν φαίνεται από όλους τους φίλους του για πέντε λεπτά; Όχι, πιθανώς όχι. Αλλαγή του "Facebook post" σε "δισεκατομμύρια δολάρια-χρηματοοικονομική συναλλαγή", όμως, και η στάση σας αλλάζει γρήγορα! Ποια προσέγγιση συνεκτικότητας επιλέγετε εξαρτάται από την κατάσταση. Από την εμπειρία μου, ωστόσο, η ισχυρή συνοχή είναι πάντα η επιλογή σε καταστάσεις κρίσιμης σημασίας για το επιχειρησιακό σύστημα.
Αυτή η βάση δεδομένων έχει εγκαταστάσεις για να σας εμποδίσει να καταστρέψετε ή να χάσετε δεδομένα,
" που δεν είναι δεδομένη για όλες τις βάσεις δεδομένων. Στην πραγματικότητα, η συντριπτική πλειοψηφία των βάσεων δεδομένων NoSQL δεν παρέχουν εγγυήσεις ACID. Τα Foundation DB, MarkLogic και Neo4j είναι αξιοσημείωτες εξαιρέσεις. Ορισμένες βάσεις δεδομένων NoSQL παρέχουν εγγύηση χαμηλότερης ποιότητας που ονομάζεται Έλεγχος και ρύθμιση
που επαληθεύει εάν κάποιος άλλος έχει τροποποιήσει ένα έγγραφο πριν επιτρέψει την ολοκλήρωση μιας συναλλαγής. Αυτή η συμπεριφορά είναι συνήθως περιορισμένη επειδή τείνει να εφαρμοστεί σε μια βάση δεδομένων. Το MongoDB είναι μια αξιοσημείωτη βάση δεδομένων που παρέχει δυνατότητες Έλεγχος και Ρύθμιση. Με το MongoDB, μπορεί να κλειδωθεί ολόκληρη η αξία δεδομένων κατά τη διάρκεια μιας ενημέρωσης, εμποδίζοντας έτσι όλες τις λειτουργίες ανάγνωσης και εγγραφής μέχρι να ολοκληρωθεί η διαδικασία.Ωστόσο, η εταιρεία προσπαθεί να καταργήσει αυτόν τον περιορισμό. ΒΑΣΗ
ΒΑΣΗ σημαίνει ότι αντί να παράσχει εγγυήσεις ACID, η βάση δεδομένων έχει μια συντονισμένη ισορροπία συνεκτικότητας και διαθεσιμότητας δεδομένων. Αυτό συμβαίνει συνήθως όταν οι κόμβοι σε ένα δεδομένο σύμπλεγμα βάσεων δεδομένων λειτουργούν ως κύριοι διαχειριστές ενός τμήματος της βάσης δεδομένων και άλλοι κόμβοι διατηρούν αντίγραφα μόνο για ανάγνωση.
Για να διασφαλιστεί ότι κάθε πελάτης βλέπει όλες τις ενημερώσεις (δηλαδή, έχουν μια συνεπή προβολή των δεδομένων), πρέπει να κλειδώσει η εγγραφή στον κύριο κόμβο που κρατάει τα δεδομένα, μέχρι να είναι ενημερωμένα όλα τα αντίγραφα ανάγνωσης. Αυτό ονομάζεται
δύο
- δέσμευση φάσης - η αλλαγή γίνεται τοπικά αλλά εφαρμόζεται και επιβεβαιώνεται στον πελάτη μόνο όταν ενημερώνονται όλοι οι άλλοι κόμβοι. Η BASE χαλαρώνει αυτή την απαίτηση, απαιτώντας την ανανέωση μόνο ενός υποσυνόλου των κόμβων που κατέχουν τα ίδια δεδομένα για να πετύχει η συναλλαγή. Κάποτε μετά τη δέσμευση της συναλλαγής, ενημερώνεται το αντίγραφο μόνο για ανάγνωση. Το πλεονέκτημα αυτής της προσέγγισης είναι ότι οι συναλλαγές γίνονται πιο γρήγορα. Έχοντας αναγνώσιμα ζωντανά αντίγραφα σημαίνει επίσης ότι μπορείτε να διαδώσετε το φορτίο ανάγνωσης των δεδομένων σας, καθιστώντας την ανάγνωση πιο γρήγορη.
Το μειονέκτημα είναι ότι οι πελάτες που συνδέονται σε μερικά από τα αναγνωσμένα αντίγραφα μπορεί να βλέπουν μη ενημερωμένες πληροφορίες για μια απροσδιόριστη χρονική περίοδο. Σε μερικά σενάρια, αυτή η κατάσταση είναι καλή. Εάν δημοσιεύσετε ένα νέο μήνυμα στο Facebook και κάποιοι φίλοι σας δεν το βλέπουν για μερικά λεπτά, δεν είναι τεράστια απώλεια. Αν όμως στείλετε μια εντολή πληρωμής στην τράπεζά σας, ίσως θέλετε μια άμεση συναλλαγή.
Μια εναλλακτική προσέγγιση σε αντίγραφα μόνο για ανάγνωση είναι να υπάρχει ένα σύμπλεγμα
κοινόχρηστο
- τίποτα στο οποίο μόνο ένας κόμβος σε ένα σύμπλεγμα εξυπηρετεί πάντα ένα συγκεκριμένο τμήμα της βάσης δεδομένων. Κοινόχρηστο-τίποτα δεν σημαίνει ότι χάνετε την αναπαραγωγή, όμως. Οι βάσεις δεδομένων που χρησιμοποιούν αυτήν τη μέθοδο τυπικά επαναλαμβάνουν τα δεδομένα τους σε δευτερεύουσα περιοχή σε άλλο πρωτεύοντα κόμβο ή κόμβους - αλλά μόνο ένας κόμβος είναι ο κύριος σταθμός για ανάγνωση και εγγραφή ανά πάσα στιγμή. Τα συμπλέγματα Shared-nothing έχουν το πλεονέκτημα ενός απλού μοντέλου συνέπειας, αλλά απαιτούν μια αμφίδρομη δέσμευση για αντιγραφή. Το γεγονός αυτό σημαίνει ότι η συναλλαγή κλειδώνει ενώ όλα τα αντίγραφα ενημερώνονται. (Η εσωτερική κλειδαριά και το κλείδωμα για άλλους κόμβους σας δίνει δύο φάσεις.)
Αυτό συνήθως έχει μικρότερο αντίκτυπο από τα κοινόχρηστα clusters δεδομένων με αντίγραφα μόνο για ανάγνωση, ωστόσο, επειδή οι περιοχές δεδομένων μη επεξεργασμένης αλληλογραφίας δεν λαμβάνουν αιτήσεις ανάγνωσης για αυτό μέρος της βάσης δεδομένων. Επομένως, οι δεσμεύσεις δύο φάσεων είναι ταχύτερες σε ένα κοινόχρηστο σύμπλεγμα από ό, τι σε ένα σύμπλεγμα με αναγνώσιμα αντίγραφα.
Επιλέγοντας ACID ή BASE;
Όπως μπορείτε να περιμένετε, ένα μεγάλο μέρος του επιχειρήματος είναι επειδή οι πωλητές του NoSQL μπορούν να διαφοροποιηθούν από τους ανταγωνιστές τους υποστηρίζοντας μια διαφορετική και μοναδική προσέγγιση. Είναι ενδιαφέρον να σημειωθεί, ωστόσο, ο αριθμός των πωλητών NoSQL με συμμόρφωση με το ACID στον χάρτη πορείας τους.
Ορισμένες βάσεις δεδομένων του NoSQL έχουν συμμόρφωση με το ACID στον χάρτη πορείας τους, παρόλο που υποστηρίζουν την BASE, η οποία δείχνει πόσο συναφείς εγγυήσεις ACID είναι σε συστήματα
επιχειρήσεων, αποστολών
- κρίσιμων . Πολλές εταιρείες χρησιμοποιούν προϊόντα BASE-consistency όταν δοκιμάζουν ιδέες επειδή είναι ελεύθερα αλλά στη συνέχεια μεταναστεύουν σε μια βάση πληρωμής συμβατή με το ACID όταν θέλουν να ζήσουν σε ένα κρίσιμο για την αποστολή σύστημα. Ο ευκολότερος τρόπος για να αποφασίσετε αν χρειάζεστε το ACID είναι να εξετάσετε τις αλληλεπιδράσεις που έχουν οι άνθρωποι και τα άλλα συστήματα με τα δεδομένα σας. Για παράδειγμα, αν προσθέτετε ή ενημερώνετε δεδομένα, είναι σημαντικό το επόμενο ερώτημα να είναι σε θέση να δει την αλλαγή; Με άλλα λόγια, είναι σημαντικές αποφάσεις που κρέμονται από την τρέχουσα κατάσταση της βάσης δεδομένων; Θα βλέπατε ελαφρώς παρωχημένα δεδομένα που σημαίνει ότι αυτές οι αποφάσεις θα μπορούσαν να έχουν θιγεί ανεπανόρθωτα;
Στις χρηματοπιστωτικές υπηρεσίες, η ανάγκη συνοχής είναι προφανής. Σκεφτείτε τους εμπόρους που αγοράζουν μετοχές. Πρέπει να ελέγξουν το ταμειακό υπόλοιπο πριν από τη διαπραγμάτευση για να εξασφαλίσουν ότι έχουν τα χρήματα για να καλύψουν το εμπόριο. Εάν δεν δουν τη σωστή ισορροπία, θα αποφασίσουν να ξοδέψουν χρήματα για μια άλλη συναλλαγή. Εάν η βάση δεδομένων στην οποία υποβάλλουν ερωτήματα είναι τελικά μόνο συνεπής, μπορεί να μην βλέπουν έλλειψη επαρκών κεφαλαίων, εκθέτοντας έτσι την οργάνωσή τους σε οικονομικό κίνδυνο.
Παρόμοιες περιπτώσεις μπορούν να κατασκευαστούν για το ACID σε σχέση με την BASE στον τομέα της υγειονομικής περίθαλψης, της άμυνας, των πληροφοριών και άλλων τομέων. Όλοι βράζουν προς τα δεδομένα, όμως, και τη σημασία της επικαιρότητας και της ασφάλειας των δεδομένων.