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

Σχετικά έγγραφα
Κατανεμημένα Συστήματα Ι

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

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

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

Μοντέλο Σύγχρονου ικτύου. Κατανεµηµένα Συστήµατα Ι Μάθηµα Βασικής Επιλογής, Χειµερινού Εξαµήνου Τοµέας Εφαρµογών και Θεµελιώσεων

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

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

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

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

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

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

Εκλογή αρχηγού σε σύγχρονο δακτύλιο: Οι αλγόριθμοι LCR και HS. 1 Ο αλγόριθμος LCR (Le Lann, Chang, and Roberts)

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

Μοντέλο Σύγχρονου ικτύου. Κατανεµηµένα Συστήµατα Ι Μάθηµα Βασικής Επιλογής, Χειµερινού Εξαµήνου Τοµέας Εφαρµογών και Θεµελιώσεων

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

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

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

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

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

Προηγούµενο Μάθηµα. Κατανεµηµένα Συστήµατα Ι Μάθηµα Βασικής Επιλογής, Χειµερινού Εξαµήνου Τοµέας Εφαρµογών και Θεµελιώσεων

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

Διάλεξη 10: Αλγόριθμοι Αμοιβαίου Αποκλεισμού σε περιβάλλον ανταλλαγής μηνυμάτων. ΕΠΛ 432: Κατανεμημένοι Αλγόριθμοι

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

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

Consensus and related problems

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

Διάλεξη 5: Κάτω Φράγμα για Αλγόριθμους Εκλογής Προέδρου. ΕΠΛ 432: Κατανεμημένοι Αλγόριθμοι

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

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

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

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

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

Ειδικά θέματα Αλγορίθμων και Δομών Δεδομένων (ΠΛΕ073) Απαντήσεις 1 ου Σετ Ασκήσεων

Διάλεξη 15: Ατομική ΚΚΜ Εγγραφής/Ανάγνωσης με Γρήγορες Λειτουργίες. ΕΠΛ 432: Κατανεμημένοι Αλγόριθμοι

Προηγούµενο Μάθηµα. Κατανεµηµένα Συστήµατα Ι Μάθηµα Βασικής Επιλογής, Χειµερινού Εξαµήνου Τοµέας Εφαρµογών και Θεµελιώσεων. Σύνοψη 3 ης ιάλεξης

Προηγούµενο Μάθηµα. Κατανεµηµένα Συστήµατα Ι Μάθηµα Βασικής Επιλογής, Χειµερινού Εξαµήνου Τοµέας Εφαρµογών και Θεµελιώσεων. Υποστήριξη Φοιτητών

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

Κεφάλαιο 11 Ένωση Ξένων Συνόλων

ΕΠΛ 211: Θεωρία Υπολογισμού και Πολυπλοκότητας. Διάλεξη 2: Μαθηματικό Υπόβαθρο

Παράδειγµα: Προσοµοίωση µιας ουράς FIFO Οι λειτουργίες που υποστηρίζονται από µια ουρά FIFO είναι: [enq(q,x), ack(q)] [deq(q), return(q,x)] όπου x είν

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

Διάλεξη 11: Αιτιότητα Διάταξη Γεγονότων. ΕΠΛ 432: Κατανεμημένοι Αλγόριθμοι

Διάλεξη 14: Ατομική ΚΚΜ Εγγραφής/Ανάγνωσης στην Παρουσία Σφαλμάτων. ΕΠΛ 432: Κατανεμημένοι Αλγόριθμοι

Λύσεις 4ης Σειράς Ασκήσεων

Επαγωγή και αναδρομή για άκυκλα συνεκτικά γραφήματα

Δυναμικός προγραμματισμός για δέντρα

Προηγούµενο Μάθηµα. Κατανεµηµένα Συστήµατα Ι Μάθηµα Βασικής Επιλογής, Χειµερινού Εξαµήνου Τοµέας Εφαρµογών και Θεµελιώσεων. Υποστήριξη Φοιτητών

ΕΝΑΣ ΔΙΚΡΙΤΗΡΙΟΣ ΑΛΓΟΡΙΘΜΟΣ SIMPLEX

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

Ιδιοκτησία Αντικειµένου

Αλγόριθμοι και Πολυπλοκότητα

Υπολογιστικά & Διακριτά Μαθηματικά

Πίνακες Διασποράς. Χρησιμοποιούμε ένα πίνακα διασποράς T και μια συνάρτηση διασποράς h. Ένα στοιχείο με κλειδί k αποθηκεύεται στη θέση

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

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

Μορφές αποδείξεων. Μαθηματικά Πληροφορικής 2ο Μάθημα. Μορφές αποδείξεων (συνέχεια) Εξαντλητική μέθοδος

Παραδείγματα μεταβλητών

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

Κρυπτογραφία. Έλεγχος πρώτων αριθών-παραγοντοποίηση. Διαφάνειες: Άρης Παγουρτζής Πέτρος Ποτίκας

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

f x 0 για κάθε x και f 1

Εισαγωγή στους Αλγορίθμους

d k 10 k + d k 1 10 k d d = k i=0 d i 10 i.

Θεωρία Γραφημάτων 5η Διάλεξη

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

Διάλεξη 9: Αλγόριθμοι Αμοιβαίου Αποκλεισμού με τη χρήση μεταβλητών Ανάγνωσης/Εγγραφής. ΕΠΛ 432: Κατανεμημένοι Αλγόριθμοι

Συνήθεις Διαφορικές Εξισώσεις Ι Ασκήσεις - 19/10/2017. Ακριβείς Διαφορικές Εξισώσεις-Ολοκληρωτικοί Παράγοντες. Η πρώτης τάξης διαφορική εξίσωση

Ελεγχος, Αξιοπιστία και Διασφάλιση Ποιότητας Λογισµικού Πολυπλοκότητα

B = {x A : f(x) = 1}.

HY380 Αλγόριθμοι και πολυπλοκότητα Hard Problems

Σειρά Προβλημάτων 1 Λύσεις

