Ανοχή βλαβών με καταγραφή κατάστασης και οπισθοδρόμηση (checkpoints & rollback) Κατανεμημένα Συστήματα 1

Σχετικά έγγραφα
Βασικές έννοιες. Κατανεμημένα Συστήματα 1

Βασικές έννοιες. Κατανεμημένα Συστήματα 1

Ανοχή απέναντι σε Σφάλµατα Fault Tolerance

Κατανεμημένα Συστήματα: Θεωρία και Προγραμματισμός. Ενότητα # 5: Ανοχή βλαβών Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής

Φυσικά και λογικά ρολόγια. Κατανεμημένα Συστήματα 1

Εντοπισμός τερματισμού. Κατανεμημένα Συστήματα 1

Συνεπείς καθολικές καταστάσεις & επιβεβαίωση ιδιοτήτων. Κατανεμημένα Συστήματα 1

Εντοπισμός αδιεξόδου. Κατανεμημένα Συστήματα 1

Αξιόπιστη μεταφορά δεδομένων πάνω από αναξιόπιστο δίκτυο. Κατανεμημένα Συστήματα 1

Ανοχήβλαβών. Κατανεµηµένα Συστήµατα 19-1

Επικοινωνία με μηνύματα. Κατανεμημένα Συστήματα 1

Συνεπής παρατήρηση εκτέλεσης & συνεπείς καθολικές καταστάσεις. Κατανεμημένα Συστήματα 1

Αξιόπιστη μεταφορά δεδομένων πάνω από αναξιόπιστο δίκτυο. Κατανεμημένα Συστήματα 1

Διεργασίες (μοντέλο μνήμης & εκτέλεσης) Προγραμματισμός II 1

ΚΕΦΑΛΑΙΟ 4. Τεχνική Ανίχνευσης του. Πτυχιακή Εργασία Σελίδα 95

Επικοινωνία αίτησης-απάντησης. Κατανεμημένα Συστήματα 1

Μετακινούμενος Κώδικας (Mobile Code) Κατανεμημένα Συστήματα 1

Επικοινωνία με μηνύματα. Κατανεμημένα Συστήματα 1

ΚΑΤΑΝΕΜΗΜΕΝΑ ΣΥΣΤΗΜΑΤΑ. Παράδοση Ασκήσεων Κεφάλαιο 2 Ασκήσεις 3,6,8,9,15,22,24,26. Γεωργόπουλος Άλκης Α.Μ.: 39 Κοντογιώργης Αναστάσιος A.M.

Διάλεξη 1: Εισαγωγή στον Κατανεμημένο Υπολογισμό. ΕΠΛ 432: Κατανεμημένοι Αλγόριθμοι

Επικοινωνία αίτησης-απάντησης. Κατανεμημένα Συστήματα 1

Διεργασίες (μοντέλο μνήμης & εκτέλεσης) Προγραμματισμός II 1

Κατανεμημένα Συστήματα με Java. Ενότητα # 4: Αμοιβαίος αποκλεισμός Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής

Διάλεξη 13: Κατανεμημένη Κοινόχρηστη Μνήμη. ΕΠΛ 432: Κατανεμημένοι Αλγόριθμοι

ΙΑΧΕΙΡΙΣΗ ΟΣΟΛΗΨΙΩΝ Να θυµηθούµε:

Απαντήσεις. Απάντηση. Απάντηση

4.1.1 Πρωτόκολλο TCP - Δομή πακέτου

Διάλεξη 6: Εκλογή Προέδρου σε Σύγχρονους Δακτύλιους. ΕΠΛ 432: Κατανεμημένοι Αλγόριθμοι

ΗΥ486 - Αρχές Κατανεμημένου Υπολογισμού Εαρινό Εξάμηνο Δεύτερη Προγραμματιστική Εργασία

ΗΥ335 - Δίκτυα Υπολογιστών Χειμερινό εξάμηνο Φροντιστήριο Ασκήσεις στο TCP

Ομαδική Επικοινωνία (Group Communication) Κατανεμημένα Συστήματα 1

Consensus and related problems

Δίκτυα Υπολογιστών Firewalls. Χάρης Μανιφάβας

SNMP ΔΙΑΧΕΙΡΙΣΗ ΔΙΚΤΥΟΥ ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ

Το Πρόβληµα Οµοφωνίας Σύγχρονα Συστήµατα Μεταβίβασης Μηνύµατος Μοντέλο Κατάρρευσης (crash model) Οι διεργασίες µπορούν να σταµατούν να εκτελούνται σε

Αµοιβαίοςαποκλεισµός. Κατανεµηµένα Συστήµατα 03-1

HY-486 Αρχές Κατανεμημένου Υπολογισμού Εαρινό Εξάμηνο

Κατανεμημένα Συστήματα: Θεωρία και Προγραμματισμός. Ενότητα # 1: Εισαγωγή Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής

Κατανεμημένη συμφωνία (distributed consensus) Κατανεμημένα Συστήματα 1

Εισαγωγή. Κατανεµηµένα Συστήµατα 01-1

Βάσεις Δεδομένων. Τ.Ε.Ι. Ιονίων Νήσων Σχολή Διοίκησης και Οικονομίας - Λευκάδα

Αρχιτεκτονική Λογισμικού

Εξοικείωση με τις εντολές ipconfig και ping

