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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Άλγεβρες Διεργασιών και Σχέσεις Ισοδυναμίας

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

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

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

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

ΕΠΛ 211: Θεωρία Υπολογισμού και Πολυπλοκότητας. Διάλεξη 6: Μη Κανονικές Γλώσσες

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ΑΡΧΗ 1ης ΣΕΛΙΔΑΣ ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ : ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΤΑΞΗ : Γ ΛΥΚΕΙΟΥ ΣΠΟΥΔΕΣ ΟΙΚΟΝΟΜΙΑΣ & ΠΛΗΡΟΦΟΡΙΚΗΣ

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

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

Οδηγίες Προσωπικoύ Τηλεφωνητή COSMOTE

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

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

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

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

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

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

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

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

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

ΕΠΛ 211: Θεωρία Υπολογισμού και Πολυπλοκότητας. Διάλεξη 11: Μη Ασυμφραστικές Γλώσσες

ΗΛΕΚΤΡΟΝΙΚΟ ΣΥΣΤΗΜΑ ΔΙΑΧΕΙΡΙΣΗΣ ΑΙΤΗΣΕΩΝ ΔΙΑΔΑΝΕΙΣΜΟΥ (smille)

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

Πρόλογος. «ΚΙ ΟΜΩΣ, ΤΑ ΚΟΙΝΑ ΣΗΜΕΙΑ ΤΩΝ ΓΡΑΦΙΚΩΝ ΠΑΡΑΣΤΑΣΕΩΝ ΔΥΟ ΑΝΤΙΣΤΡΟΦΩΝ ΣΥΝΑΡΤΗΣΕΩΝ, ΑΝ ΥΠΑΡΧΟΥΝ, ΒΡΙΣΚΟΝΤΑΙ ΜΟΝΟ ΠΑΝΩ ΣΤΗΝ ΕΥΘΕΙΑ y=x»

Επικοινωνία Client/Server Απομακρυσμένη Κλήση Διαδικασιών

ΕΠΛ 211: Θεωρία Υπολογισμού και Πολυπλοκότητας. Διάλεξη 5: Κανονικές Εκφράσεις

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

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

Γ-ΓΥΜΝΑΣΙΟΥ (1) ΣΕΛ 1 / 6

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

Principles of Customer Service Επίπεδο 2

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

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

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

Τμήμα Φυσικής, Παν/μιο Ιωαννίνων, Ειδική Σχετικότητα, Διάλεξη 5 Οι Μετασχηματισμοί του Lorentz και η Συστολή του μήκους

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


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

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

Φροντιστήριο 8 Λύσεις

K15 Ψηφιακή Λογική Σχεδίαση 7-8: Ανάλυση και σύνθεση συνδυαστικών λογικών κυκλωμάτων

Ασκή σεις στή δομή επανα λήψής

FAIL PASS PASS οριακά

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

ΔΙΚΤΥΑ ΥΠΟΛΟΓΙΣΤΩΝ ΙΙ

Ενότητα 1: «Εισαγωγή στην Αλγοριθμική και τον Προγραμματισμό. Απλές ασκήσεις με γλώσσα Pascal»

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

Αυτοματοποιημένη Επαλήθευση

7.9 ροµολόγηση. Ερωτήσεις

7.1.1 Επίπεδο δικτύου Γενικές Αρχές

Ασκήσεις μελέτης της 8 ης διάλεξης

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

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

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

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

Διαδικασιακός Προγραμματισμός

Transcript:

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

Γρήγορες Λειτουργίες Τι θα δούμε σήμερα Συστήματα Απαρτίας Αλγόριθμος SLIQ Χρήση Quorum Views ΕΠΛ432: Κατανεµηµένοι Αλγόριθµοι

