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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Ατομική Διπλωματική Εργασία ΕΠΕΚΤΑΣΗ ΚΑΤΑΝΕΜΗΜΕΝΟΥ ΣΥΣΤΗΜΑΤΟΣ ΑΡΧΕΙΩΝ ΚΑΙ ΔΗΜΙΟΥΡΓΙΑ ΔΙΕΠΑΦΗΣ ΧΡΗΣΤΗ. Σωτήρης Σωτηρίου ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ

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

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

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

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

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

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

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

Γιατί υϖάρχει τέτοια καθολική κατάσταση;

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

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. Υλοποίηση και Πειραματική Αξιολόγηση Ενός Αλγόριθμου Ατομικών Αντικειμένων Γραφής-Ανάγνωσης.

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

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

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


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

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

YΒΡΙΔΙΚΗ ΚΡΥΠΤΟΓΡΑΦΙΑ

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

7.7 Πρωτόκολλο ARP. 1. Το πρωτόκολλο ARP μετατρέπει τις διευθύνσεις IP στις αντίστοιχες φυσικές. Σ Λ

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

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

Πρωτόκολλο ARP. Γεωργιλά Χιονία Καθηγήτρια Πληροφορικής ΠΕ1901

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

Τη φυσική (MAC) διεύθυνση που δίνει ο κατασκευαστής του δικτυακού υλικού στις συσκευές του (π.χ. στις κάρτες δικτύου). Η περιοχή διευθύνσεων που

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

Κρυπτογραφία. MAC - Γνησιότητα/Ακεραιότητα μηνύματος. Πέτρος Ποτίκας

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

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

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

Εικονική Μνήµη. Κεφάλαιο 8. Dr. Garmpis Aristogiannis - EPDO TEI Messolonghi

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

Ατομική Διπλωματική Εργασία ΥΛΟΠΟΙΗΣΗ ΚΑΤΑΝΕΜΗΜΕΝΟΥ ΣΥΣΤΗΜΑΤΟΣ ΑΡΧΕΙΩΝ ΒΑΣΙΣΜΕΝΟ ΣΕ ΑΛΓΟΡΙΘΜΟΥΣ ΓΡΑΦΗΣ ΚΑΙ ΑΝΑΓΝΩΣΗΣ ΑΤΟΜΙΚΩΝ ΑΝΤΙΚΕΙΜΕΝΩΝ

Συστήματα Παράλληλης και Κατανεμημένης Επεξεργασίας

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

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

Σύστημα Διαχείρισης Σκεπτόμενων Συσκευών CASE STUDY

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ Τ Μ Η Μ Α Π Λ Η Ρ Ο Φ Ο Ρ Ι Κ Η Σ

Διάλεξη 19: Κατανομή Πόρων Κόψιμο Τούρτας. ΕΠΛ 432: Κατανεμημένοι Αλγόριθμοι

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

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

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

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

7.4 Πρωτόκολλο UDP. 3. Στη περίπτωση που ένα μήνυμα χωράει σε ένα τμήμα, χρησιμοποιούμε το πρωτόκολλο TCP.

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

Νήµατα. ιεργασίες και νήµατα Υλοποίηση νηµάτων Ελαφριές διεργασίες Αξιοποίηση νηµάτων. Κατανεµηµένα Συστήµατα 10-1

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

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

Παράλληλοι Αλγόριθµοι

Τμήμα Οικιακής Οικονομίας και Οικολογίας. Οργάνωση Υπολογιστών

Κατανεμημένα Συστήματα. Javascript LCR example

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

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

Θεωρία Υπολογισμού και Πολυπλοκότητα Αναγωγές

Θεωρία Υπολογισμού και Πολυπλοκότητα Κανονικές Γλώσσες (1)

Υ- 07 Παράλληλα Συστήματα Συνέπεια και συνοχή μνήμης

Λειτουργικά Συστήματα 7ο εξάμηνο, Ακαδημαϊκή περίοδος

Κατανεμημένες δοσοληψίες

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

Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον

Τρίτη Πρόοδος [110 μονάδες] Απαντήσεις

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

Στην ενότητα αυτή θα μελετηθούν τα εξής θέματα:

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