ιεργασίες και Επεξεργαστές στα Κατανεµηµένων Συστηµάτων

a. b. c. d ΤΕΧΝΟΛΟΓΙΑ ΔΙΚΤΥΩΝ ΕΠΙΚΟΙΝΩΝΙΩΝ

Κεφάλαιο 4 Διεργασίες Β Τάξη ΕΠΑΛ

Κατανεμημένα Συστήματα Ι

Αδιέξοδα Ανάθεση Πόρων (Deadlocks Resource Allocation)

Ασφαλή Συστήματα Μέθοδοι ελέγχου και εξακρίβωσης ορθής λειτουργίας

Ανάπτυξη & Σχεδίαση Λογισμικού (ΗΥ420)

Ενδεικτικές Λύσεις 1ου Σετ Ασκήσεων

Σύστημα Διαμοιρασμού Βιβλιογραφικών Αναφορών. Κοντοτάσιου Ιωάννα ΑΜ 3125 Μπέσσας Απόστολος ΑΜ 3171

6.2 Υπηρεσίες Διαδικτύου

ΑΞΙΟΠΙΣΤΙΑ ΥΛΙΚΟΥ ΚΑΙ ΛΟΓΙΣΜΙΚΟΥ

Το Πρόβληµα Οµοφωνίας Σύγχρονα Συστήµατα Μεταβίβασης Μηνύµατος Μοντέλο Κατάρρευσης (crash model) Οι διεργασίες µπορούν να σταµατούν να εκτελούνται σε

Web and HTTP. Βασικά Συστατικά: Web Server Web Browser HTTP Protocol

Σχήμα 1: TCP αποστολέας με παράθυρο αποστολέα = 1

Καθολικέςκαταστάσεις. Ορισµοί Κατασκευή καθολικών καταστάσεων Παθητική στρατηγική Ενεργητική στρατηγική. Κατανεµηµένα Συστήµατα 04-1

Τεχνολογία Λογισμικού

Διάλεξη 12: Διάχυση Μηνυμάτων. ΕΠΛ 432: Κατανεμημένοι Αλγόριθμοι

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

Asset Management Software Client Module. Οδηγός χρήσης

Κατανεμημένα Συστήματα Ι

Οδηγίες EQL Desktop (rev ) ΣΥΝ ΕΣΗ S-710 ΜΕ ΚΑΛΩ ΙΟ USB ΠΡΟΚΑΤΑΡΚΤΙΚΕΣ ΕΡΓΑΣΙΕΣ

Το λειτουργικό σύστημα. Προγραμματισμός II 1

Λειτουργικά Συστήματα Η/Υ

Κατανεμημένα Συστήματα: Θεωρία και Προγραμματισμός. Ενότητα # 3: Καθολικά κατηγορήματα Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής

Αρχές Δικτύων Επικοινωνιών. Επικοινωνίες Δεδομένων Μάθημα 4 ο

ΠΛΕ- 027 Μικροεπεξεργαστές 11ο μάθημα: Είσοδος- Εξοδος (Ε/Ε)

Προβλήματα ταυτόχρονης εκτέλεσης (για νήματα με κοινή μνήμη)

Απομακρυσμένα αντικείμενα (Remote Objects) Κατανεμημένα Συστήματα 1

Κατανεμημένα Συστήματα Ι

Αδιέξοδα Ανάθεση Πόρων (Deadlocks Resource Allocation)

ΑΔΙΕΞΟΔΑ. Λειτουργικά Συστήματα Ι. Διδάσκων: Καθ. Κ. Λαμπρινουδάκης ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι

Διάλεξη 18: Πρόβλημα Βυζαντινών Στρατηγών. ΕΠΛ 432: Κατανεμημένοι Αλγόριθμοι

Διάλεξη 17: Συμφωνία με Βυζαντινά Σφάλματα. ΕΠΛ 432: Κατανεμημένοι Αλγόριθμοι

Επικοινωνία Client/Server

ΠΛΑΤΦΟΡΜΑ ΔΙΑΧΕΙΡΙΣΗΣ ΒΙΝΤΕΟΔΙΑΛΕΞΕΩΝ ΔΗΛΟΣ delos.uoa.gr. Εγχειρίδιο Χρήσης Μελών ΔΕΠ

Κατανεμημένα Συστήματα. Ενότητα # 11: Μηνυματοστρεφές ενδιάμεσο λογισμικό Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής

Εργαστήριο 4 Πρωτόκολλα Δρομολόγησης

Σύντομη παρουσίαση των εργαλείων/εντολών telnet, ping, traceroute nslookup και nmap, zenmap

Λύση: Λύση: Λύση: Λύση:

Θέματα διπλωματικών εργασιών σε. Συστοιχίες παράλληλης εξυηρέτησης εφαρμογών Διαδικτύου

Κατανεμημένα Συστήματα Ι

Λειτουργικά συστήματα πραγματικού χρόνου

Αμοιβαίος αποκλεισμός με ασύγχρονη επικοινωνία (ανταλλαγή μηνυμάτων) Ταυτόχρονος Προγραμματισμός 1

ΙΚΤΥΑ ΕΠΙΚΟΙΝΩΝΙΩΝ Ασκήσεις για το φυσικό στρώμα. λ από τον ρυθμό μετάδοσής της. Υποθέτοντας ότι ο κόμβος A

Μνήμη Διευθύνσεις Δείκτες. Προγραμματισμός II 1