Γρήγορες Λειτουργίες Μέχρι τώρα είδαμε αλγορίθμους όπου Ανάγνωση χρειάζεται 2 φάσεις Εγγραφή χρειάζεται ή 2 φάσεις Γρήγορη Λειτουργία: Είναι η λειτουργία εγγραφής ή ανάγνωσης η οποία χρειάζεται μόνο φάση ή ένα επικοινωνιακό γύρο για να ολοκληρωθεί. Π.χ. Όλες οι εγγραφές στον αλγόριθμο ABD είναι γρήγορες Γρήγορος Αλγόριθμος: Είναι αυτός όπου σε κάθε εκτέλεσή του όλες οι λειτουργίες είναι γρήγορες ΕΠΛ432: Κατανεµηµένοι Αλγόριθµοι 2

Συστήματα Απαρτίας Παρατήρηση: Η επικοινωνία με την πλειοψηφία των αντιγράφων διασφαλίζει ότι για κάθε ζεύγος λειτουργιών υπάρχει τουλάχιστον ένας διαχειριστής αντιγράφου που λαμβάνει μήνυμα και από τις δύο λειτουργίες Έπεται από το γεγονός ότι η τομή δύο συνόλων πλειοψηφίας δεν είναι κενή Ιδέα Συστημάτων Απαρτίας: Οργάνωσε τους διαχειριστές αντιγράφων σε σύνολα (όχι απαραίτητα σύνολα πλειοψηφίας) έτσι ώστε κάθε δύο τέτοια σύνολα να έχουν μη κενή τομή Τα σύνολα ονομάζονται απαρτίες ΕΠΛ432: Κατανεµηµένοι Αλγόριθµοι 3

Ορισμός Συστημάτων Απαρτίας Quorum System : Q Q = { Q : Q S} s. t. Qi, Q j Q : Qi Q j Απενεργοποιηµένη Απαρτία: Μια απαρτία Q είναι απενεργοποιηµένη σε µια εκτέλεση α εαν 9s 2 Q s.t. fail s 2 Απενεργοποιηµένο Σύστηµα Απαρτίας: Ένα σύστηµα απαρτίας Q είναι απενεργοποιηµένο εαν 8Q 2 Q,Q is faulty Υπόθεση Σφάλµατος: Μια απαρτία παραµένει ενεργοποιηµένη ΕΠΛ432: Κατανεµηµένοι Αλγόριθµοι 4

Συστήματα Απαρτίας Σχηματικά Servers Q z p p2 Q j X Q i Q i, Q j, Q z είναι απαρτίες Σύστημα Απαρτίας είναι το σύνολο {Q i, Q j, Q z } Ιδιότητα: κάθε ζεύγος απαρτιών τέμνονται Κάθε λειτουργία Εγγραφής/Ανάγνωσης επικοινωνεί με μια απαρτία Εσφαλμένη Απαρτία: Αυτή που περιέχει μια εσφαλμένη διεργασία Nicolas Nicolaou 5

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

Αλγόριθμος MWMR με Απαρτίες } Υποθέτουμε ότι w i >w k w i read() Q z read() w k /9/2 Q j Q i Nicolas Nicolaou -- CS Colloquium @ UCY 7

Αλγόριθμος MWMR με Απαρτίες } Υποθέτουμε ότι w i >w k w i read() Q z write(<,w i >,v) read() w k /9/2 Q j Q i Nicolas Nicolaou -- CS Colloquium @ UCY 8

Αλγόριθμος MWMR με Απαρτίες } Υποθέτουμε ότι w i >w k w i read() Q z write(<,w i >,v) Q j Q i read() w k write(<,w k >,v) /9/2 Nicolas Nicolaou -- CS Colloquium @ UCY 9

Αλγόριθμος MWMR με Απαρτίες } Υποθέτουμε ότι w i >w k Q z /9/2 read() r i Q j Q i Nicolas Nicolaou -- CS Colloquium @ UCY

Αλγόριθμος MWMR με Απαρτίες } Υποθέτουμε ότι w i >w k Q z /9/2 read() ret(v) r i Q j write(<,w i >,v) Q i Operation Ordering: w k -> w i -> r i Nicolas Nicolaou -- CS Colloquium @ UCY