ΕΠΛ 211: Θεωρία Υπολογισμού και Πολυπλοκότητας. Διάλεξη 3: Ντετερμινιστικά Πεπερασμένα Αυτόματα (DFA)

Παράλληλη Επεξεργασία Κεφάλαιο 1 Γιατί Παράλληλος Προγραμματισμός;

Κατανεμημένες δοσοληψίες

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

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

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

Εισαγωγή στην εφαρμογή Βασική Σελίδα (Activity) Αναζήτηση Πελάτη... 6 Προβολή Πελάτη... 7 Επεξεργασία Πελάτη... 10

Εισαγωγή στην Πληροφορική Προγραμματισμός-Λειτουργικά

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ

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

Network Address Translation (NAT)

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

Δοσοληψίες Βάσεις Δεδομένων Διδάσκων: Μαρία Χαλκίδη

Συστήματα Παράλληλης και Κατανεμημένης Επεξεργασίας

Άπληστοι Αλγόριθμοι. Επιμέλεια διαφανειών: Δ. Φωτάκης Τροποποιήσεις: Α. Παγουρτζής. Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών

Στοιχεία Θεωρίας Αριθμών και Εφαρμογές στην Κρυπτογραφία. Fast Asynchronous Byzantine Agreement with Optimal Resilience

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

Transcript:

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

Σφάλματα Κατάρρευσης Τι θα δούμε σήμερα Αλγόριθμος SWMR (ΜΕΠΑ) Ατομικής ΚΚΜ στην παρουσία σφαλμάτων κατάρρευσης (ABD - AOya, Bar- Noy, Dolev) Αλγόριθμος ΜWMR (ΠΕΠΑ) Ατομικής ΚΚΜ στην παρουσία σφαλμάτων κατάρρευσης ΕΠΛ432: Κατανεµηµένοι Αλγόριθµοι 1

Σφάλματα Κατάρρευσης Υποθέτουμε ότι κάθε επεξεργαστής p έχει ένα γεγονός fail p Λέμε ότι ένας επεξεργαστής p καταρρέει σε μια εκτέλεση α εαν Το γεγονός fail p περιέχεται στο α Κανένα υπολογιστικό βήμα από τον p δεν εμφανίζεται στον α μετά από το fail p Ένας επεξεργαστής μπορεί να καταρρεύσει κατά τη διάρκεια αποστολής μηνυμάτων Έτσι ένα υποσύνολο των μηνυμάτων μπορεί να σταλεί Το σύνολο των επεξεργαστών που καταρρέουν δεν είναι γνωστό στους επεξεργαστές εκ των προτέρων ΕΠΛ432: Κατανεµηµένοι Αλγόριθµοι 2

Ανεκτικότητα Σφαλμάτων στην ΚΚΜ Πλεονασμός: κράτα αντίγραφα της μνήμης σε πολλούς επεξεργαστές Διασφαλίζει τη προσβασιμότητα και ζωτικότητα της ΚΚΜ παρά την ύπαρξη σφαλμάτων κατάρρευσης read write Κοινόχρηστη μνήμη send rcv Ανταλλαγή μηνυμάτων send rcv ΕΠΛ432: Κατανεµηµένοι Αλγόριθµοι 3

Πολυπλοκότητα Αλγορίθμων Καθυστέρηση Επικοινωνίας Υπολογισµός Καθυστέρηση Λειτουργίας ΕΠΛ432: Κατανεµηµένοι Αλγόριθµοι 4

Υλοποίηση ΚΚΜ Για να υλοποιήσουμε ΚΜΜ πρέπει να προσδιορίσουμε τον αλγόριθμο 3 λειτουργιών Εγγραφή Ανάγνωση Εξυπηρέτηση από διαχειριστές αντιγράφων Επομένως θεωρούμε 3 σύνολα διεργασιών Εγγραφείς: αλλάζουν την τιμή μιας κοινόχρηστης μεταβλητής Αναγνώστες: διαβάζουν την τιμή μιας κοινόχρηστης μεταβλητής Εξυπηρετητές: κρατούν αντίγραφο μιας κοινόχρηστης μεταβλητής Ένας επεξεργαστής μπορεί να τρέχει και τις τρεις διεργασίες ΕΠΛ432: Κατανεµηµένοι Αλγόριθµοι 5