Πανεπιστήμιο Θεσσαλίας Τμήμα Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών Τμήμα Πληροφορικής

Αποτίµησηκαθολικού κατηγορήµατος

Εκλογήαρχηγού. Εισαγωγή Ισχυρά συνδεδεµένος γράφος ακτύλιος µίας κατεύθυνσης Τοπολογία δένδρου. Κατανεµηµένα Συστήµατα 06-1

Κεφάλαιο 4: Λογισμικό Συστήματος

Improving the performance of TCP in the case of packet reordering. Στρατάκη Μαρία

3. Προσομοίωση ενός Συστήματος Αναμονής.

Η Διαδικασία Σχεδιασμού Συστημάτων

3.3 Πρωτόκολλα ανεύρεσης και απόδοσης διευθύνσεων, Address Resolution Protocol (ARP) και Dynamic Host Configuration Protocol (DHCP)

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ - ΤΜΗΥΠ ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ ΙI

ΑΔΙΕΞΟΔΑ (Deadlocks) Παράδειγμα 1 Θανάσιμο αγκάλιασμα (deadly embrace)

Linux Terminal Server Project

οµήτης παρουσίασης Marzullo και Neiger αλγόριθµος Παράδειγµα Distributed Debugging Εισαγωγικά

Transcript:

Ανοχή βλαβών με καταγραφή κατάστασης και οπισθοδρόμηση (checkpoints & rollback) Κατανεμημένα Συστήματα 1 lalis@inf.uth.gr

Μοντέλο συστήματος Ένα κατανεμημένο σύστημα με Ν διεργασίες που επικοινωνούν μεταξύ τους με μηνύματα θεωρούμε πως το δίκτυο δεν χάνει μηνύματα Οι διεργασίες εκτελούν μαζί κάποιον υπολογισμό Οι διεργασίες μπορεί να παρουσιάσουν βλάβες, αλλά και να ανακάμψουν από αυτές (επανεκκίνηση) Οι διεργασίες μπορεί να καταγράψουν ανά πάσα στιγμή την (σημαντική) κατάσταση τους σε μόνιμη μνήμη Η καταγεγραμμένη κατάσταση μπορεί να ανακτηθεί κατά την επανεκκίνηση της διεργασίας μετά από βλάβη Το σύστημα/πρόγραμμα μπορεί να επικοινωνεί με άλλες «εξωτερικές» οντότητες Κατανεμημένα Συστήματα 2 lalis@inf.uth.gr

εξωτερικό περιβάλλον P1 P2 P3 κατανεμημένο σύστημα checkpoint Κατανεμημένα Συστήματα 3 lalis@inf.uth.gr

Ζητούμενο Επιθυμούμε το σύστημα να ανέχεται βλάβες χωρίς να αναγκάζουμε κάθε διεργασία να καταγράφει την κατάσταση της συνεχώς, σε κάθε βήμα της εκτέλεσης Το σημείο επανεκκίνησης πρέπει να επιλέγεται έτσι ώστε οι διεργασίες να συνεχίζουν την εκτέλεση με συνέπεια (1) μεταξύ τους και (2) ως προς το εξωτερικό περιβάλλον Πρόβλημα: μια διεργασία που επανεκκινείται μπορεί να ακολουθήσει μια διαφορετική ροή εκτέλεσης από αυτήν που είχε ακολουθηθεί πριν την βλάβη Πρόβλημα: μια διεργασία που επανεκκινείται μπορεί να «χάσει» μηνύματα που έλαβε πριν την βλάβη Κατανεμημένα Συστήματα 4 lalis@inf.uth.gr

Πρόβλημα (1) Έστω ότι η P1 στέλνει ένα μήνυμα m στην P2, και στην συνέχεια καταγράφει την κατάσταση της Όσο η P2 δεν καταγράφει την κατάσταση της, συνολικά, έχει καταγραφεί η αποστολή του m, αλλά όχι η παραλαβή του Αν η P2 παρουσιάσει βλάβη και επανεκκινηθεί, δεν θα λάβει υπόψη της ποτέ το μήνυμα m Όμως η P1 συνεχίζει κανονικά την εκτέλεση της, θεωρώντας ότι η P2 έχει λάβει το μήνυμα m Η P1 πρέπει να οπισθοδρομήσει σε προηγούμενη κατάσταση πριν την αποστολή του μηνύματος m Κατανεμημένα Συστήματα 5 lalis@inf.uth.gr

Πρόβλημα (2) Έστω ότι η P1 στέλνει ένα μήνυμα m στην P2, και ότι στην συνέχεια η P2 λαμβάνει το μήνυμα και καταγράφει την κατάσταση της Όσο η P1 δεν καταγράφει την κατάσταση της, συνολικά, έχει καταγραφεί η παραλαβή του m, αλλά όχι η αποστολή του Αν η P1 παρουσιάσει βλάβη και επανεκκινηθεί, πιθανώς να μην δημιουργήσει το ίδιο μήνυμα m Όμως η P2 συνεχίζει την εκτέλεση της βάση του m Η P2 πρέπει να οπισθοδρομήσει σε προηγούμενη κατάσταση πριν τη παραλαβή του μηνύματος m Κατανεμημένα Συστήματα 6 lalis@inf.uth.gr

