Συστήματα συγκομιδής, απόδοσης και επεκτάσιμης ανοχής: Μια σύνοψη

Αυτό το άρθρο παρουσιάζει μια σύνοψη της εργασίας «Harvest, Yield and Scalable Tolerant Systems» που εκδόθηκε από τους Eric Brewer & Amando Fox το 1999. Όλες οι αναφορές που δεν έχουν αποδοθεί προέρχονται από αυτό το άρθρο.

Το έγγραφο ασχολείται με τις αντισταθμίσεις μεταξύ συνοχής και διαθεσιμότητας (CAP) για μεγάλα συστήματα. Είναι πολύ εύκολο να επισημάνετε την ΚΓΠ και να υποστηρίξετε ότι κανένα σύστημα δεν μπορεί να έχει συνέπεια και διαθεσιμότητα.

Όμως, υπάρχει μια παγίδα. Η ΚΓΠ έχει παρεξηγηθεί με διάφορους τρόπους. Όπως εξηγεί ο Coda Hale στην εξαιρετική του ανάρτηση στο blog «Δεν μπορείτε να θυσιάσετε την ανοχή κατάτμησης»:

Από τη συνοχή, τη διαθεσιμότητα και την ανοχή διαμερισμάτων του θεώματος της ΚΓΠ, η ανοχή διαμερισμάτων είναι υποχρεωτική σε κατανεμημένα συστήματα. Δεν μπορείτε να το επιλέξετε. Αντί για την ΚΓΠ, θα πρέπει να σκεφτείτε τη διαθεσιμότητά σας όσον αφορά την απόδοση (τοις εκατό των αιτημάτων που απαντήθηκαν με επιτυχία) και τη συλλογή (τοις εκατό των απαιτούμενων δεδομένων που περιλαμβάνονται πραγματικά στις απαντήσεις) και ποια από αυτά τα δύο θα σας θυσιάσει το σύστημά σας όταν συμβούν αποτυχίες.

Η εργασία επικεντρώνεται στην αύξηση της διαθεσιμότητας συστημάτων μεγάλης κλίμακας με ανοχή σφαλμάτων, περιορισμό και απομόνωση:

Υποθέτουμε ότι οι πελάτες κάνουν ερωτήματα σε διακομιστές, οπότε υπάρχουν τουλάχιστον δύο μετρήσεις για τη σωστή συμπεριφορά: απόδοση, η οποία είναι η πιθανότητα ολοκλήρωσης ενός αιτήματος και συγκομιδή, η οποία μετρά το κλάσμα των δεδομένων που αντικατοπτρίζονται στην απόκριση, δηλαδή πληρότητα της απάντησης στο ερώτημα.

Οι δύο μετρήσεις, η συγκομιδή και η απόδοση μπορούν να συνοψιστούν ως εξής:

  • Συγκομιδή : δεδομένα σε απόκριση / συνολικά δεδομένα

    Για παράδειγμα: Εάν ένας από τους κόμβους είναι κάτω σε ένα σύμπλεγμα 100 κόμβων, η συγκομιδή είναι 99% για τη διάρκεια του σφάλματος.

  • Απόδοση : αιτήματα ολοκληρώθηκαν με επιτυχία / συνολικός αριθμός αιτημάτων

    Σημείωση: Η απόδοση διαφέρει από το χρόνο λειτουργίας. Η απόδοση ασχολείται με τον αριθμό των αιτημάτων, όχι μόνο με το χρόνο που το σύστημα δεν μπόρεσε να ανταποκριθεί σε αιτήματα.

Το άρθρο υποστηρίζει ότι υπάρχουν ορισμένα συστήματα που απαιτούν τέλειες απαντήσεις σε ερωτήματα κάθε φορά. Επίσης, υπάρχουν συστήματα που μπορούν να ανεχθούν τις ατελείς απαντήσεις μερικές φορές.

Για να αυξήσουμε τη συνολική διαθεσιμότητα των συστημάτων μας, πρέπει να εξετάσουμε προσεκτικά την απαιτούμενη συνοχή και εγγυήσεις διαθεσιμότητας που πρέπει να παρέχει.

Trading Harvest for Yield - Πιθανοτική διαθεσιμότητα

Σχεδόν όλα τα συστήματα είναι πιθανά είτε το συνειδητοποιούν είτε όχι. Συγκεκριμένα, κάθε σύστημα που είναι 100% διαθέσιμο με μεμονωμένα σφάλματα είναι πιθανότατα διαθέσιμο συνολικά (καθώς υπάρχει μη μηδενική πιθανότητα πολλαπλών βλαβών)

Η εφημερίδα μιλά για την κατανόηση της πιθανοτικής φύσης της διαθεσιμότητας. Αυτό βοηθά στην κατανόηση και τον περιορισμό του αντίκτυπου των σφαλμάτων λαμβάνοντας αποφάσεις σχετικά με το τι πρέπει να είναι διαθέσιμο και τι είδους σφάλματα μπορεί να αντιμετωπίσει το σύστημα.

Περιγράφουν τη γραμμική αποδόμηση της συγκομιδής σε περίπτωση βλαβών πολλαπλών κόμβων. Η συγκομιδή είναι άμεσα ανάλογη με τον αριθμό των κόμβων που λειτουργούν σωστά. Επομένως, μειώνεται / αυξάνεται γραμμικά.