Χαρακτηριστικά Υλοποίησης Πρέπει να προσδιορίζουμε Μοντέλο Συγχρονισμού (σύγχρονο ή ασύγχρονο) Μοντέλο Ταυτοχρονισμού Μοντέλο Σφαλμάτων Συνθήκη Συνέπειας Μοντέλο Ταυτοχρονισμού SWSR SWMR MWMR Μοντέλου Σφαλμάτων Είδος σφαλμάτων που υποστηρίζουμε Αριθμός σφαλμάτων ΕΠΛ432: Κατανεµηµένοι Αλγόριθµοι 6

Υλοποίηση Ατομικής ΚΚΜ Μοντέλο Συγχρονισμού: Ασύγχρονο Μοντέλο Ταυτοχρονισμού: SWMR (ΜΕΠΑ) Συνθήκη Συνέπειας: Ατομικότητα Μοντέλο Σφαλμάτων: Κατάρρευση μειοψηφίας αντιγράφων ( (n/2)- 1) Κατάρρευση οποιουδήποτε αριθμού αναγνωστών Κατάρρευση εγγραφέα ΕΠΛ432: Κατανεµηµένοι Αλγόριθµοι 7

Write Protocol Αλγόριθμος Α Στείλε μήνυμα write(v) σε ένα αντίγραφο και περίμενε απάντηση Μόλις λάβεις απάντηση επέστρεψε επιβεβαίωση και τερμάτισε Read Potocol Στείλε μήνυμα read() σε ένα αντίγραφο και περίμενε απάντηση Μόλις λάβεις απάντηση επέστρεψε την τιμή που βρίσκεται μέσα στην απάντηση Server Protocol Αν λάβεις μήνυμα write(v) άλλαξε την τιμή του αντιγράφου σου σε ν Απάντησε σε όποιο μήνυμα παραλάβεις με reply(v) όπου ν η τιμή του αντιγράφου σου. ΕΠΛ432: Κατανεμημένοι Αλγόριθμοι 8

Παράδειγμα Εκτέλεσης Αλγ. Α Alice Alice loves Bob L Alice hates Bob Bob Write( Alice loves Bob ) Read( Alice hates Bob ) Time ΕΠΛ432: Κατανεµηµένοι Αλγόριθµοι 9

Ανάλυση Αλγορίθμου Α Δεν Ικανοποιεί Νόμιμες Ακολουθίες: ανάγνωση μπορεί να μην επιστρέψει την τιμή της τελευταίας εγγραφής Επομένως δεν ικανοποιεί καμιά Συνθήκη Συνέπειας Δεν είναι Ανεκτικός σε σφάλματα Σφάλμα ενός αντιγράφου μπορεί να εμποδίσει τον τερματισμό μιας λειτουργίας Άρα ο Αλγόριθμος Α είναι λανθασμένος ΕΠΛ432: Κατανεµηµένοι Αλγόριθµοι 10

Αλγόριθμος Β Write Protocol Στείλε μήνυμα write(v) σε όλα τα αντίγραφα και περίμενε απάντηση από την πλειοψηφία Μόλις λάβεις απάντησεις επέστρεψε επιβεβαίωση και τερμάτισε Read Potocol Στείλε μήνυμα read() σε όλα τα αντίγραφα και περίμενε απάντηση από την πλειοψηφία Μόλις λάβεις απάντηση επέστρεψε την τιμή που βρίσκεται μέσα στην απάντηση Server Protocol Αν λάβεις μήνυμα write(v) άλλαξε την τιμή του αντιγράφου σου σε ν Απάντησε σε όποιο μήνυμα παραλάβεις με reply(v) όπου ν η τιμή του αντιγράφου σου. ΕΠΛ432: Κατανεμημένοι Αλγόριθμοι 11

Παράδειγμα Εκτέλεσης Αλγ. Β < Alice loves Bob >!??#! Alice < Alice loves Bob > < Alice hates Bob > Bob Write( Alice loves Bob,5) Read(???) Time ΕΠΛ432: Κατανεµηµένοι Αλγόριθµοι 12