S1.1 S1.2 P1 m P2 S2.1 S2.2 nok ok nok ok τομές που «επιτρέπουν» την συνεπή ανάκαμψη ενός κατανεμημένου υπολογισμού σε περίπτωση βλάβης Κατανεμημένα Συστήματα 7 lalis@inf.uth.gr

Γραμμή ανάκαμψης Γραμμή ανάκαμψης: η πιο πρόσφατη τομή της κατανεμημένης εκτέλεσης, που δεν τέμνει την μετάδοση ενός μηνύματος αν συμπεριλαμβάνεται η αποστολή ενός μηνύματος, τότε συμπεριλαμβάνεται και η παραλαβή του και το αντίστροφο ορίζει το σημείο από το οποίο μπορεί να συνεχιστεί ο υπολογισμός με συνέπεια και με τις λιγότερες δυνατές οπισθοδρομήσεις, για οποιοδήποτε σενάριο βλάβης Μέγιστη ανακάμψιμη κατάσταση: η καθολική κατάσταση που αντιστοιχεί στην γραμμή ανάκαμψης δεν αντιστοιχεί (απαραίτητα) στις πιο πρόσφατες καταγεγραμμένες τοπικές καταστάσεις των διεργασιών Κατανεμημένα Συστήματα 8 lalis@inf.uth.gr

P1 S1.0 S1.1 S1.2 S2.0 S2.1 P2 S3.0 S3.1 S3.2 P3 γραμμή ανάκαμψης Κατανεμημένα Συστήματα 9 lalis@inf.uth.gr

Αλυσιδωτές οπισθοδρομήσεις Η επανεκκίνηση μιας διεργασίας P από την τελευταία καταγεγραμμένη κατάσταση μπορεί να μην είναι εφικτή λόγω ασυνέπειας (μη καταγεγραμμένων μηνυμάτων) Τότε, η P πρέπει να οπισθοδρομήσει σε μια προηγούμενη καταγεγραμμένη κατάσταση αυτό μπορεί να επιφέρει επιπλέον οπισθοδρομήσεις Χειρότερη περίπτωση: πλήρης οπισθοδρόμηση αλυσιδωτή οπισθοδρόμηση (domino effect) επανεκκίνηση του υπολογισμού, από την αρχή Κατανεμημένα Συστήματα 10 lalis@inf.uth.gr

επιπλέον μήνυμα! P1 S1.0 S1.1 S1.2 S2.0 S2.1 P2 S3.0 S3.1 S3.2 P3 γραμμή ανάκαμψης Κατανεμημένα Συστήματα 11 lalis@inf.uth.gr

Καταγραφή χωρίς συγχρονισμό Κάθε διεργασία καταγράφει (περιοδικά) την τοπική της κατάσταση χωρίς συνεννόηση με τις υπόλοιπες Όταν η Pi στέλνει μήνυμα m στην Pj, επισυνάπτει τον αριθμό της τελευταίας τοπικά καταγεγραμμένης κατάστασης Si.n Η Pj γνωρίζει ότι η επόμενη κατάσταση Sj.k+1 που θα καταγράψει τοπικά μπορεί να χρησιμοποιηθεί μόνο αν και η Pi καταγράψει την επόμενη κατάσταση Si.n+1 Αυτές οι «εξαρτήσεις» καταγράφονται τοπικά, μαζί με τα περιεχόμενα των καταστάσεων Κατανεμημένα Συστήματα 12 lalis@inf.uth.gr

S1.0 S1.1 S1.2 <-> S2.2 P1 S2.0 S2.1 m1(2.1) S2.2 <-> S3.2 P2 P3 S3.0 S3.1 m2(3.1) Κατανεμημένα Συστήματα 13 lalis@inf.uth.gr

Υπολογισμός μέγιστης ανακάμψιμης κατάστασης Η πληροφορία εξάρτησης συλλέγεται από μια διεργασία (περιοδικά ή μετά από ανάκαμψη από βλάβη) Σχηματίζεται ένας γράφος εξάρτησης ένας κόμβος για κάθε καταγεγραμμένη κατάσταση αν υπάρχει εξάρτηση ανάμεσα σε Si.n και Sj.k, τότε εισάγεται μια ακμή Si.n<->Sj.k εισάγονται (εικονικοί) κόμβοι για τις (τρέχουσες) καταστάσεις Για κάθε σενάριο βλάβης, μαρκάρεται ο εικονικός κόμβος της διεργασίας που παρουσίασε βλάβη, και όλοι οι κόμβοι που είναι προσπελάσιμοι από αυτόν Οι πιο πρόσφατοι μη μαρκαρισμένοι κόμβοι σχηματίζουν την μέγιστη κατάσταση ανάκαμψης Κατανεμημένα Συστήματα 14 lalis@inf.uth.gr

S1.0 S1.1 S1.2 S1.3 P1 1 S2.0 S2.1 2 3 S2.2 5 S2.3 6 P2 S3.0 S3.1 S3.2 4 S3.3 7 P3 P1 P2 P3 S1.0 S1.1 S1.2 S1.3 1 3 5 6 2 S2.0 S2.1 S2.2 S2.3 S3.0 S3.1 S3.2 S3.3 4 S1.V S2.V 7 S3.V Κατανεμημένα Συστήματα 15 lalis@inf.uth.gr