Διακριτά Μαθηματικά ΙΙ Χρήστος Νομικός Τμήμα Μηχανικών Η/Υ και Πληροφορικής Πανεπιστήμιο Ιωαννίνων 2018 Χρήστος Νομικός ( Τμήμα Μηχανικών Η/Υ Διακριτά

Επαγωγή και αναδρομή για συνεκτικά γραφήματα

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

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

Το πρόβλημα μονοδρόμησης (The One-Way Street Problem)

Αιτιώδεις Σχέσεις και Χρονισµός. Παναγιώτα Φατούρου Αρχές Κατανεµηµένου Υπολογισµού

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

Θεωρία Γραφημάτων 5η Διάλεξη

Τυχαιοκρατικοί Αλγόριθμοι

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

Διαλογικά Συσ τήματα Αποδείξεων Διαλογικά Συστήματα Αποδείξεων Αντώνης Αντωνόπουλος Κρυπτογραφία & Πολυπλοκότητα 17/2/2012

Σκοπός του µαθήµατος. Κατανεµηµένα Συστήµατα Ι Μάθηµα Βασικής Επιλογής, Χειµερινού Εξαµήνου Τοµέας Εφαρµογών και Θεµελιώσεων

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

ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΦΡΟΝΤΙΣΤΗΡΙΟ ΑΛΓΟΡΙΘΜΩΝ ΒΟΗΘΟΣ: ΒΑΓΓΕΛΗΣ ΔΟΥΡΟΣ

ΚΕΦΑΛΑΙΟ 1: Τα είδη των Δικτύων Εισαγωγή

Αριθμοθεωρητικοί Αλγόριθμοι

Δρομολόγηση (Routing)

Διάλεξη 3: Αλγόριθμοι σε Γράφους ΙΙ. ΕΠΛ 432: Κατανεμημένοι Αλγόριθμοι

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ & ΥΠΟΛΟΓΙΣΤΙΚΗ ΦΥΣΙΚΗ

e 2 S F = [V (H), V (H)]. 3-1 e 1 e 3

Διακριτά Μαθηματικά ΙΙ Χρήστος Νομικός Τμήμα Μηχανικών Η/Υ και Πληροφορικής Πανεπιστήμιο Ιωαννίνων 2018 Χρήστος Νομικός ( Τμήμα Μηχανικών Η/Υ Διακριτά

ILP-Feasibility conp

Το Πρόβληµα της Συναίνεσης. Κατανεµηµένα Συστήµατα Ι Μάθηµα Βασικής Επιλογής, Χειµερινού Εξαµήνου Τοµέας Εφαρµογών και Θεµελιώσεων. Παρουσία σφαλµάτων

ΑΝΑΛΥΣΗ 1 ΤΕΤΑΡΤΟ ΜΑΘΗΜΑ, Μ. Παπαδημητράκης.

Blum Complexity. Αλγόριθμοι και Πολυπλοκότητα ΙΙ. Παναγιώτης Γροντάς. Δεκέμβριος

Εισαγωγή στους Αλγορίθμους Ενότητα 7η

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

u v 4 w G 2 G 1 u v w x y z 4

Εισαγωγικές Έννοιες. ημήτρης Φωτάκης. Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών. Εθνικό Μετσόβιο Πολυτεχνείο

Transcript:

Συναίνεση με σφάλματα διεργασιών Κατανεμημένα Συστήματα Ι 5η Διάλεξη 10 Νοεμβρίου 2016 Παναγιώτα Παναγοπούλου Κατανεμημένα Συστήματα Ι 5η Διάλεξη 1

Συναίνεση με σφάλματα διεργασιών Προηγούμενη διάλεξη Συναίνεση με σφάλματα επικοινωνίας της συντονισμένης επίθεσης Ντετερμινιστική εκδοχή: αδυναμία επίλυσης Πιθανοτική εκδοχή: ο αλγόριθμος RandomA ack Κατανεμημένα Συστήματα Ι 5η Διάλεξη 2

Περίληψη 1 Συναίνεση με σφάλματα διεργασιών 2 Ορισμός του προβλήματος Ο αλγόριθμος TwoPhaseCommit Κατανεμημένα Συστήματα Ι 5η Διάλεξη 3

1 Συναίνεση με σφάλματα διεργασιών 2 Ορισμός του προβλήματος Ο αλγόριθμος TwoPhaseCommit Κατανεμημένα Συστήματα Ι 5η Διάλεξη 4

Συναίνεση με σφάλματα διεργασιών Σύγχρονο μοντέλο Τώρα μπορούν να χαλάσουν διεργασίες, όχι κανάλια Στην πραγματικότητα χαλάνε επεξεργαστές (δηλ hardware) Δύο βασικά μοντέλα: Σφάλματα τερματισμού Βυζαντινά σφάλματα Κατανεμημένα Συστήματα Ι 5η Διάλεξη 5

Σφάλματα διεργασιών Μοντέλα Σφάλματα τερματισμού: Oι διεργασίες μπορεί να σταματήσουν να δουλεύουν απροειδοποίητα Mοντελοποιούν απρόβλεπτες βλάβες επεξεργαστών Βυζαντινά σφάλματα: Οι εσφαλμένες διεργασίες μπορούν να παρουσιάσουν αυθαίρετη συμπεριφορά Μοντελοποιούν αυθαίρετους τύπους κακής λειτουργίας επεξεργαστών (ακόμα και εχθρική συμπεριφορά) Κατανεμημένα Συστήματα Ι 5η Διάλεξη 6

της συμφωνίας Κάθε διεργασία παίρνει μια αρχική τιμή από ένα σύνολο V Όλες οι μη εσφαλμένες διεργασίες πρέπει να δώσουν εξόδους από το ίδιο σύνολο V, υπό απλούς περιορισμούς συμφωνίας και εγκυρότητας Συμφωνία: όλες πρέπει να αποφασίσουν την ίδια τιμή Εγκυρότητα: όταν όλες ξεκινούν με είσοδο v, πρέπει όλες να αποφασίσουν v Πρακτικές εφαρμογές: Ξεκίνησε από την ανάπτυξη συστημάτων ελέγχου που βρίσκονται πάνω σε αεροσκάφη Διαφορετικοί μετρητές ύψους (επεξεργαστές) προσπαθούν να συμφωνήσουν στο υψόμετρο του αεροσκάφους Μερικοί μπορεί να είναι χαλασμένοι Κατανεμημένα Συστήματα Ι 5η Διάλεξη 7

Υποθέσεις Συναίνεση με σφάλματα διεργασιών Υποθέτουμε περιορισμούς στη συχνότητα των σφαλμάτων Υποθέτουμε οτι ο αριθμός των σφαλμάτων που μπορεί να συμβούν είναι φραγμένος εκ των προτέρων από σταθερό αριθμό f Εναλλακτικές προσεγγίσεις κάνουν πιθανοτική υπόθεση για τα σφάλματα Ο σταθερός αριθμός f: αποφεύγει τις δυσκολίες της πιθανοτικής ανάλυσης, είναι ρεαλιστικός όταν γνωρίζουμε ότι για ένα σύστημα είναι πρακτικά αδύνατον να συμβούν περισσότερα από f σφάλματα, έχει το πρόβλημα ότι υποθέτει αρνητικό συσχετισμό σφαλμάτων, ενώ στην πράξη πολλές φορές τα σφάλματα συμβαίνουν ανεξάρτητα ή μπορεί και η ύπαρξη πολλών σφαλμάτων να αυξάνει την πιθανότητα να συμβούν κι άλλα (θετικός συσχετισμός) Κατανεμημένα Συστήματα Ι 5η Διάλεξη 8

της συμφωνίας Συνεκτικό μη κατευθυνόμενο γράφημα με n κόμβους (διεργασίες) 1, 2,, n όπου κάθε μία γνωρίζει όλο το γράφημα Κάθε διεργασία παίρνει αρχικά μια είσοδο από ένα σύνολο τιμών V Κάθε τιμή εισόδου αντιστοιχεί σε ακριβώς μία αρχική κατάσταση Στόχος είναι κάθε διεργασία να αποφασίσει τελικά μία έξοδο από το V Επιτρέπουμε σφάλματα σε το πολύ f διεργασίες Τα κανάλια τώρα είναι απολύτως αξιόπιστα Κατανεμημένα Συστήματα Ι 5η Διάλεξη 9

Μοντέλο σφαλμάτων τερματισμού Οποιαδήποτε στιγμή, μια διεργασία μπορεί να σταματήσει εντελώς να συμμετέχει (δεν κάνει άλλα βήματα) Μπορεί να σταματήσει στη μέση ενός βήματος αποστολής μηνυμάτων: μπορεί να σταλεί μόνο ένα υποσύνολο των μηνυμάτων, άρα υποθέτουμε ότι μπορεί να σταλεί οποιοδήποτε υποσύνολο Μπορεί να σταματήσει αφού στείλει τα μηνύματά της αλλά προτού πραγματοποιήσει αλλαγή κατάστασης Κατανεμημένα Συστήματα Ι 5η Διάλεξη 10

Συνθήκες ορθότητας για το πρόβλημα της συμφωνίας Συμφωνία: Δεν υπάρχουν δύο διεργασίες που να αποφασίζουν διαφορετικές τιμές Εγκυρότητα: Εάν όλες ξεκινήσουν με την ίδια αρχική τιμή v V, τότε το v είναι η μόνη δυνατή τιμή απόφασης Τερματισμός: Όλες οι μη εσφαλμένες διεργασίες τελικά αποφασίζουν Κατανεμημένα Συστήματα Ι 5η Διάλεξη 11

Αλγόριθμοι για συμφωνία με σφάλματα τερματισμού Θα μελετήσουμε την ειδική περίπτωση πλήρους γραφήματος με n κόμβους Βασικός αλγόριθμος FloodSet Πολύ απλός αλγόριθμος Οι διεργασίες απλώς προωθούν όλες τις τιμές του V που έχουν ακούσει και χρησιμοποιούν έναν απλό κανόνα απόφασης στο τέλος Υποθέτουμε: v 0 : μια προκαθορισμένη default τιμή στο V b: άνω φράγμα στον αριθμό των bits που χρειάζονται για την αναπαράσταση οποιασδήποτε τιμής του V Κατανεμημένα Συστήματα Ι 5η Διάλεξη 12

Άτυπη περιγραφή του αλγορίθμου FloodSet: Κάθε διεργασία διατηρεί μια μεταβλητή W που περιέχει ένα υποσύνολο του V (αρχικά μόνο την αρχική τιμή της διεργασίας) Για f + 1 γύρους κάθε διεργασία κάνει broadcast (το γράφημα είναι πλήρες άρα στέλνει σε όλες τις διεργασίες) το W και προσθέτει τα στοιχεία των συνόλων που παρέλαβε στο W Στο τέλος του γύρου f + 1, κάθε διεργασία i εφαρμόζει τον ακόλουθο κανόνα απόφασης: Εάν το W i περιέχει μόνο μία τιμή, τότε η i δίνει ως έξοδο (αποφασίζει) την τιμή αυτή Διαφορετικά αποφασίζει την προσυμφωνημένη τιμή v 0 Κατανεμημένα Συστήματα Ι 5η Διάλεξη 13

Ψευδοκώδικας (1/2) Το αλφάβητο μηνυμάτων M αποτελείται από υποσύνολα του V states i αποτελείται από: rounds N, αρχικά 0 decision V {unknown}, αρχικά unknown W V, αρχικά {v i } (η τιμή εισόδου της i) msgs i : if rounds f then στείλε W σε όλες τις άλλες διεργασίες Κατανεμημένα Συστήματα Ι 5η Διάλεξη 14

Ψευδοκώδικας (2/2) trans i : rounds rounds + 1 Έστω X j το μήνυμα από τη διεργασία j, για κάθε j W W j X j if rounds = f + 1 then if W = {v} then decision v else decision v 0 Κατανεμημένα Συστήματα Ι 5η Διάλεξη 15

Παράδειγμα εκτέλεσης αλγορίθμου FloodSet Έστω ένα σύγχρονο πλήρες δίκτυο με n = 4 και f = 2 Οι διεργασίες έχουν μια τιμή εισόδου (ροζ κουτί) Οι διεργασίες διατηρούν μια λίστα (μπλέ κουτί) Οι διεργασίες έχουν μια τιμή εξόδου (κίτρινο κουτί) Πλήρως συνδεδεμένο δίκτυο Κατανεμημένα Συστήματα Ι 5η Διάλεξη 16

Παράδειγμα εκτέλεσης αλγορίθμου FloodSet Έστω ένα σύγχρονο πλήρες δίκτυο με n = 4 και f = 2 Οι διεργασίες έχουν μια τιμή εισόδου (ροζ κουτί) Οι διεργασίες διατηρούν μια λίστα (μπλέ κουτί) Οι διεργασίες έχουν μια τιμή εξόδου (κίτρινο κουτί) 1ος γύρος σφάλμα στη διεργασία 3 Κατανεμημένα Συστήματα Ι 5η Διάλεξη 16

Παράδειγμα εκτέλεσης αλγορίθμου FloodSet Έστω ένα σύγχρονο πλήρες δίκτυο με n = 4 και f = 2 Οι διεργασίες έχουν μια τιμή εισόδου (ροζ κουτί) Οι διεργασίες διατηρούν μια λίστα (μπλέ κουτί) Οι διεργασίες έχουν μια τιμή εξόδου (κίτρινο κουτί) 2ος γύρος σφάλμα στη διεργασία 4 Κατανεμημένα Συστήματα Ι 5η Διάλεξη 16

Παράδειγμα εκτέλεσης αλγορίθμου FloodSet Έστω ένα σύγχρονο πλήρες δίκτυο με n = 4 και f = 2 Οι διεργασίες έχουν μια τιμή εισόδου (ροζ κουτί) Οι διεργασίες διατηρούν μια λίστα (μπλέ κουτί) Οι διεργασίες έχουν μια τιμή εξόδου (κίτρινο κουτί) 3ος γύρος κανένα σφάλμα Κατανεμημένα Συστήματα Ι 5η Διάλεξη 16

Παράδειγμα εκτέλεσης αλγορίθμου FloodSet Έστω ένα σύγχρονο πλήρες δίκτυο με n = 4 και f = 2 Οι διεργασίες έχουν μια τιμή εισόδου (ροζ κουτί) Οι διεργασίες διατηρούν μια λίστα (μπλέ κουτί) Οι διεργασίες έχουν μια τιμή εξόδου (κίτρινο κουτί) 3ος γύρος απόφαση Κατανεμημένα Συστήματα Ι 5η Διάλεξη 16

Απόδειξη ορθότητας του FloodSet Έστω W i (r) η τιμή (τιμές) της μεταβλητής W της διεργασίας i μετά από r γύρους Λέμε ότι μια διεργασία είναι ενεργή μετά από r γύρους, αν δεν έχει παρουσιάσει σφάλμα μέχρι το τέλος του γύρου r Το επόμενο λήμμα λέει πολύ απλά ότι αν σε κάποιο γύρο δε χαλάσει καμμία διεργασία (από τις ενεργές) τότε στο τέλος αυτού του γύρου όλες οι ενεργές έχουν το ίδιο W Κατανεμημένα Συστήματα Ι 5η Διάλεξη 17

Χαρακτηριστικά του αλγορίθμου FloodSet (1) Λήμμα (FloodSet1) Αν καμμία διεργασία δεν αντιμετωπίσει ένα σφάλμα τερματισμού κατά τον γύρο r, 1 r f + 1, τότε για κάθε ζεύγος διεργασιών i, j, που δεν έχει αντιμετωπίσει κάποιο σφάλμα μετά από r γύρους, W i (r) = W j (r) Κατανεμημένα Συστήματα Ι 5η Διάλεξη 18

Χαρακτηριστικά του αλγορίθμου FloodSet (1) Λήμμα (FloodSet1) Αν καμμία διεργασία δεν αντιμετωπίσει ένα σφάλμα τερματισμού κατά τον γύρο r, 1 r f + 1, τότε για κάθε ζεύγος διεργασιών i, j, που δεν έχει αντιμετωπίσει κάποιο σφάλμα μετά από r γύρους, W i (r) = W j (r) Απόδειξη Έστω A(r) το σύνολο των διεργασιών που δεν έχουν αντιμετωπίσει σφάλμα μετά από r 1 γύρους Έστω ότι κανένα σφάλμα δεν εμφανίζεται στο γύρο r Τότε i A(r), η i θα στείλει W i (r 1) σε όλες τις άλλες Άρα στο γύρο r, W i (r) = j A(r) W j (r 1), i A(r) (δηλαδή όλες το ίδιο) Κατανεμημένα Συστήματα Ι 5η Διάλεξη 18

Χαρακτηριστικά του αλγορίθμου FloodSet (2) Το επόμενο λήμμα λέει ότι αν όλες οι ενεργές διεργασίες έχουν το ίδιο W στο τέλος κάποιου γύρου r, τότε αυτό θα συνεχίζει να ισχύει για όλους τους επόμενους γύρους Λήμμα (FloodSet2) Έστω ότι για κάθε ζεύγος διεργασιών i, j, που δεν έχει αντιμετωπίσει κάποιο σφάλμα μετά από r γύρους, W i (r) = W j (r) Τότε σε κάθε γύρο r, r r f + 1, για κάθε ζεύγος διεργασιών i, j που δεν έχει αντιμετωπίσει κάποιο σφάλμα μετά από r γύρους, W i (r ) = W j (r ) Κατανεμημένα Συστήματα Ι 5η Διάλεξη 19

Χαρακτηριστικά του αλγορίθμου FloodSet (3) Απόδειξη Οι διεργασίες που δεν έχουν αντιμετωπίσει κάποιο σφάλμα μετά από r γύρους έχουν ίδιες λίστες Η μόνη περίπτωση για να ισχύει W i (r ) W j (r ), r r θα ήταν να έρθει κάποια πληροφορία από τις διεργασίες που έχουν παρουσιάσει σφάλμα, το οποίο όμως είναι αδύνατον Κατανεμημένα Συστήματα Ι 5η Διάλεξη 20

Χαρακτηριστικά του αλγορίθμου FloodSet (4) Το ακόλουθο λήμμα είναι σημαντικό για την ιδιότητα της συμφωνίας Λήμμα (FloodSet3) Έστω ένα ζεύγος διεργασιών i, j, που δεν έχει αντιμετωπίσει κάποιο σφάλμα μετά από f + 1 γύρους Τότε W i (f + 1) = W j (f + 1) (δηλαδή οι i και j έχουν τις ίδιες λίστες στο τέλος του γύρου f + 1) Κατανεμημένα Συστήματα Ι 5η Διάλεξη 21

Χαρακτηριστικά του αλγορίθμου FloodSet (4) Το ακόλουθο λήμμα είναι σημαντικό για την ιδιότητα της συμφωνίας Λήμμα (FloodSet3) Έστω ένα ζεύγος διεργασιών i, j, που δεν έχει αντιμετωπίσει κάποιο σφάλμα μετά από f + 1 γύρους Τότε W i (f + 1) = W j (f + 1) (δηλαδή οι i και j έχουν τις ίδιες λίστες στο τέλος του γύρου f + 1) Απόδειξη Εφόσον παρουσιάζονται το πολύ f σφάλματα: Υπάρχει κάποιος γύρος r, 1 r f + 1 όπου καμμία διεργασία δεν αντιμετωπίζει σφάλμα Σύμφωνα με το Λήμμα FloodSet1 W i (r) = W j (r) για κάθε i, j που δεν έχουν αντιμετωπίσει σφάλμα μετά από r γύρους Σύμφωνα με το Λήμμα FloodSet2 W i (f + 1) = W j (f + 1) για κάθε i, j που δεν έχουν αντιμετωπίσει σφάλμα μετά από f + 1 γύρους Κατανεμημένα Συστήματα Ι 5η Διάλεξη 21

Ορθότητα του αλγορίθμου FloodSet Θεώρημα λύνει το πρόβλημα της συναίνεσης για σφάλματα τερματισμού Απόδειξη Η συνθήκη τερματισμού ικανοποιείται: όλες οι διεργασίες που δεν αντιμετώπισαν σφάλμα μέχρι το τέλος του γύρου f + 1 τερματίζουν Η συνθήκη εγκυρότητας ικανοποιείται: Αν όλες οι διεργασίες έχουν αρχική τιμή v τότε η μοναδική τιμή που στέλνεται είναι η v Η λίστα W i δεν θα αλλάξει μέχρι το τέλος του γύρου f + 1 Η συνθήκη συμφωνίας ικανοποιείται: προκύπτει από το Λήμμα FloodSet3 Κατανεμημένα Συστήματα Ι 5η Διάλεξη 22

Συναίνεση με σφάλματα διεργασιών Πολυπλοκότητα του αλγορίθμου FloodSet Ανάλυση πολυπλοκότητας: Κατανεμημένα Συστήματα Ι 5η Διάλεξη 23

Συναίνεση με σφάλματα διεργασιών Πολυπλοκότητα του αλγορίθμου FloodSet Ανάλυση πολυπλοκότητας: Η χρονική πολυπλοκότητα είναι f + 1 γύροι Η πολυπλοκότητα επικοινωνίας είναι O((f + 1) n 2 ) μηνύματα Κατανεμημένα Συστήματα Ι 5η Διάλεξη 23

Πολυπλοκότητα του αλγορίθμου FloodSet Ανάλυση πολυπλοκότητας: Η χρονική πολυπλοκότητα είναι f + 1 γύροι Η πολυπλοκότητα επικοινωνίας είναι O((f + 1) n 2 ) μηνύματα Το κάθε μήνυμα μπορεί να έχει μέγεθος O(n b) bits Η πολυπλοκότητα επικοινωνίας είναι O((f + 1) n 3 b) bits Κατανεμημένα Συστήματα Ι 5η Διάλεξη 23

Εναλλακτικός κανόνας απόφασης Είδαμε ότι ο FloodSet εγγυάται ότι όλες οι μη εσφαλμένες διεργασίες μαθαίνουν στο τέλος το ίδιο W Αν το W είναι ολικά διατεταγμένο, τότε οι διεργασίες θα μπορούσαν απλώς να αποφασίζουν πχ το min του W Προφανώς ικανοποιούν συμφωνία Επιπλέον ικανοποιούν την ακόλουθη ισχυρότερη συνθήκη εγκυρότητας: Κάθε απόφαση θα πρέπει να είναι αρχική τιμή κάποιας διεργασίας Έχει ως ειδική περίπτωση την προηγούμενη συνθήκη εγκυρότητας Κατανεμημένα Συστήματα Ι 5η Διάλεξη 24

Συναίνεση με σφάλματα διεργασιών Σφάλματα διεργασιών έναντι σφαλμάτων επικοινωνίας δείχνει ότι το πρόβλημα της συμφωνίας μπορεί να λυθεί όταν υπάρχουν σφάλματα διεργασιών της συντονισμένης επίθεσης δεν μπορεί να λυθεί όταν υπάρχουν σφάλματα επικοινωνίας Κατανεμημένα Συστήματα Ι 5η Διάλεξη 25

Ορισμός του προβλήματος Ο αλγόριθμος TwoPhaseCommit 1 Συναίνεση με σφάλματα διεργασιών 2 Ορισμός του προβλήματος Ο αλγόριθμος TwoPhaseCommit Κατανεμημένα Συστήματα Ι 5η Διάλεξη 26

Ορισμός του προβλήματος Ο αλγόριθμος TwoPhaseCommit της Επικύρωσης Δοσοληψιών Οι διεργασίες του συστήματος συμμετέχουν στην διεκπεραίωση μιας δοσοληψίας Η κάθε διεργασία, σύμφωνα με τις τοπικές πληροφορίες, εκφέρει μια άποψη για το αν η δοσοληψία πρέπει να επικυρωθεί, δηλαδή η διεκπεραίωση της ήταν επιτυχής Στη συνέχεια οι διεργασίες επικοινωνούν μεταξύ τους για να πάρουν μια κοινή απόφαση: αν όλες συναινούν στην επικύρωση, τότε η δοσοληψία μπορεί να επικυρωθεί, αλλιώς όχι Κατανεμημένα Συστήματα Ι 5η Διάλεξη 27

Εφαρμογή Συναίνεση με σφάλματα διεργασιών Ορισμός του προβλήματος Ο αλγόριθμος TwoPhaseCommit Πρόβλημα υποβολής (commit) σε κατανεμημένη βάση δεδομένων Απλουστευμένη εκδοχή όπου δεν χάνονται μηνύματα αλλά μπορούν να συμβούν σφάλματα διεργασιών Όπως είδαμε, το πρόβλημα δεν λύνεται με απεριόριστο αριθμό χαμένων μηνυμάτων Τώρα θα επιτρέψουμε αξιόπιστη επικοινωνία, αλλά απεριόριστο αριθμό σφαλμάτων τερματισμού διεργασιών Οι πιθανές τιμές εισόδου μπορεί να είναι 1: υποβολή (commit) ή 0: ματαίωση (abort) Κατανεμημένα Συστήματα Ι 5η Διάλεξη 28

Ορισμός Ορισμός του προβλήματος Ο αλγόριθμος TwoPhaseCommit Θεωρούμε ότι οι διεργασίες λύνουν το πρόβλημα της επικύρωσης δοσοληψιών όταν ικανοποιούνται οι τρεις συνθήκες: 1 Συμφωνία: Κανένα ζεύγος διεργασιών δεν αποφασίζει διαφορετικές τιμές εξόδου 2 Εγκυρότητα: Αν υπάρχει μια διεργασία με είσοδο 0 τότε όλες πρέπει να αποφασίσουν 0 Αν όλες έχουν είσοδο 1 και δεν παρουσιαστούν σφάλματα, τότε η μοναδική αποδεκτή απόφαση είναι το 1 3 Τερματισμός: χαλαρός εάν δεν παρουσιαστούν σφάλματα, όλες οι διεργασίες αποφασίζουν ισχυρός όλες οι διεργασίες που δεν αντιμετώπισαν κάποιο σφάλμα αποφασίζουν (λέγεται και non-blocking συνθήκη) Κατανεμημένα Συστήματα Ι 5η Διάλεξη 29

Ορισμός του προβλήματος Ο αλγόριθμος TwoPhaseCommit Διαφορές από άλλα προβλήματα Διαφορές από το πρόβλημα της συντονισμένης επίθεσης: Διαφορετική συνθήκη εγκυρότητας Εδώ μελετάμε σφάλματα διεργασιών και όχι επικοινωνίας Διαφορές από το πρόβλημα της συμφωνίας: Διαφορετική συνθήκη εγκυρότητας Εισαγωγή ασθενούς συνθήκης τερματισμού Επιτρέπουμε αυθαίρετο αριθμό σφαλμάτων αντί για το πολύ f Κατανεμημένα Συστήματα Ι 5η Διάλεξη 30

Δύο αλγόριθμοι Συναίνεση με σφάλματα διεργασιών Ορισμός του προβλήματος Ο αλγόριθμος TwoPhaseCommit TwoPhase Commit: blocking αλγόριθμος ThreePhase Commit: non-blocking αλγόριθμος Υποθέσεις: Υπάρχει ένας μοναδικός αρχηγός, έστω l Το δίκτυο είναι πλήρες Κατανεμημένα Συστήματα Ι 5η Διάλεξη 31

Ορισμός του προβλήματος Ο αλγόριθμος TwoPhaseCommit Ο αλγόριθμος TwoPhaseCommit (1) Εγγυάται μόνο ασθενή τερματισμό Γύρος 1: Όλες οι διεργασίες εκτός από την l στέλνουν τις τιμές εισόδου στην l Κάθε διεργασία με τιμή εισόδου 0 αποφασίζει 0 Η l συγκεντρώνει όλες αυτές τις τιμές συν τη δικιά της σε ένα διάνυσμα με δείκτες τα ονόματα των διεργασιών Εάν όλες οι θέσεις του διανύσματος καλυφθούν με 1, αποφασίζει 1 Εάν υπάρχει κάποιο 0 η κάποια κενή θέση (γιατί δεν έλαβε το αντίστοιχο μήνυμα) αποφασίζει 0 Κατανεμημένα Συστήματα Ι 5η Διάλεξη 32

Ορισμός του προβλήματος Ο αλγόριθμος TwoPhaseCommit Ο αλγόριθμος TwoPhaseCommit (2) Γύρος 2: H l κάνει broadcast την απόφασή της σε όλους Κάθε διεργασία (εκτός της l) που δεν είχε αποφασίσει στο γύρο 1 και παραλαμβάνει μήνυμα στο γύρο 2, αποφασίζει την τιμή του μηνύματος l l r = 1 Communication pattern when no failures occur r = 2 Κατανεμημένα Συστήματα Ι 5η Διάλεξη 33

Παράδειγμα Συναίνεση με σφάλματα διεργασιών Ορισμός του προβλήματος Ο αλγόριθμος TwoPhaseCommit l 1, 0 l 0 0 0 0 0 0 1 0 1 1 1 1 0, 0 1 1 1 0 0 0 0 0 r = 1 r = 2 vector: 1 0 1 1 1 one non-leader and l decide 0 the remaining decide 0 Κατανεμημένα Συστήματα Ι 5η Διάλεξη 34

Ορισμός του προβλήματος Ο αλγόριθμος TwoPhaseCommit Απόδειξη ορθότητας του TwoPhaseCommit Θεώρημα Ο αλγόριθμος TwoPhaseCommit λύνει το πρόβλημα της υποβολής με την ασθενή συνθήκη τερματισμού Απόδειξη Θα αποδείξουμε ότι ικανοποιεί τις συνθήκες 1 Συμφωνίας 2 Εγκυρότητας 3 Ασθενούς τερματισμού Κατανεμημένα Συστήματα Ι 5η Διάλεξη 35

Ορισμός του προβλήματος Ο αλγόριθμος TwoPhaseCommit Απόδειξη ορθότητας του TwoPhaseCommit Συμφωνία Συμφωνία: Υπάρχουν 3 περιπτώσεις (1) Η l δεν πρόλαβε να αποφασίσει (επειδή παρουσίασε σφάλμα τερματισμού) Στο γύρο 2 δεν αποφασίζει καμμία γιατί δεν έρχεται μήνυμα από την l Όλες οι αποφάσεις παίρνονται στον γύρο 1 από i l Όμως όλες αυτές οι αποφάσεις μπορούν να είναι μόνο 0 Άρα όσες αποφασίζουν συμφωνούν στο 0 (2) Η l αποφασίζει αλλά δεν στέλνει Πάλι όλες οι αποφάσεις παίρνονται στον r = 1 Αν i l αποφασίσει 0, σημαίνει ότι έχει ήδη στείλει 0, άρα η l αποφασίζει 0 Κατανεμημένα Συστήματα Ι 5η Διάλεξη 36

Ορισμός του προβλήματος Ο αλγόριθμος TwoPhaseCommit Απόδειξη ορθότητας του TwoPhaseCommit Συμφωνία (3) Η l αποφασίζει και στέλνει Αν i l αποφασίσει 0 στον r = 1, τότε και η l αποφασίζει 0, και όσες αποφασίσουν στον r = 2 αναγκαστικά συμφωνούν στο 0 της l Αν κανείς i l δεν αποφασίζει στον r = 1, τότε όλες οι αποφάσεις των i l παίρνονται στον r = 2 Αναγκαστικά συμφωνούν με της l και άρα μεταξύ τους Κατανεμημένα Συστήματα Ι 5η Διάλεξη 37

Ορισμός του προβλήματος Ο αλγόριθμος TwoPhaseCommit Απόδειξη ορθότητας του TwoPhaseCommit Συμφωνία Συνοψίζοντας: Όσες αποφασίζουν στον r = 2 αναγκαστικά συμφωνούν με την l (και η l έχει ήδη αποφασίσει) Όταν η l αποφασίζει (στο γύρο 1), αποφασίζει το ίδιο με όσες i l έχουν ήδη αποφασίσει: διότι όποια i l αποφασίζει στον γύρο r = 1, αποφασίζει 0 (επειδή έχει τιμή εισόδου 0) Όμως και η l αποφασίζει 0 γιατί είτε το μαθαίνει είτε δεν το μαθαίνει και έχει κενό στο vector της = = round 1 decisions i l = decision of = l round 2 decisions Κατανεμημένα Συστήματα Ι 5η Διάλεξη 38

Ορισμός του προβλήματος Ο αλγόριθμος TwoPhaseCommit Απόδειξη ορθότητας του TwoPhaseCommit Εγκυρότητα Εγκυρότητα: Αν i l έχει αρχική τιμή 0, τότε η l μπορεί να αποφασίσει μόνο 0 (ή ακούει 0 ή έχει κενό στο vector) άρα καμμία στον r = 2 δεν μπορεί να αποφασίσει 1 Αν η l έχει αρχική τιμή 0, τότε η μόνη της απόφαση μπορεί να είναι το 0, άρα και πάλι δεν μπορεί να αποφασίσει 1 στο δεύτερο γύρο Προφανώς αν όλες έχουν 1 και δεν συμβούν σφάλματα, η l αποφασίζει 1 στο τέλος του r = 1 και στον r = 2 όλες παραλαμβάνουν 1 και αποφασίζουν 1 Κατανεμημένα Συστήματα Ι 5η Διάλεξη 39

Ορισμός του προβλήματος Ο αλγόριθμος TwoPhaseCommit Απόδειξη ορθότητας του TwoPhaseCommit Ασθενής τερματισμός Τερματισμός (Ασθενής Συνθήκη): Όταν δεν συμβαίνουν σφάλματα, όσες έχουν αρχική τιμή 0 αποφασίζουν στον r = 1 Η l πάντα αποφασίζει στο τέλος του γύρου 1 Όλες οι υπόλοιπες αποφασίζουν στο τέλος του r = 2 (i l με αρχική τιμή 1) Στην πραγματικότητα ικανοποιείται: Αν η l δεν παρουσιάσει σφάλμα τερματισμού, τότε όλες οι μη εσφαλμένες αποφασίζουν Κατανεμημένα Συστήματα Ι 5η Διάλεξη 40

Ορισμός του προβλήματος Ο αλγόριθμος TwoPhaseCommit Πολυπλοκότητα του TwoPhaseCommit Η χρονική πολυπλοκότητα είναι προφανώς 2 γύροι Ο χειρότερος αριθμός μηνυμάτων είναι 2(n 1) Προκύπτει όταν δεν παρουσιάζονται σφάλματα Τα σφάλματα μπορεί μόνο να μειώσουν αυτόν τον αριθμό Κατανεμημένα Συστήματα Ι 5η Διάλεξη 41

Ορισμός του προβλήματος Ο αλγόριθμος TwoPhaseCommit Ιδέα Βελτίωση του TwoPhaseCommit που εγγυάται ισχυρό τερματισμό Ιδέα: Η l αποφασίζει 1 μόνο αν κάθε διεργασία που δεν έχει παρουσιάσει ακόμα σφάλμα είναι έτοιμη να αποφασίσει 1 Αυτό απαιτεί περισσότερους γύρους Κατανεμημένα Συστήματα Ι 5η Διάλεξη 42

Ορισμός του προβλήματος Ο αλγόριθμος TwoPhaseCommit Γύρος 1 Γύρος 1: Ίδιος με TwoPhaseCommit, με τη διαφορά ότι αν είναι να αποφασίσει 1 η l αντί να το κάνει γίνεται ready και δεν αποφασίζει ακόμα: Όλες οι διεργασίες εκτός της l στέλνουν τις αρχικές τους τιμές στην l Κάθε διεργασία εκτός της l με αρχική τιμή 0 αποφασίζει 0 Η l συλλέγει όλες τις τιμές (και τη δική της) σε ένα διάνυσμα Αν όλες οι συνιστώσες του διανύσματος έχουν την τιμή 1, τότε η l γίνεται ready (αλλά δεν αποφασίζει) Διαφορετικά, η l αποφασίζει 0 Κατανεμημένα Συστήματα Ι 5η Διάλεξη 43

Ορισμός του προβλήματος Ο αλγόριθμος TwoPhaseCommit Γύρος 2 Γύρος 2: Αν η l έχει αποφασίσει 0, κάνει broadcast decide(0) Διαφορετικά κάνει broadcast ready Κάθε διεργασία που παραλαμβάνει decide(0) αποφασίζει 0 Κάθε διεργασία που παραλαμβάνει ready γίνεται ready Αν η l ήταν ready αποφασίζει 1 Κατανεμημένα Συστήματα Ι 5η Διάλεξη 44

Ορισμός του προβλήματος Ο αλγόριθμος TwoPhaseCommit Γύρος 3 Γύρος 3: Αν η l αποφάσισε 1, κάνει broadcast decide(1) Κάθε διεργασία που παραλαμβάνει decide(1) αποφασίζει 1 Κατανεμημένα Συστήματα Ι 5η Διάλεξη 45

Ορισμός του προβλήματος Ο αλγόριθμος TwoPhaseCommit Συμφωνία και εγκυρότητα Η συμφωνία και η εγκυρότητα συνεχίζουν να ικανοποιούνται: Και οι δύο συνθήκες έχουν να κάνουν με τις τιμές που αποφασίζονται και όχι με το πότε αποφασίζονται Η μόνη διαφορά με τον TwoPhaseCommit είναι ότι τώρα έχουμε καθυστερήσει κατά 1 γύρο την απόφαση της l και κατά 1 γύρο την απόφαση κάθε i l που πριν αποφάσιζε στο γύρο 2 Κατανεμημένα Συστήματα Ι 5η Διάλεξη 46

Ορισμός του προβλήματος Ο αλγόριθμος TwoPhaseCommit Ισχυρός τερματισμός Εξακολουθεί να ικανοποιείται η συνθήκη: Εάν η διεργασία l δεν παρουσιάσει σφάλμα, τότε όλες οι μη εσφαλμένες αποφασίζουν Συνεχίζει να υπάρχει η περίπτωση όταν η l χαλάσει ορισμένες ενεργές διεργασίες να μην πάρουν καμμία απόφαση Το λύνουμε με ένα πρωτόκολλο τερματισμού που εκτελείται μετά τους πρώτους τρεις γύρους Ιδέα: Όλες οι διεργασίες η μία μετά την άλλη παίζουν το ρόλο της l, δηλ του coordinator Έτσι αν έστω και μία δεν παρουσιάσει σφάλμα, όταν έρθει η σειρά της να γίνει coordinator θα κάνει όλες τις υπόλοιπες ενεργές να αποφασίσουν Κατανεμημένα Συστήματα Ι 5η Διάλεξη 47

Ορισμός του προβλήματος Ο αλγόριθμος TwoPhaseCommit Πρωτόκολλο τερματισμού Γύρος 4: Έστω l = 1 Όλες οι ενεργές διεργασίες στέλνουν την κατάστασή τους (dec0, dec1, ready, uncertain) στη διεργασία 2 Η 2 τις συλλέγει σε ένα διάνυσμα (μαζί με τη δική της) αγνοώντας όσες θέσεις δεν έλαβε Αν υάρχει dec0 και η 2 δεν έχει αποφασίσει, αποφασίζει 0 Αν υπάρχει dec1 και η 2 δεν έχει αποφασίσει, αποφασίζει 1 Αν όλες οι γεμισμένες θέσεις είναι uncertain, τότε η 2 αποφασίζει 0 Διαφορετικά (αν υπάρχουν uncertain και ready ή μόνο ready) η 2 γίνεται ready και δεν αποφασίζει ακόμα Κατανεμημένα Συστήματα Ι 5η Διάλεξη 48

Ορισμός του προβλήματος Ο αλγόριθμος TwoPhaseCommit Πρωτόκολλο τερματισμού Γύρος 5: Η 2 κάνει ότι έκανε και η 1 (l) στους γύρους 2 και 3 Αν έχει αποφασίσει κάνει broadcast την απόφασή της με decide μήνυμα Αν όχι, κάνει broadcast ready Κάθε διεργασία που δεν έχει αποφασίσει αποφασίζει ό,τι θα λάβει από την 2 Κάθε διεργασία που λαμβάνει ready, γίνεται ready Αν η 2 δεν έχει ακόμα αποφασίσει, αποφασίζει 1 Κατανεμημένα Συστήματα Ι 5η Διάλεξη 49

Ορισμός του προβλήματος Ο αλγόριθμος TwoPhaseCommit Πρωτόκολλο τερματισμού Γύρος 6: Αν η 2 έχει αποφασίσει, κάνει broadcast decide(1) Κάθε διεργασία που δεν έχει ακόμα αποφασίσει και το παραλαμβάνει αποφασίζει Μετά το γύρο 6: το πρωτόκολλο συνεχίζει με τριάδες παρόμοιων γύρων κάθε φορά με άλλον coordinator στη θέση της 2, δηλ 3, 4,, n Κατανεμημένα Συστήματα Ι 5η Διάλεξη 50

Ορισμός του προβλήματος Ο αλγόριθμος TwoPhaseCommit Χαρακτηριστικά του αλγορίθμου ThreePhaseCommit Οι συνθήκες συμφωνίας και εγκυρότητας μπορεί να δειχθεί με επαγωγή ότι ικανοποιούνται μετά από οποιονδήποτε αριθμό γύρων Ισχυρή συνθήκη τερματισμού: Αν όλες χαλάσουν τότε ισχύει τετριμμένα Διαφορετικά, τουλάχιστον μία διεργασία i θα παραμείνει για πάντα ενεργή Όταν η i θα γίνει coordinator, τότε κάθε μη εσφαλμένη διεργασία αποφασίζει Η χρονική πολυπλοκότητα είναι 3n γύροι (O(n)) Η πολυπλοκότητα επικοινωνίας είναι O(n 2 ) Κατανεμημένα Συστήματα Ι 5η Διάλεξη 51

Συναίνεση με σφάλματα διεργασιών Βιβλιογραφία Σημειώσεις του μαθήματος Βιβλίο Distributed Algorithms (N Lynch) Κεφάλαιο 6: Distributed Consensus with Process Failures (έως και 621) Κεφάλαιο 7: More Consensus Problems (μόνο 73) Κατανεμημένα Συστήματα Ι 5η Διάλεξη 52