Ανάλυση Αλγορίθμου Β Δεν Ικανοποιεί Νόμιμες Ακολουθίες: δεν μπορούμε να αναγνωρίσουμε ποια τιμή γράφτηκε τελευταία Επομένως δεν ικανοποιεί καμιά Συνθήκη Συνέπειας Δεν διασφαλίζει Ατομικότητα Είναι Ανεκτικός σε σφάλματα Αφού το πολύ η μειοψηφία των αντιγράφων θα καταρρεύσει τότε πάντα υπάρχει κάποια πλειοψηφία αντιγράφων να απαντήσει σε κάθε λειτουργία Διασφαλίζει Ζωτικότητα Άρα ο Αλγόριθμος Β είναι λανθασμένος ΕΠΛ432: Κατανεµηµένοι Αλγόριθµοι 13

Αλγόριθμος Γ Χρήση Χρονοσφραγίδας Write Protocol Αύξησε την χρονοσφραγίδα σου (xmestamp++) Στείλε μήνυμα write(<xmestamp,v>) σε όλα τα αντίγραφα και περίμενε απάντηση από την πλειοψηφία Μόλις λάβεις απάντησεις επέστρεψε επιβεβαίωση και τερμάτισε Read Potocol Στείλε μήνυμα read() σε όλα τα αντίγραφα και περίμενε απάντηση από την πλειοψηφία Βρες το ζεύγος <xmestamp,v> που περιέχει την μεγαλύτερη χρονοσφραγίδα ανάμεσα στις απαντήσεις Επέστρεψε την τιμή v που αντιστοιχεί στην μεγαλύτερη χρονοσφραγίδα Server Protocol Αν λάβεις μήνυμα write(<xmestamp,v>) άλλαξε την τιμή του αντιγράφου σου σε ν και την τοπική σου χρονοσφραγίδα σε xmestamp Απάντησε σε όποιο μήνυμα παραλάβεις με reply(<xmestamp,v>) όπου ν η τιμή του αντιγράφου σου. ΕΠΛ432: Κατανεμημένοι Αλγόριθμοι 14

Παράδειγμα Εκτέλεσης Αλγ. Γ < Alice loves Bob,5> Alice < Alice hates Bob,4> < Alice loves Bob,5> Bob Write( Alice loves Bob,5) Read( Alice loves Bob, 5) Time ΕΠΛ432: Κατανεµηµένοι Αλγόριθµοι 15

Ανάλυση Αλγορίθμου Γ Ικανοποιεί Νόμιμες Ακολουθίες: κάθε ανάγνωση επιστρέφει τουλάχιστον την τιμή της τελευταίας ολοκληρωμένης εγγραφής Υπάρχει τουλάχιστον ένας εξυπηρετητής που απαντά και στις δυο λειτουργίες ανάγνωσης και εγγραφής (τομή πλειοψηφιών) Είναι Ανεκτικός σε σφάλματα Αφού το πολύ η μειοψηφία των αντιγράφων θα καταρρεύσει τότε πάντα υπάρχει κάποια πλειοψηφία αντιγράφων να απαντήσει σε κάθε λειτουργία Διασφαλίζει Ζωτικότητα Ο Αλγόριθμος Γ ικανοποιεί την Ατομικότητα? ΕΠΛ432: Κατανεµηµένοι Αλγόριθµοι 16

Αλγ. Γ με πολλούς Αναγνώστες Cool < Alice hates Bob,4> Alice < Alice hates Bob,4> < Alice loves Bob,5> Bob Write( Alice loves Bob,5) Read( Alice loves Bob, 5) Read( Alice hates Bob, 4) Time ΕΠΛ432: Κατανεµηµένοι Αλγόριθµοι 17

Πρόβλημα Αλγόριθμου Γ Δεν Ικανοποιεί την χρονική σειρά των λειτουργιών Δεν διασφαλίζει Ατομικότητα Διασφαλίζει Κανονικότητα ΕΠΛ432: Κατανεµηµένοι Αλγόριθµοι 18