S1.0 S1.1 S1.2 S1.3 P1 1 S2.0 S2.1 2 3 5 S2.2 6 P2 S3.0 S3.1 S3.2 4 S3.3 7 P3 P1 S1.0 S1.1 S1.2 S1.3 S1.V P2 S2.0 S2.1 1 2 3 S2.2 5 6 S2.V P3 S3.0 S3.1 S3.2 S3.3 4 7 S3.V Κατανεμημένα Συστήματα 16 lalis@inf.uth.gr

Συλλογή καταστάσεων Ο αριθμός των καταγεγραμμένων καταστάσεων μεγαλώνει διαρκώς καθώς εξελίσσεται η εκτέλεση Πρέπει να απομακρυνθούν οι καταστάσεις που είναι σίγουρο ότι δεν έχουν (πλέον) κάποια χρησιμότητα Όλες οι καταστάσεις πίσω από την γραμμή ανάκαμψης δεν υπάρχει περίπτωση να χρησιμοποιηθούν σε επανεκκίνηση Περιοδικός υπολογισμός της μέγιστης ανακάμψιμης κατάστασης, και αποστολή των αριθμών των αντίστοιχων τοπικών καταστάσεων σε κάθε διεργασία Κάθε διεργασία σβήνει τις τοπικά καταγεγραμμένες καταστάσεις με μικρότερους αριθμούς Κατανεμημένα Συστήματα 17 lalis@inf.uth.gr

Ντετερμινιστικές διεργασίες Αν η P με κατάσταση S οπισθοδρομήσει σε μια προηγούμενη κατάσταση S, θα πραγματοποιήσει ακριβώς την ίδια εκτέλεση, και θα πάει από την S στην S, εφόσον η προηγούμενη εκτέλεση δεν συμπεριλαμβάνει την παραλαβή ενός μηνύματος Κάθε διεργασία καταγράφει τους σειριακούς αριθμούς των μηνυμάτων που λαμβάνει από κάθε διεργασία Η μέγιστη ανακάμψιμη κατάσταση συμπεριλαμβάνει πλέον και καταστάσεις όπου έχει καταγραφεί η παραλαβή μηνυμάτων χωρίς την αποστολή τους Τα «διπλότυπα» μηνύματα που θα δημιουργηθούν λόγω οπισθοδρόμησης, θα εντοπιστούν και απλά θα αγνοηθούν από τον παραλήπτη Κατανεμημένα Συστήματα 18 lalis@inf.uth.gr

S1.1 S1.2 P1 m P2 S2.1 S2.2 nok ok ok ok τομές που «επιτρέπουν» την συνεπή ανάκαμψη ενός κατανεμημένου υπολογισμού σε περίπτωση βλάβης, στην περίπτωση ντετερμινιστικών διεργασιών Κατανεμημένα Συστήματα 19 lalis@inf.uth.gr

P1 S1.0 S1.1 S1.2 S2.0 S2.1 P2 S3.0 S3.1 S3.2 P3 γραμμή ανάκαμψης Κατανεμημένα Συστήματα 20 lalis@inf.uth.gr

επιπλέον μήνυμα! P1 S1.0 S1.1 S1.2 S2.0 S2.1 P2 S3.0 S3.1 S3.2 P3 γραμμή ανάκαμψης για μη ντετερμινιστικές διεργασίες γραμμή ανάκαμψης για ντετερμινιστικές διεργασίες Κατανεμημένα Συστήματα 21 lalis@inf.uth.gr

Καταγραφή κατανεμημένων στιγμιότυπων Οι διεργασίες επικοινωνούν (περιοδικά) μεταξύ τους για να κατασκευάσουν κατανεμημένα στιγμιότυπα π.χ., με βάση τον αλγόριθμο των Chandy/Lamport Κάθε συνεπές κατανεμημένο στιγμιότυπο αντιστοιχεί σε μια μέγιστη ανακάμψιμη κατάσταση οι καταγεγραμμένες τοπικές καταστάσεις σχηματίζουν μια συνεπή καθολική κατάσταση επιπλέον έχουν καταγραφεί όλα τα μηνύματα που βρίσκονταν καθοδόν την ώρα της καταγραφής τα οποία πρέπει να ληφθούν υπόψη αν γίνει επανεκκίνηση με βάση αυτή τη κατάσταση Με το που κατασκευαστεί το επόμενο στιγμιότυπο μπορεί να σβηστεί το προηγούμενο δεν υπάρχει περίπτωση οπισθοχώρησης πίσω από αυτό Κατανεμημένα Συστήματα 22 lalis@inf.uth.gr

Input-output commit problem Το κατανεμημένο σύστημα μπορεί να επικοινωνεί και με άλλες «εξωτερικές» οντότητες Ιδανικά, πρέπει να παρέχεται διαφάνεια βλαβών Input commit: αν ένα μήνυμα παραληφθεί από μια εξωτερική οντότητα, πρέπει να αποθηκευτεί για να ληφθεί (ξανά) υπόψη σε περίπτωση οπισθοδρόμησης Output commit: αν ένα μήνυμα σταλεί σε μια εξωτερική οντότητα, η κατάσταση μέσα από την οποία δημιουργήθηκε το μήνυμα πρέπει να βρίσκεται πάνω ή πίσω από την γραμμή ανάκαμψης Κατανεμημένα Συστήματα 23 lalis@inf.uth.gr