Ιδέα: Quorum Views Προσπαθούμε να προσδιορίσουμε την κατάσταση της τελευταίας λειτουργίας εγγραφής Αν η κατάσταση της εγγραφής κατά τον πρώτο γύρο της ανάγνωσης μπορεί να Προσδιοριστεί => Η Ανάγνωση είναι Γρήγορη Δεν προσδιορίζεται => Η Ανάγνωση είναι Αργή 7/3/2 Nicolas Nicolaou 2

Προσδιοριστέα Εγγραφή - Qview() Όλα οι εξυπηρετητές της απαρτίας απαντούν με την ίδια χρονοσφραγίδα (ίση με την μέγιστη χρονοσφραγίδα που παρατηρεί ο Αναγνώστης) [ qview()]: s Qi : s. ts = maxts Q z Q j Q i (Πιθανότατα) Η Εγγραφή έχει Τερματιστεί Nicolas Nicolaou 3

Προσδιοριστέα Εγγραφή - Qview(2) Κάθε τομή περιέχει ένα μέλος με χρονοσφραγίδα μικρότερη από τη μέγιστη [ qview(2)]: j i, A Q Q s. t. A and s A: s. ts < i j maxts Q z Q j Q i (Σίγουρα) Η Εγγραφή <maxtag,v> ΔΕΝ τερματίστηκε Nicolas Nicolaou 4

Απροσδιόριστη Εγγραφή - Qview(3) Όλα τα μέλη της τομής της απαρτίας που μας απάντησε και κάποιας άλλης απαρτίας στο σύστημα περιέχουν τη μέγιστη χρονοσφραγίδα. [ qview(3)]: s Q s. t. s. ts < maxts and j i s. t. s Q Q : s. ts = i i j maxts Q z Q z Q j Q i Q j Q i qv(3) και Μη Τερματισμένη Εγγραφή qv(3) και Τερματισμένη Εγγραφή Απροσδιόριστη => Δύο Φάσεις Nicolas Nicolaou 5

Αλγόριθμος SLIQ Write Protocol: one round P: Αύξησε την χρονοσφραγίδα σου ts και στείλε μήνυμα write(<ts,v>) σε όλους και περίμενε απαντήσεις από μια απαρτία Μόλις λάβεις απαντήσεις επέστρεψε ack και τερμάτισε Read Potocol: one or two rounds P: Στείλε μήνυμα read(<ts,v>) όπου <ts,v> η τελευταία τιμή που επέστρεψε ο αναγνώστης σε όλα τα αντίγραφα και περίμενε απάντηση από μια απαρτία Q QView Q () Γρήγορη και επέστρεψε την τιμή του maxts QView Q (2) Γρήγορη και επέστρεψε την τιμή του maxts- QView Q (3) Αργή προχώρα στη φάση P2 και ακολούθως επεστρεψε maxts P2: προώθησε <maxts,v> σε μια απαρτία και μετά επέστρεψε ν 7/3/2 Server Protocol: passive role Παρέλαβε αιτήσεις read(<ts,v>) και write(<ts,v>) Εαν local.ts<msg.ts ενημέρωσε το τοπικό σου αντίγραφο Aπάντησε με reply(<ts,v>) Nicolas Nicolaou 6

Ορθότητα Αλγορίθμου Ζωτικότητα: Σύμφωνα με το μοντέλο σφαλμάτων πάντα υπάρχει μια απαρτία να απαντήσει σε κάθε λειτουργία Ατομικότητα: Πρέπει να δείξουμε ότι Κάθε Ανάγνωση επιστρέφει τουλάχιστον την τιμή που γράφτηκε από την τελευταία Εγγραφή (Νόμιμη Ακολουθία Λειτουργιών) Αν μία Ανάγνωση ρ προηγείται μιας ανάγνωσης ρ2, τότε η ρ2 επιστρέφει την ίδια ή νεότερη τιμή από αυτή που επιστρέφει η ρ. ΕΠΛ432: Κατανεµηµένοι Αλγόριθµοι 7