Αλγόριθμος ΑΒD Write Protocol Αύξησε την χρονοσφραγίδα σου (xmestamp++) Στείλε μήνυμα write(<xmestamp,v>) σε όλα τα αντίγραφα και περίμενε απάντηση από την πλειοψηφία Μόλις λάβεις απάντησεις επέστρεψε επιβεβαίωση και τερμάτισε Read Potocol Στείλε μήνυμα read() σε όλα τα αντίγραφα και περίμενε απάντηση από την πλειοψηφία Βρες το ζεύγος <xmestamp,v> που περιέχει την μεγαλύτερη χρονοσφραγίδα ανάμεσα στις απαντήσεις Στείλε μήνυμα write(<xmestamp,v>) σε όλα τα αντίγραφα και περίμενε απάντηση από την πλειοψηφία Επέστρεψε την τιμή v που αντιστοιχεί στην μεγαλύτερη χρονοσφραγίδα Server Protocol Αν λάβεις μήνυμα write(<xmestamp,v>) και local.xmestamp< msg.xmestamp άλλαξε την τιμή του αντιγράφου σου σε ν και την τοπική σου χρονοσφραγίδα σε xmestamp Απάντησε σε όποιο μήνυμα παραλάβεις με reply(<xmestamp,v>) όπου ν η τιμή του αντιγράφου σου. ΕΠΛ432: Κατανεμημένοι Αλγόριθμοι 19

ABD: Εγγραφέας Itimestamp++ Write completes ACK from majority Update <timestamp,value> ΕΠΛ432: Κατανεμημένοι Αλγόριθμοι 20

ABD: Αναγνώστης Phase1: Discover maximum timestamp Compute maxts=max(<timestamp,value>) <timestamp,value> from majority ΕΠΛ432: Κατανεμημένοι Αλγόριθμοι 21

Phase2: Propagate <maxts,value> ABD: Αναγνώστης Read completes with maxts and associated value ACK from majority Update <timestamp,value> ΕΠΛ432: Κατανεμημένοι Αλγόριθμοι 22

Παράδειγμα Εκτέλεσης ABD Cool Alice < Alice hates Bob, 4> < Alice loves Bob, 5> Bob Read( Alice loves Bob, 5) Write( Alice loves Bob,5) Read( Alice hates Bob, 5) Time ΕΠΛ432: Κατανεµηµένοι Αλγόριθµοι 23

Ανάλυση Αλγορίθμου ABD Ικανοποιεί Ατομικότητα Ικανοποιεί Νόμιμες Ακολουθίες: Oπως Αλγόριθμος Γ Ικανοποιεί Χρονική Σειρά λειτουργιών: Πριν ολοκληρωθεί κάποια ανάγνωση η τιμή που επιστρέφεται στέλνεται στην πλειοψηφία των αντιγράφων Επόμενες αναγνώσεις θα δουν την τιμή αυτή σε τουλάχιστον ένα αντίγραφο Διασφαλίζει Ζωτικότητα Είναι Ανεκτικός σε σφάλματα: Αφού το πολύ η μειοψηφία των αντιγράφων θα καταρρεύσει τότε πάντα υπάρχει κάποια πλειοψηφία αντιγράφων να απαντήσει σε κάθε λειτουργία Ο Αλγόριθμος ABD υλοποιεί Ατομική ΚΚΜ Εγγραφής/ Ανάγνωσης στο ασύγχρονο, SWMR μοντέλο ΕΠΛ432: Κατανεµηµένοι Αλγόριθµοι 24

Τι συμβαίνει στο MWMR μοντέλο Alice ts=5 < Alice loves Bob, 5> Dasy ts=5 < Who loves Bob?, 4> Bob ΕΠΛ432: Κατανεµηµένοι Αλγόριθµοι 25

Τι συμβαίνει στο MWMR μοντέλο Alice ts=5 < Alice loves Bob, 5>!??#! Dasy ts=5 < Alice hates Bob, 5> Bob Write( Alice loves Bob,5) Write( Alice hates Bob,5) Read(?) Time ΕΠΛ432: Κατανεµηµένοι Αλγόριθµοι 26

Πως επιλύουμε το πρόβλημα; Ο εγγραφέας πρέπει να ανακαλύψει την τελευταία χρονοσφραγίδα πριν την αυξήσει Κάθε εγγραφέας περιλαμβάνει σε κάθε μήνυμα τον ΑΤ του Σπάζουμε την συμμετρία σε περίπτωση που δύο εγγραφείς προσπαθήσουν να χρησιμοποιήσουν την ίδια χρονοσφραγίδα Λεξικογραφική σύγκριση Χρονοσφραγίδων ΕΠΛ432: Κατανεµηµένοι Αλγόριθµοι 27