Ανοχή βλαβών με πλεονασμό / αναπαραγωγή (replication) Κατανεμημένα Συστήματα 24 lalis@inf.uth.gr

Μεγέθη βλαβών και διαθεσιμότητας Mean Time To Failure (MTTF): μέσος χρόνος μέχρι να παρουσιαστεί η επόμενη βλάβη ενός τμήματος Mean Time To Repair (MTTR): μέσος χρόνος μέχρι να επισκευαστεί η βλάβη ενός τμήματος Διαθεσιμότητα (availability): ποσοστό του χρόνου όπου προσφέρεται η ζητούμενη λειτουργικότητα Η διαθεσιμότητα ενός συστήματος αυξάνεται αυξάνοντας το MTTF (μειώνοντας την πιθανότητα βλάβης) ή/και μειώνοντας το MTTR (μειώνοντας τον χρόνο επισκευής / επανεκκίνησης) Κατανεμημένα Συστήματα 25 lalis@inf.uth.gr

Ανοχή βλαβών με πλεονασμό/αναπαραγωγή Χρήση αντιγράφων για τα συστατικά που είναι ιδιαίτερα κρίσιμα ή παρουσιάζουν συχνές βλάβες H βλάβη ενός αντιγράφου αποκρύπτεται λόγω της ύπαρξης των υπολοίπων (fault masking) Ενεργή αναπαραγωγή (hot/active replication) όλα τα αντίγραφα λαμβάνουν όλες τις εντολές, πραγματοποιούν ταυτόχρονα την επεξεργασία και παράγουν/επιστρέφουν το (ίδιο) αποτέλεσμα Παθητική αναπαραγωγή (cold/passive replication) η λειτουργικότητα παρέχεται από ένα κυρίως αντίγραφο αυτό αντικαθίσταται όταν παρουσιάσει βλάβη Κατανεμημένα Συστήματα 26 lalis@inf.uth.gr

Διατάξεις ενεργών αντιγράφων Οι βλάβες crash μπορεί να αντιμετωπιστούν με απλές διατάξεις αντιγράφων f+1 αντίγραφα για την ανοχή f βλαβών Οι βυζαντινές βλάβες αντιμετωπίζονται με διατάξεις αντιγράφων σε σχήμα πλειοψηφίας 2f+1 αντίγραφα για την ανοχή f βλαβών το τελικό αποτέλεσμα υπολογίζεται μέσω πλειοψηφίας Παρόμοια σχήματα υιοθετούνται και σε επίπεδο υλικού πολυεπεξεργαστές, μνήμες, συστοιχίες δίσκων, ηλεκτρονικά Κατανεμημένα Συστήματα 27 lalis@inf.uth.gr

F G ανοχή μιας απλής βλάβης F ΜX G ΜΧ F ΜΧ G ΜΧ Κατανεμημένα Συστήματα 28 lalis@inf.uth.gr

F G ανοχή μιας βυζαντινής βλάβης (triple modular redundancy, TMR) F V G V F V G V F V G V Κατανεμημένα Συστήματα 29 lalis@inf.uth.gr

N-version programming (software TMR) Tο ζητούμενο συστατικό/ λειτουργικότητα υλοποιείται από διαφορετικές ομάδες προγραμματιστών σε διαφορετικές γλώσσες προγραμματισμού για διαφορετικά λειτουργικά συστήματα σε διαφορετικές πλατφόρμες υλικού Μειώνεται, δραστικά, η πιθανότητα να προκύψει ακριβώς το ίδιο λάθος στην ίδια φάση εκτέλεσης Αντίθετα, αν τα αντίγραφα είναι πανομοιότυπα, η διαθεσιμότητα του συστήματος δεν αυξάνεται Aν η βλάβη οφείλεται σε συστηματική δυσλειτουργία, όλα τα αντίγραφα θα παρουσιάσουν βλάβη μαζί Κατανεμημένα Συστήματα 30 lalis@inf.uth.gr

Προσωρινές βλάβες (transient failures) Ένα συστατικό που παρουσίασε βλάβη μπορεί να ανακάμψει/επανέλθει σε ορθή λειτουργία οι προσωρινές (πιθανώς βυζαντινές) βλάβες υπάρχουν σε πολλά πραγματικά συστήματα Στη πράξη, συχνά πρέπει να υπάρχει ανοχή σε επανειλημμένες προσωρινές βλάβες του ίδιου ή διαφορετικών αντιγράφων ενός συστατικού Η διαθεσιμότητα μπορεί να αυξηθεί σημαντικά ακόμα και με λίγα (π.χ., μόνο 2) αντίγραφα εφόσον η πιθανότητα για ταυτόχρονες βλάβες είναι μικρή Κατανεμημένα Συστήματα 31 lalis@inf.uth.gr

βλάβη επιδιόρθωση βλάβη επιδιόρθωση P1 βλάβη επιδιόρθωση βλάβη επιδιόρθωση P2 P1 + P2 Κατανεμημένα Συστήματα 32 lalis@inf.uth.gr t