Μονοτονικότητα Χρονοσφραγίδας Λήμμα : Αν κάποιος εξυπηρετητής λάβει μήνυμα με <ts,v> τότε κάθε μεταγενέστερη απάνησή του περιλαμβάνει ζεύγος <ts, v > τ.ω. ts ts. Απόδειξη: Κάθε φορά που ένας εξυπηρετητής παραλάβει μήνυμα read(<ts,v>) και write(<ts,v>) κάνει τον εξής έλεγχο Αν local.ts<msg.ts τότε local.ts=msg.ts και local.v = msg.v Αλλιώς δεν κάνει τίποτα Αρα μετά την παραλαβή μηνύματος local.ts msg.ts Επομένως σε κάθε reply(<ts, v >) που έπεται οποιασδήποτε από τις πιο πάνω παραλαβές ισχύει ότι ts =local.ts msg.ts =ts ΕΠΛ432: Κατανεµηµένοι Αλγόριθµοι 8

Ορθότητα Αλγορίθμου Λήμμα 2: Αν μια Ανάγνωση ρ έπεται μιας Εγγραφής τότε επιστρέφει τουλάχιστον την τιμή που γράφτηκε Απόδειξη: Κάθε εγγραφή επικοινωνεί με μια απαρτία πριν ολοκληρωθεί Έστω w μια εγγραφή που έλαβε μηνύματα από την απαρτία Q i και έγραψε την τιμή <ts, v> Έστω ρ είναι μια ανάγνωση που έπεται της πιο πάνω εγγραφής και λαμβάνει απαντήσεις από την απαρτία Q j Έχουμε δύο περιπτώσεις: ) Q i = Q j, και 2) Q i Q j ΕΠΛ432: Κατανεµηµένοι Αλγόριθµοι 9

Λήμμα 2: Περίπτωση (Q i = Q j ) Όλοι οι εξυπηρετητές στο Q i έλαβαν μήνυμα write(<ts, v>) από τον w πριν απαντήσουν στην ανάγνωση ρ Από το Λήμμα θα στείλουν reply(<ts, v ) στον ρ τ.ω. ts ts Αν ts = ts και maxts = ts τότε ο ρ θα παρατηρήσει qview() και θα επιστρέψει ν Όλοι απαντούν με την ίδια χρονοσφραγίδα ts Αν ts > ts τότε maxts = ts και ο ρ θα επιστρέψει τουλάχιστον την τιμή που αντιστοιχεί στην χρονοσφραγίδα maxts- ts Αρα νεότερη ή ίση με ν ΕΠΛ432: Κατανεµηµένοι Αλγόριθµοι 2

Λήμμα 2: Περίπτωση 2 (Q i Q j ) Όλοι οι εξυπηρετητές στο Q i \ Q j έλαβαν μήνυμα write(<ts, v>) από τον w πριν απαντήσουν στην ανάγνωση ρ Από το Λήμμα θα στείλουν reply(<ts, v ) στον ρ τ.ω. ts ts Αν ts = ts και maxts = ts τότε ο ρ θα παρατηρήσει qview(3) και θα επιστρέψει ν αφού πρώτα εκτελέσει 2 η φάση Όλοι σε μια τομή απαντούν με την ίδια χρονοσφραγίδα ts Αν ts > ts τότε maxts = ts και ο ρ θα επιστρέψει τουλάχιστον την τιμή που αντιστοιχεί στην χρονοσφραγίδα maxts- ts Αρα νεότερη ή ίση με ν ΕΠΛ432: Κατανεµηµένοι Αλγόριθµοι 2

Σχηματικά w w Q i Q i r i r i Q j Q z Q j Q z Q i = Q j => qview() Returns maxts= in one round Q i Q j => qview(3) Returns maxts= in two rounds ΕΠΛ432: Κατανεµηµένοι Αλγόριθµοι 22