Γενικοποίηση Αλγόριθμου ΑΒD στο MWMR Write Protocol Φάση 1: Στείλε μήνυμα read() σε όλα τα αντίγραφα και περίμενε απάντηση από την πλειοψηφία Φάση 2: Βρες το <xmestamp,id,v> που περιέχει τo μεγαλύτερη χρονοσφραγίδα ανάμεσα στις απαντήσεις Αύξησε την χρονοσφραγίδα (xmestamp++) και στείλε μήνυμα write(<xmestamp,id,v>) σε όλα τα αντίγραφα και περίμενε απάντηση από την πλειοψηφία Μόλις λάβεις απάντησεις επέστρεψε επιβεβαίωση και τερμάτισε Read Potocol Φάση 1: Στείλε μήνυμα read() σε όλα τα αντίγραφα και περίμενε απάντηση από την πλειοψηφία Φάση 2: Βρες το <xmestamp,id,v> που περιέχει την μεγαλύτερη χρονοσφραγίδα ανάμεσα στις απαντήσεις Στείλε μήνυμα write(<xmestamp,id,v> ) σε όλα τα αντίγραφα και περίμενε απάντηση από την πλειοψηφία Επέστρεψε την τιμή v που αντιστοιχεί στην μεγαλύτερη χρονοσφραγίδα Server Protocol Αν λάβεις μήνυμα write(<xmestamp,id,v> ) και local.xmestamp< msg.xmestamp άλλαξε την τιμή του αντιγράφου σου σε ν και την τοπική σου χρονοσφραγίδα σε <xmestamp,id> Απάντησε σε όποιο μήνυμα παραλάβεις με reply(<xmestamp,id,v> ) όπου ν η τιμή του αντιγράφου σου. ΕΠΛ432: Κατανεμημένοι Αλγόριθμοι 28

Εγγραφές 2 Φάσεων Phase1: Discover maximum tag maxtag = max(<tag,value>) <tag,value> from majority ΕΠΛ432: Κατανεµηµένοι Αλγόριθµοι 29

Εγγραφές 2 Φάσεων Phase2: Propagate <tag,newvalue> Itag = maxtag++ Write completes ACK from majority Update <tag,value> ΕΠΛ432: Κατανεµηµένοι Αλγόριθµοι 30

Παράδειγμα Εκτέλεσης Alice ts=5 < Who loves Bob?, 4, W> Dasy ts=2 < Who loves Bob?, 4, W> Bob ΕΠΛ432: Κατανεµηµένοι Αλγόριθµοι 31

Παράδειγμα Εκτέλεσης Alice ts=5 < Alice loves Bob, 5, A> Dasy ts=2 < Who loves Bob?, 4, W> Bob ΕΠΛ432: Κατανεµηµένοι Αλγόριθµοι 32

Παράδειγμα Εκτέλεσης Alice ts=5 < Alice loves Bob, 5, A> L Dasy ts=6 < Alice hates Bob, 6, D> Bob Write( Alice loves Bob,5, A) Write( Alice hates Bob,6, D) Read( Alice hates Bob,6,D) Time ΕΠΛ432: Κατανεµηµένοι Αλγόριθµοι 33

Ανάλυση Ορθότητας Ζωτικότητα: Ικανοποιείται Πάντα υπάρχει πλειοψηφία εξυπηρετητών να απαντήσει σε μια λειτουργία Ατομικότητα: Ικανοποιείται Αναγνώσεις επιστρέφουν τουλάχιστον τελευταία εγγραφή Αν μια εγγραφή έπεται μιας άλλης εγγραφής τότε διασφαλίζει μεγαλύτερη χρονοσφραγίδα Αν μια ανάγνωση έπεται μια άλλης ανάγνωσης τότε επιστρέφει νεότερη ή τουλάχιστον την ίδια τιμή ΕΠΛ432: Κατανεµηµένοι Αλγόριθµοι 34

Ερωτήσεις; ΕΠΛ432: Κατανεµηµένοι Αλγόριθµοι 35