Συστήματα με εσωτερική κατάσταση Ένα τμήμα μπορεί να κρατά εσωτερική κατάσταση η έξοδος δεν είναι αποκλειστική συνάρτηση της εισόδου Η «απλή» επανάκαμψη / επιδιόρθωση ενός αντιγράφου δεν αρκεί για την επανένταξη του στο σύστημα Απαιτείται συγχρονισμένη αρχικοποίηση του αντιγράφου, με βάση την κατάσταση των υπολοίπων αντιγράφων που βρίσκονται σε λειτουργία η εσωτερική κατάσταση των οποίων έχει εξελιχθεί στο χρόνο (την ώρα που το άλλο αντίγραφο είχε ακόμα βλάβη) Κατανεμημένα Συστήματα 33 lalis@inf.uth.gr

βλάβη ανάκαμψη λειτουργία P1 internal state S1 S2 S5 S6 S7 S8 P2 internal state S1 S2 S3 S4 S5 S6 S7 S8 Κατανεμημένα Συστήματα 34 lalis@inf.uth.gr t

Υλοποίηση υπηρεσίας με πλεονασμό Λογισμικό πελάτη: προωθεί τις αιτήσεις της εφαρμογής στην ομάδα των εξυπηρετητών της υπηρεσίας, λαμβάνει και επεξεργάζεται κατάλληλα τις απαντήσεις Εξυπηρετητές: επικοινωνούν κατάλληλα μεταξύ τους έτσι ώστε να γίνεται συγχρονισμένη επεξεργασία των αιτήσεων και αποστολή των απαντήσεων επίσης: χειρισμός βλαβών, ανάκαμψη/προσθήκη εξυπηρετητών Ιδανικά, παρέχεται διαφάνεια αναπαραγωγής One-copy serializability: το τελικό αποτέλεσμα που βλέπουν οι πελάτες θα μπορούσε να είχε προκύψει ακόμα και αν υπήρχε ένα μοναδικό αντίγραφο Κατανεμημένα Συστήματα 35 lalis@inf.uth.gr

alloc("x"); write("x",0); alloc("y"); write("y",0); P1: write("x",1); write("y",1); P2: printf("y=%d\n",read("y")); printf("x=%d\n",read("x")); Έστω ότι η υπηρεσία αποθήκευσης δεδομένων υλοποιείται από έναν μοναδικό εξυπηρετητή Με όλα τα δυνατά σενάρια ταυτόχρονης εκτέλεσης, η P2 θα εκτυπώσει: (y=0,x=0), (y=0,x=1), (y=1,x=1) Δεν υπάρχει περίπτωση να εκτυπώσει (y=1,x=0) Αυτή η «συμπεριφορά» δεν είναι εγγυημένη αν η υπηρεσία αποθήκευσης δεδομένων υλοποιείται με πλεονασμό (δηλαδή με >=2 εξυπηρετητές) Κατανεμημένα Συστήματα 36 lalis@inf.uth.gr

P1 write(x,1) write(y,1) P2 read(y)->1 read(x)->0 server A x=0 y=0 x=0 y=1 x=1 y=1 server B x=0 y=0 x=1 y=0 x=1 y=1 Κατανεμημένα Συστήματα 37 lalis@inf.uth.gr

P1 write(x,1) write(y,1) P2 read(y)->1 read(x)->0 server A x=0 y=0 x=0 y=1 x=1 y=1 server B x=0 y=0 x=1 y=0 x=1 y=1 Κατανεμημένα Συστήματα 38 lalis@inf.uth.gr

Ενεργή αναπαραγωγή Κάθε αίτηση στέλνεται σε όλους τους εξυπηρετητές Κάθε εξυπηρετητής επεξεργάζεται τις αιτήσεις που δέχεται, και στέλνει απάντηση με τα αποτελέσματα Συμβατικές βλάβες: ο πελάτης περιμένει 1 απάντηση Βυζαντινές βλάβες: ο πελάτης περιμένει για 1+Ν/2 ίδιες απαντήσεις Προϋποθέσεις συνέπειας: (1) οι εξυπηρετητές λαμβάνουν τις αιτήσεις με την ίδια σειρά, και (2) η επεξεργασία είναι ντετερμινιστική Κατανεμημένα Συστήματα 39 lalis@inf.uth.gr

application client front-end server group server2 server1 client server3 application front-end client request server reply intra-server comm. Κατανεμημένα Συστήματα 40 lalis@inf.uth.gr

client request reply S1 state k state k+1 S2 reply state k state k+1 S3 reply state k state k+1 Κατανεμημένα Συστήματα 41 lalis@inf.uth.gr

client request S1 state k S2 reply state k state k+1 S3 reply state k state k+1 Κατανεμημένα Συστήματα 42 lalis@inf.uth.gr

client request reply S1 state k byzantine state k+1 S2 %#$@ state k state' k+1 S3 reply state k state k+1 Κατανεμημένα Συστήματα 43 lalis@inf.uth.gr

Παρατηρήσεις Η απαίτηση οι αιτήσεις να παραδίδονται σε όλους τους εξυπηρετητές με την ίδια σειρά συνεπάγεται reliable & totally ordered multicast (RTM) μπορεί να προκαλείται εκτενής επικοινωνία ανάμεσα στους εξυπηρετητές της υπηρεσίας Επίσης, η υλοποίηση RTM σε ένα σύστημα με βυζαντινές βλάβες δεν είναι προφανής πρόβλημα κατανεμημένης συμφωνίας Η καθυστέρηση απόκρισης για την εφαρμογή αντιστοιχεί στην καθυστέρηση της επεξεργασίας της αίτησης, συν την καθυστέρηση συγχρονισμού ανάμεσα στους εξυπηρετητές (RTM) Κατανεμημένα Συστήματα 44 lalis@inf.uth.gr