Προτείνονται δύο στρατηγικές για την αύξηση της απόδοσης:

  1. Τυχαία κατανομή δεδομένων στους κόμβους

    Εάν ένας από τους κόμβους πέσει κάτω, η συμπεριφορά σφάλματος μέσης και χειρότερης περίπτωσης δεν αλλάζει. Ωστόσο, εάν η διανομή δεν είναι τυχαία, τότε ανάλογα με τον τύπο των δεδομένων, ο αντίκτυπος ενός σφάλματος μπορεί να διαφέρει.

    Για παράδειγμα, εάν μόνο ένας από τους κόμβους που έχουν αποθηκευτεί πληροφορίες που σχετίζονται με το υπόλοιπο του λογαριασμού ενός χρήστη μειωθεί, ολόκληρο το τραπεζικό σύστημα δεν θα μπορεί να λειτουργήσει.

  2. Αντιγραφή των πιο σημαντικών δεδομένων

    Αυτό μειώνει τον αντίκτυπο σε περίπτωση που ένας από τους κόμβους που περιέχουν ένα υποσύνολο δεδομένων υψηλής προτεραιότητας πέσει.

    Βελτιώνει επίσης τη συγκομιδή.

Μια άλλη αξιοσημείωτη παρατήρηση που έγινε στο έγγραφο είναι ότι είναι δυνατόν να αναπαραγάγετε όλα τα δεδομένα σας. Δεν κάνει πολλά για να βελτιώσει τη συγκομιδή / απόδοση σας, αλλά αυξάνει σημαντικά το κόστος λειτουργίας. Αυτό συμβαίνει επειδή το Διαδίκτυο λειτουργεί με βάση πρωτόκολλα με την καλύτερη προσπάθεια που δεν μπορούν ποτέ να εγγυηθούν 100% συγκομιδή / απόδοση.

Αποσύνθεση Εφαρμογών και Ορθογώνιοι Μηχανισμοί

Η δεύτερη στρατηγική εστιάζει στα οφέλη του ορθογωνικού σχεδιασμού συστήματος.

Ξεκινά δηλώνοντας ότι τα μεγάλα συστήματα αποτελούνται από υποσυστήματα που δεν μπορούν να ανεχθούν αστοχίες. Αλλά αποτυγχάνουν με τρόπο που επιτρέπει σε ολόκληρο το σύστημα να συνεχίσει να λειτουργεί με κάποιο αντίκτυπο στη χρησιμότητα.

Το πραγματικό όφελος είναι η δυνατότητα παροχής ξεχωριστής διαχείρισης κατάστασης κάθε υποσυστήματος, παρέχοντας ισχυρή συνοχή ή επίμονη κατάσταση μόνο για τα υποσυστήματα που το χρειάζονται και όχι για ολόκληρη την εφαρμογή. Η εξοικονόμηση μπορεί να είναι σημαντική εάν μόνο μερικά μικρά υποσυστήματα απαιτούν την επιπλέον πολυπλοκότητα.

Το έγγραφο αναφέρει ότι τα ορθογώνια στοιχεία είναι εντελώς ανεξάρτητα το ένα από το άλλο. Δεν έχουν διεπαφή χρόνου εκτέλεσης με άλλα στοιχεία, εκτός εάν υπάρχει διεπαφή διαμόρφωσης. Αυτό επιτρέπει σε κάθε μεμονωμένο στοιχείο να αποτυγχάνει ανεξάρτητα και ελαχιστοποιεί την επίδρασή του στο συνολικό σύστημα.

Η σύνθεση των ορθογώνιων υποσυστημάτων μετατοπίζει το βάρος του ελέγχου πιθανών επιβλαβών αλληλεπιδράσεων από το χρόνο εκτέλεσης έως το χρόνο μεταγλώττισης και η ανάπτυξη ορθογώνιων μηχανισμών προστασίας βελτιώνει την ευρωστία για τις αλληλεπιδράσεις χρόνου εκτέλεσης που συμβαίνουν, παρέχοντας βελτιωμένο περιορισμό σφαλμάτων.

Ο στόχος αυτής της εργασίας ήταν να παρακινήσει την έρευνα στον τομέα του σχεδιασμού ανεκτικών σφαλμάτων και πολύ διαθέσιμων συστημάτων μεγάλης κλίμακας.

Επίσης, η προσεκτική σκέψη για τη συνέπεια και τη διαθεσιμότητα εγγυάται την εφαρμογή που πρέπει να παρέχει η εφαρμογή. Εκτός από τις αντισταθμίσεις, είναι σε θέση να κάνει από την άποψη της συγκομιδής έναντι της απόδοσης.

Αν σας άρεσε αυτό το χαρτί, πατήστε το κουμπί χειροκρότημα για να το βλέπουν περισσότεροι. Ευχαριστώ.

PS - Εάν το έχετε φτάσει μέχρι τώρα και θέλετε να λαμβάνετε ένα μήνυμα κάθε φορά που δημοσιεύω μία από αυτές τις δημοσιεύσεις, εγγραφείτε εδώ.