Ορθότητα Αλγορίθμου Λήμμα 3: Αν μία Ανάγνωση ρ προηγείται μιας ανάγνωσης ρ2, τότε η ρ2 επιστρέφει την ίδια ή νεότερη τιμή από αυτή που επιστρέφει η ρ Απόδειξη: Έστω ότι ρ διάβασε από Q i και επέστρεψε <ts, v> και ρ2 διάβασε από Q j και επέστρεψε <ts, v > Και οι δύο αναγνώσεις προέρχονται από τον ίδιο αναγνώστη Τότε ts ts. (Γιατί;) Αν οι δύο αναγνώσεις προέρχονται από 2 διαφορετικούς αναγνώστες πρέπει να μελετήσουμε τις περιπτώσεις όπου: ) ρ αργή, και 2) ρ γρήγορη ΕΠΛ432: Κατανεµηµένοι Αλγόριθµοι 23

Λήμμα 3: Περίπτωση (ρ αργή) Αν ρ είναι αργή σημαίνει ότι πριν ολοκληρωθεί στέλνει read(<ts,v>) στα μέλη μιας απαρτίας (έστω Q z ) Από το Λήμμα όλοι οι εξυπηρετητές στη Q j \ Q z θα στείλουν reply(<ts, v ) στον ρ τ.ω. ts ts Αρα ο ρ2 θα παρατηρήσει maxts ts με το τέλος του πρώτου γύρου Αν maxts>ts τότε στην χειρότερη περίπτωση ο ρ2 θα επιστρέψει την τιμή που αντιστοιχεί στο maxts- ts Αν maxts=ts τότε ο ρ2 θα επιστρέψει <maxts, v>=<ts,v> αφού θα παρατηρήσει είτε qview() if Q j = Q z, ή qview(3) if Q j Q z αφού όλοι οι εξυπηρετητές στο Q j \ Q z στέλνουν reply(<ts,v>) ΕΠΛ432: Κατανεµηµένοι Αλγόριθµοι 24

Λήμμα 3: Περίπτωση 2 (ρ γρήγορη) Αν ρ είναι γρήγορη σημαίνει στον πρώτο της γύρο προσεξε 2.) qview() και επέστρεψε maxts=ts 2.2) qview(2) και επέστρεψε maxts- =ts Περίπτωση 2. Παρατήρησε qview() => όλα τα μέλη του Q i απάντησαν με <ts,v> Επομένως από το Λήμμα όλα τα μέλη της Q i \ Q j θα στείλουν reply(<ts, v ) στον ρ τ.ω. ts ts Αρα ο ρ2 θα παρατηρήσει maxts ts με το τέλος του πρώτου γύρου Με την ίδια λογική όπως και στην περίπτωση μπορούμε να δείξουμε ότι ο ρ2 επιστρέφει <ts,v > s.t. ts ts ΕΠΛ432: Κατανεµηµένοι Αλγόριθµοι 25

Λήμμα 3: Περίπτωση 2 (ρ γρήγορη) Περίπτωση 2.2 Παρατήρησε qview(3) => ο ρ επέστρεψε maxts- =ts Κάθε διεργασία τελειώνει μια λειτουργία πριν μεταβεί στην επόμενη. Επομένως αφού ο ρ παρατήρησε την χρονοσφραγίδα maxts στο σύστημα ο εγγραφέας χρησιμοποιεί μια χρονοσραγίδα ανα εγγραφή, Σε κάθε εγγραφή αυξάνεται η χρονοσφραγίδα κατά, και έχουμε μόνο ένα εγγραφέα έπεται ότι η εγγραφή που χρησιμοποίησε τη χρονοσφραγίδα maxts- έχει ήδη ολοκληρωθεί πριν ή κατα τη διάρκεια του ρ. Αφού το ρ προηγείται της ρ2 επομένως και η εγγραφή με maxts- προηγείται της ρ2 Επομένως από το Λήμμα 2 το ρ2 θα επιστρέψει ts maxts- => ts ts. ΕΠΛ432: Κατανεµηµένοι Αλγόριθµοι 26

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