Παθητική αναπαραγωγή Πρωτεύων εξυπηρετητής: επεξεργάζεται τις αιτήσεις των πελάτων, ενημερώνει τους εφεδρικούς για το αποτέλεσμα, και στέλνει απαντήσεις στους πελάτες Εφεδρικός εξυπηρετητής: ελέγχει την λειτουργία του πρωτεύοντα, και τον αντικαθιστά σε περίπτωση βλάβης Ο πελάτης στέλνει την αίτηση στον πρωτεύοντα, και περιμένει να λάβει απάντηση Αν δεν λάβει απάντηση σε εύλογο χρονικό διάστημα ή εντοπίσει βλάβη του πρωτεύοντος, προσπαθεί ξανά Κατανεμημένα Συστήματα 45 lalis@inf.uth.gr

application client front-end server group primary server2 server1 client server3 application front-end client request server reply intra-server comm. Κατανεμημένα Συστήματα 46 lalis@inf.uth.gr

client request S1 primary state k+1 reply state k S2 ack state k state k+1 S3 ack state k state k+1 Κατανεμημένα Συστήματα 47 lalis@inf.uth.gr

client request request primary S1 S2 S3 state k primary state k state k+1 reply ack state k state k+1 Κατανεμημένα Συστήματα 48 lalis@inf.uth.gr

Παρατηρήσεις Οι εφεδρικοί εξυπηρετητές πρέπει να μπορούν να εντοπίζουν βλάβες του (εκάστοτε) πρωτεύοντος, και να εκλέγουν τον νέο πρωτεύοντα εξυπηρετητή Για εξοικονόμηση πόρων, μπορεί να χρησιμοποιείται μόνο ένας εφεδρικός εξυπηρετητής, και να προστίθεται δυναμικά ένα νέος εφεδρικός κάθε φορά που ο εκάστοτε πρωτεύων παρουσιάζει βλάβη Η καθυστέρηση απόκρισης για την εφαρμογή αντιστοιχεί καθυστέρηση επεξεργασίας της αίτησης, συν την καθυστέρηση μετάδοσης της αλλαγής στους εφεδρικούς εξυπηρετητές Κατανεμημένα Συστήματα 49 lalis@inf.uth.gr

Ασύγχρονες αλλαγές Στο συμβατικό πρωτόκολλο παθητικής αναπαραγωγής, ο πρωτεύων εξυπηρετητής στέλνει την απάντηση στον πελάτη αφού λάβει τις επιβεβαιώσεις Εναλλακτικά, ο πρωτεύων μπορεί να στείλει την απάντηση στον πελάτη πριν λάβει επιβεβαιώσεις από τους εφεδρικούς Όμως, σε περίπτωση βλάβης του πρωτεύοντος, μπορεί να προκληθεί ασυνέπεια σε επίπεδο εφαρμογής ο πελάτης μπορεί να λάβει απάντηση χωρίς η κατάσταση του πρωτεύοντος να έχει προωθηθεί στους εφεδρικούς ο νέος πρωτεύων θα έχει μια παλιά κατάσταση Κατανεμημένα Συστήματα 50 lalis@inf.uth.gr

client S1 primary request state k reply state k+1 S2 ack state k state k+1 S3 ack state k state k+1 Κατανεμημένα Συστήματα 51 lalis@inf.uth.gr

client request reply request S1 primary state k+1 state k S2 state k S3 primary επεξεργασία θα γίνει με βάση την παλιά κατάσταση state k Κατανεμημένα Συστήματα 52 lalis@inf.uth.gr

Ανοχή για προσωρινές βλάβες Ο εξυπηρετητής που παρουσίασε βλάβη επανεκκινείται Επιπλέον, πρέπει να αρχικοποιηθεί κατάλληλα, έτσι ώστε να είναι σε θέση να αναλάβει λειτουργία στα πλαίσια του σχήματος αντιγραφής Χρειάζεται κατάλληλος συγχρονισμός, έτσι ώστε ο ανακάμπτων εξυπηρετητής να λάβει την σωστή εσωτερική κατάσταση Ενεργητική αναπαραγωγή: ιδανικά, η πιο πρόσφατη κατάσταση της ομάδας των ενεργών αντιγράφων Παθητική αναπαραγωγή: η πιο πρόσφατη κατάσταση που έστειλε ο πρωτεύων στα εφεδρικά αντίγραφα Κατανεμημένα Συστήματα 53 lalis@inf.uth.gr

Σχήματα «χαλαρού» συγχρονισμού Ανεξάρτητος χειρισμός πράξεων ανάγνωσης από οποιονδήποτε εξυπηρετητή, χωρίς κανένα συγχρονισμό με τις πράξεις αλλαγής/γραψίματος Υλοποίηση πρωτοκόλλων «τελικής συνέπειας» (eventual consistency): μετά την πάροδο ενός χρονικού διαστήματος (χωρίς να γίνονται αλλαγές και χωρίς να συμβούν βλάβες), όλα τα αντίγραφα θα καταλήξουν στην ίδια κατάσταση Ο χαλαρός συγχρονισμός κλιμακώνει για μεγάλο αριθμό εξυπηρετητών πάνω από ένα (αργό) δίκτυο Κατανεμημένα Συστήματα 54 lalis@inf.uth.gr