Ισχυρή συνέπεια: Όταν χρειάζεται
Ισχυρή συνέπεια είναι ένα μοντέλο στο οποίο όλες οι πράξεις μοιάζουν σαν να εκτελούνται άμεσα και με συνέπεια σε μια ενιαία παγκόσμια τάξη σύμφωνα με τον πραγματικό χρόνο. Ο χρήστης θα διαβάσει την τελευταία επιβεβαιωμένη τιμή και δύο παράλληλοι πελάτες δεν θα ξεπεράσουν λογικά ο ένας τον άλλο.
Η αυστηρή συνέπεια δίνει ένα απλό διανοητικό μοντέλο και προστατεύει τους σκληρούς αναλλοίωτους, αλλά απαιτεί συντονισμό (απαρτίες/ηγέτης), που αυξάνει την καθυστέρηση και την ευαισθησία στα χωρίσματα δικτύου.
1) Όταν η ισχύς είναι υποχρεωτική
Χρηματοδότηση και διακανονισμοί
Ισορροπίες και διαγραφές: Οι «διπλές δαπάνες» είναι απαράδεκτες.
Μεταβιβάσεις και διακανονισμοί: το ίδιο ποσό δεν μπορεί να αποσπαστεί δύο φορές.
Απογραφή και όρια
Εναπομένοντα αγαθά/χώρος ξενοδοχείου/εισιτήρια: δεν μπορείτε να πάτε σε αρνητικές τιμές.
Όρια συναλλαγών ανά μονάδα χρόνου (πιστωτικά όρια, πιστώσεις API).
Μοναδικότητα και ακεραιότητα
Μοναδικές συνδέσεις/ταυτότητες/κανόνες αφαίρεσης.
Αναλλοίωτες σε επίπεδο τομέα: «≥1 γιατρός πρέπει να είναι σε υπηρεσία στο τμήμα», «δεν μπορεί να υπάρχουν> N ενεργά καθήκοντα στην ουρά αναμονής».
Λογιστικός έλεγχος και αμετάβλητα αρχεία καταγραφής
Γεγονότα που χρησιμεύουν ως νομική πηγή αλήθειας: η τάξη και η πληρότητα είναι κρίσιμες.
Εάν η παραβίαση της αναλλοίωτης ενέχει απαράδεκτο επιχειρηματικό κίνδυνο (απώλεια χρημάτων, κυρώσεις, απώλεια εμπιστοσύνης) - επιλέξτε την ισχυρή συνέπεια.
2) Τι ακριβώς είναι «αυστηρό»
Γραμμικότητα (επιχειρησιακό επίπεδο): η ανάγνωση βλέπει την πιο πρόσφατη επιτυχημένη εγγραφή. τηρούνται οι χρόνοι.
Serializable (επίπεδο συναλλαγής): το αποτέλεσμα είναι ισοδύναμο με την εκτέλεση συναλλαγών διαδοχικά (μπορεί να είναι ισχυρή, αλλά μερικές φορές εφαρμόζεται χωρίς σκληρή εντολή σε πραγματικό χρόνο).
Μια σημαντική διαφορά: Η Serializable προστατεύει από τις ανωμαλίες σε επίπεδο συναλλαγής (phantom/write-skew), και η Linearizable προστατεύει από την ενιαία στιγμιαία φύση και σειρά των μεμονωμένων πράξεων. Συχνά χρειάζεστε και τις δύο ιδιότητες (για παράδειγμα, χρήματα στη βάση δεδομένων + αρχείο καταγραφής γεγονότων).
3) Αυστηρότητα τιμών: PACELC και ΚΓΠ
PACELC: Κατά τη διαίρεση ενός δικτύου (P), πρέπει να επιλέξετε C (ακαμψία) ή A (διαθεσιμότητα). Ισχυρό → CP: είναι καλύτερο να αρνείσαι ή να μπλοκάρεις παρά να παραβιάζεις το αμετάβλητο. Όταν δεν υπάρχει διαχωρισμός (EL), πληρώνουμε με L - p95/p99 αυξάνεται σε συντονισμό/απαρτίες.
Πρακτική: ισχυρή για τον «πυρήνα των αναλλοίωτων», γύρω από - γρήγορες προβολές/κρυψώνες με ενδεχόμενο να μην υποφέρει η UX.
4) Πώς επιτυγχάνεται ισχυρή συνοχή
Ηγεσία και απαρτίες
Ο μοναδικός επικεφαλής δέχεται τις εγγραφές. ανάγνωση - στον επικεφαλής ή με απαρτία των αντιγράφων.
Απαρτία 'W' για γραφή και 'R' για ανάγνωση με 'R + W> N' improves τις πιθανότητες ανάγνωσης του «τελευταίου».
Αλγόριθμοι αντιστοίχισης
Raft/Paxos: ημερολόγιο αντιγραφής, επιβεβαιώσεις πλειοψηφίας, όρος/δείκτες.
Συγχρονισμένη αντιγραφή - Η εγγραφή επικυρώνεται μόνο μετά από εμμονή στην απαρτία.
Ώρες και σειρά
True Time/Hybrid Λογικά ρολόγια (HLC): Περιορισμός της μη ευθυγράμμισης του ρολογιού για ασφαλή παγκόσμια σειρά.
Μάρκες/εκδόσεις φράχτη: προστασία από τους «πρωινούς» ηγέτες και τον διαχωρισμό του εγκεφάλου.
Απομόνωση συναλλαγής
Serializable (SI + προκαθορισμένος έλεγχος σύγκρουσης/κλειδώματος): προστασία από φάντασμα/screen-skew.
Strict-serializable: serializability + γραμμικότητα σε σχέση με τον πραγματικό χρόνο.
5) Πολυπεριφέρεια: επιλογές και συμβιβασμοί
Global Leader (CP)
Τα αρχεία διέρχονται από μια ηγετική περιοχή. διαβάζει - τοπικές κρυψώνες/προβολές ή μέσω ενός ηγέτη.
Pros: Απλό μοντέλο. Cons: p95/RTT στον ηγέτη, με P - κλειδαριές ρεκόρ.
Περιφερειακοί επικεφαλής + σύγχρονη απαρτία
γεωγραφικά διευρυμένη απαρτία από διάφορες περιφέρειες· κάθε εγγραφή περιμένει επιβεβαιώσεις> 50%.
Pros: χωρίς ένα μόνο «στενό λαιμό», υψηλή σταθερότητα. Cons: Διηπειρωτική καθυστέρηση.
Γεωγραφική κατανομή
Κατ 'οίκον στοιχεία για την περιφέρεια (ενοικιαστής/δικαιοδοσία)· συνολικές πράξεις - μέσω sagas/συγκεντρωτικών μεγεθών.
Pros: Χαμηλή καθυστέρηση για τοπικές ηχογραφήσεις. Κατά: Όρια προγραμματισμού δεδομένων.
6) Δημιουργία R/W και ανάγνωση
Καταχωρήσεις: «W = πλειοψηφία» είναι το πρότυπο για ισχυρή.
Αναγνώσεις:- «Φρέσκο» - 'R = πλειοψηφία' ή ανάγνωση στον ηγέτη.
- Για να μειωθεί το L - «stale-ok» διαβάζεται από αντίγραφα για δευτερογενείς οθόνες (ρητά σημειωμένο σε UX).
- Ανάγνωση-επισκευή/μίσθωση: βελτιστοποίηση χωρίς απώλεια σοβαρότητας για σύντομες μισθώσεις του επικεφαλής.
7) Επιδόσεις και UX
Καθυστέρηση: Εστίαση στην RTT μεταξύ πελάτη και επικεφαλής/απαρτία (διαπεριφερειακά εκατοντάδες ms).
«write-strong, read-fast» μοτίβο: strong on write + cache/projection on reads, with RYW for author.
Παρτίδες/πακέτα: ομαδικά αρχεία, αλλά προσέξτε για την καθυστέρηση της ουράς.
Περίγραμμα υποβάθμισης: σε ένα περιστατικό - μόνο ανάγνωση, έντιμη κατάσταση, απαγόρευση επικίνδυνων μεταλλάξεων.
8) Παρατηρησιμότητα της αυστηρής διαδρομής
Μετρήσεις
p50/p95/p99 καθυστέρηση: εγγραφή απαρτίας, ανάγνωση απαρτίας, αναγνώσεις ηγεσίας.
Απαρτία επιτυχίας, replays/rollbacks, αλλαγές επικεφαλής.
Υστέρηση αντιγραφής (αναμένεται μικρή, αλλά η παρακολούθηση είναι υποχρεωτική).
Το μερίδιο του «steil» διαβάζει (αν περιλαμβάνεται).
Ανίχνευση
Πεδία: «αποδοχή ηγέτη», «αντιγραφή», «δέσμευση απαρτίας».
: 'ter ,' leader _ i , 'quorum _ size', 'region'.
Καταχωρίσεις
Ανάπτυξη p95/p99, συχνός ηγέτης επανεκλογής, χρονοδιάγραμμα απαρτίας, δείκτες διαχωρισμού εγκεφάλου.
9) Δοκιμασίες και χάος
Jepsen-όπως: χωρίσματα δικτύου, καθυστερήσεις, σταγόνες, ρολόι-skew.
Ανισορροπίες ως προς την ασφάλεια: αδυναμία διπλής δαπάνης/αρνητικών υπολοίπων/διπλής κράτησης.
Ηγεσία: άρνηση ηγέτη, επανεκλογή με φορτίο, φράγματα.
Ανάγνωση συνέπειας: η ανάγνωση αμέσως μετά τη συγγραφή πρέπει να είναι «νέα» (RYW/γραμμική ανάγνωση).
10) Βιβλία παιχνιδιών για περιστατικά
Απώλεια απαρτίας: μετάβαση σε μόνο ανάγνωση, ειδοποίηση πελατών, αποστολή εγγραφής στην περιοχή «home» εάν υπάρχει γεωγραφική κατάτμηση.
Η αύξηση της καθυστέρησης είναι διαπεριφερειακή: προσωρινά μειώνει τον όγκο των αυστηρών εγγραφών (μετάβαση ορισμένων ρευμάτων στην ουρά/προβολές), εντοπίζει την κίνηση.
Leader Flap: Αύξηση του χρόνου των εκλογών, check networks/hour-long drifts/GC pauses.
Split-brain: ενεργοποίηση φρακτών/ελέγχων μίσθωσης, διακοπή των παλαιών ηγετών σε επίπεδο χειριστή.
11) Τυπικά σφάλματα
Ζήτηση Ισχυρή «παντού»: έκρηξη καθυστέρησης και κόστους αντί εστίασης σε αναλλοίωτες.
Προσπαθώντας να είναι CA κάτω από πραγματικές διαιρέσεις: Στο σημείο P, το σύστημα εξακολουθεί να κάνει μια επιλογή, συχνά σιωπηρά.
Διπλή γραφή σε διάφορες περιοχές χωρίς sagas/συντονιστή: φαντάσματα και απώλεια αναλλοίωτων.
Απουσία RYW: ο χρήστης δεν βλέπει την πρόσφατα καταγεγραμμένη οντότητά του - πτώση της εμπιστοσύνης.
Αγνοώντας το ρολόι: Χωρίς όρια HLC/True Time, είναι εύκολο να πάρεις χρόνο «άλματος» και αγώνες.
Δεν υπάρχει σχέδιο υποβάθμισης: σε P, αρχίζουν χαοτικές μερικές αποτυχίες.
12) Ταχείες διορθώσεις (συνταγές)
Πληρωμές/υπόλοιπα: επικεφαλής + απαρτία πλειοψηφίας· αυστηρά σειριακές συναλλαγές σύντομες προθεσμίες, σκληρή αποτυχία σε P.
Κράτηση (καθίσματα/χρονοθυρίδες): εγγραφή-ισχυρή μέσω επικεφαλής, αναγνώσεις - κρύπτη με RYW; Αποθεματικά TTL + TCC.
Global SaaS: γεωγραφική κατάτμηση ανά «ενοικιαστή/περιφέρεια», αυστηρές λειτουργίες στην περιοχή καταγωγής, εκθέσεις/αναζήτηση - μέσω προβλέψεων.
Έλεγχος/ημερολόγιο: μόνο στο παράρτημα CP-log. οι αναγνώσεις μπορούν να αποθηκευτούν, αλλά να επαληθευτούν με σημεία ελέγχου.
13) Κατάλογος ελέγχου πριν από την πώληση
- Αμετάβλητα που απαιτούν ισχυρή γράφτηκαν. το υπόλοιπο είναι σε AP/προβολή.
- Επιλογή ενιαίου ηγέτη/διαπεριφερειακής απαρτίας/γεωγραφικής κατάτμησης.
- Διαμορφωμένη "W = πλειοψηφία", "R = ηγετική" πλειοψηφία "για κρίσιμες διαδρομές.
- RYW/μονοτονική που παρέχεται για UX· αναφέρεται ρητά η ένδειξη «stale-ok».
- Περιλαμβάνονται μετρήσεις απαρτίας, υστέρησης, καθυστέρησης· προειδοποιήσεις σχετικά με το p95/p99 και επανεκλογή.
- Υπάρχει ένα σχέδιο υποβάθμισης: μόνο ανάγνωση, απενεργοποίηση επικίνδυνων μεταλλάξεων, ουρές για «μετά την καταιγίδα».
- Δοκιμές χάους: διαιρέσεις, ρολόι, βλάβη του οδηγού. Ελέγχθηκαν οι αναλλοίωτες όσον αφορά την ασφάλεια.
- Τεκμηρίωση σύμβασης: τι είναι αυστηρό, τι «μπορεί να είναι πίσω», επικοινωνία για προϊόν/υποστήριξη.
Συμπέρασμα
Η ισχυρή συνέπεια είναι ένα εργαλείο για την προστασία της αλήθειας όπου το σφάλμα είναι απαράδεκτο. Εφαρμόστε το σημείο γύρω από τις σκληρές αναλλοίωτες, πληρώνοντας συνειδητά για το συντονισμό με την καθυστέρηση και τη διαθεσιμότητα στις καταιγίδες. Συνδυασμός: CP-πυρήνας για κρίσιμη, ανάγνωση AP και προβολή για ταχύτητα. Με τη σωστή τηλεμετρία, την υποβάθμιση και τις δοκιμές, θα διατηρήσετε τόσο την ορθότητα όσο και την εμπειρία του χρήστη.