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

Slides:



Advertisements
Παρόμοιες παρουσιάσεις
Chord: A scalable Peer-to-Peer Lookup Service for Internet Applications Παρουσίαση: Αθανασόπουλος, Αλεξάκης, Δεβελέγκα, Πεχλιβάνη, Φωτιάδου, Φωτόπουλος.
Advertisements

ΗΛΕΚΤΡΟΝΙΚΗ ΔΙΑΚΙΝΗΣΗ ΑΓΑΘΩΝ & ΚΡΥΠΤΟΓΡΑΦΙΑ ΑΘΑΝΑΣΙΟΣ ΒΑΣΙΛΟΠΟΥΛΟΣ - ΓΟΥΤΑΣ ΔΗΜΗΤΡΙΟΣ PeLAB - Τμ. Η.Υ.Σ. - Τ.Ε.Ι. ΠΕΙΡΑΙΑ : Μάρτιος 1998.
Ανάπτυξη Δικτύων Καθηγητής: Φουληράς Παναγιώτης
ΙΩΑΝΝΗΣ ΚΩΝΣΤΑΝΤΙΝΟΥ 3ο ΦΡΟΝΤΙΣΤΗΡΙΟ ΠΑΡΑΣΚΕΥΗ 19 ΟΚΤΩΒΡΙΟΥ 2012 ΑΙΘΟΥΣΑ Β4 1.
Entity-Relationship Παραδείγματα Πληροφοριακά Συστήματα και Βάσεις Δεδομένων Φροντιστήριο 1 Δαμιανός Χατζηαντωνίου.
Ντίρλης Νικόλαος- ΕΤΥ 3ο ΦΡΟΝΤΙΣΤΗΡΙΟ ΠΑΡΑΣΚΕΥΗ 25 ΟΚΤΩΒΡΙΟΥ 2013 ΑΙΘΟΥΣΑ Β4 1.
Προγραμματισμός ΙΙ Διάλεξη #6: Απλές Δομές Ελέγχου Δρ. Νικ. Λιόλιος.
Chord: A Scalable Peer -to-peer Lookup Service for Internet Applications Authors: Ion Stoica, Robert Morris, David Karger, M. Frans Kaashoek, Hari Balakrishnan.
CHORD A Scalable Peer-to-peer Lookup Service for Internet Applications Μαρίνα Δρόσου Νικόλαος Μπουντουρόπουλος Οδυσσέας Πετρόχειλος Παναγιώτης Δομουχτσίδης.
Copyright © 2006 – Quality & Reliability SA PL/SQL TRIGGERS ΜΕΡΟΣ 1.
HY-335 : Δίκτυα Υπολογιστών DHCP Τμήμα Επιστήμης Υπολογιστών Πανεπιστήμιο Κρήτης Χειμερινό εξάμηνο
1 Chord: A scalable Peer to Peer Lookup Service for Internet Applications Νικόλαος Καλλιμάνης Σπυρίδων-Δημήτριος Αγάθος Ευγενία Σταθοπούλου.
University of Cyprus Department of Computer Science Presenter : Yiannos Mylonas EPL475: Advanced Networks TCP/IP Socket Programming in C.
Διαφάνειες παρουσίασης #2
ΕΠΛ 342 – Βάσεις Δεδομένων Εργαστήριο 4 ο SQL - Queries Ιωάννα Συρίμη
Οι επεκτάσεις του έργου TOOBIS στις γλώσσες ορισμού και ερωτήσεων του ODMG Κ. Βασιλάκης.
ΗΥ Παπαευσταθίου Γιάννης1 Clock generation.
6/26/2015HY220: Ιάκωβος Μαυροειδής1 HY220 Asynchronous Circuits.
1 Chord - Stabilization Λίλλης Κώστας Γεωργούλας Κώστας.
ΜΕΤΑΛΛΕΥΤΙΚΗ ΝΟΜΟΘΕΣΙΑ ΔΙΑΧΕΙΡΙΣΗΚΑΙ ΑΞΙΟΠΟΙΗΣΗ ΜΕΤΑΛΛΕΥΜΑΤΩΝ Τζίμας Σπύρος Μηχανικός Μεταλλείων – Μεταλλουργός ΕΜΠ.
ΣΥΣΤΑΣΗ - ΣΥΓΚΡΟΤΗΣΗ ΑΥΤΟΔΙΟΙΚΗΣΗΣ ΚΑΙ ΑΠΟΚΕΝΤΡΩΜΕΝΗΣ ΔΙΟΙΚΗΣΗΣ Οι δήμοι και οι περιφέρειες συγκροτούν τον πρώτο και δεύτερο βαθμό τοπικής αυτοδιοίκησης.
Δεκαπενθήμερο Ενημέρωσης για την Πρόσβαση στην Εκπαίδευση, Οκτωβρίου 2015 « Προσβάσιμο Εκπαιδευτικό και Εποπτικό Υλικό για Μαθητές με αυτισμό » ΒΑΣΙΛΕΙΟΥ.
OPENECLASS & HACKEREARTH API Μονάδα Αριστείας ΕΛ/ΛΑΚ ΤΕΙ Αθήνας Δημοσθένης Νικούδης Κύκλος Εκπαίδευσης «Συστήματα Ηλεκτρονικής Μάθησης & Ηλεκτρονική Αξιολόγηση»
1 Απογραφή Η επιχείρηση είναι υποχρεωμένη να πραγματοποιεί πραγματική απογραφή των αποθεμάτων της τουλάχιστον μία φορά μέσα σε κάθε χρήση και συγκεκριμένα.
Ρ Α Τ Σ Ι Σ Μ Ο Σ Γυμνάσιο Νυδρί Τ Ι ΕΙΝΑΙ Ο ΡΑΤΣΙΣΜΟΣ.
ΕΠΙΣΚΟΠΗΣΗ ΛΟΓΙΣΤΙΚΗΣ Ι. ΕΝΟΤΗΤΕΣ ΛΟΓΙΣΤΙΚΗ ΙΣΟΤΗΤΑ ΙΣΟΛΟΓΙΣΜΟΣ ΚΑΧ ΛΟΓΑΡΙΑΣΜΟΙ ΚΑΤΑΧΩΡΗΣΕΙΣ ΗΜΕΡΟΛΟΓΙΟ ΓΕΝΙΚΟ ΚΑΘΟΛΙΚΟ ΙΣΟΖΥΓΙΟ ΑΠΟΣΒΕΣΕΙΣ ΑΠΟΤΙΜΗΣΗ.
Κάθετες και πλάγιες. Κάθετα και πλάγια τμήματα Έστω ευθεία ε και σημείο Α εκτός αυτής. ε Κ Β Α Από το Α διέρχεται μοναδική κάθετη. Έστω ζ μια άλλη ευθεία.
Διασύνδεση LAN Γιατί όχι μόνο ένα μεγάλο LAN
Αντικειμενοστραφής Προγραμματισμός ΙΙ
Εισαγωγικά Θέματα Διαχείρισης Δικτύων
ΤΟ ΝΕΟ ΓΥΜΝΑΣΙΟ ΠΔ 126/2016.
Αλγόριθμος όνομα_αλγορίθμου Εντολές Τέλος όνομα_αλγορίθμου
Βάσεις Δεδομένων ΙΙ 1η διάλεξη
Βάσεις Δεδομένων Ι Επανάληψη
Κατανεμημένα Συστήματα
ΤΗΣ ΣΧΟΛΙΚΗΣ ΚΟΙΝΟΤΗΤΑΣ ΓΙΑ ΟΡΘΟΛΟΓΙΚΗ ΔΙΑΧΕΙΡΙΣΗ ΔΙΑΤΡΟΦΙΚΩΝ ΕΠΙΛΟΓΩΝ
Λογιστική Κόστους Ενότητα # 4: Κοστολόγηση Συνεχούς Παραγωγής
9 Η Γλώσσα SQL Εισαγωγή – Βασικές Έννοιες Τύποι Δεδομένων
Κεφάλαιο 6o. Επίπεδο εφαρμογής
Τεχνολογία και Προγραμματισμός Υπολογιστών
Ειδικά Θέματα σε Κινητά και Ασύρματα Δίκτυα: 1η εργαστηριακή άσκηση
Ενότητα 9 : Χρήση Πινάκων στο Ηλεκτρονικό εμπόριο (ΙΙΙ)
Ευρετήρια Βάσεις Δεδομένων Ευαγγελία Πιτουρά.
Ενημέρωση για αλλαγές στο Γυμνάσιο
Αντιμετώπιση Μαθησιακών Δυσκολιών στα Μαθηματικά
Ρολόγια και Συγχρονισμός
Διασύνδεση με ΒΔ Web Server Database MySQL MSSQL Oracle PostgreSQL
Οι αλλαγεΣ Στο ΓυμναΣιο
Οικιακή Οικονομία Α’ Γυμνασίου Μάθημα 6ο. Διδάσκων καθηγητής
Κατανεμημένα Συστήματα
Κατανεμημένα Συστήματα
Κατανεμημένα Συστήματα
ΓΙΑ ΤΗΝ ΕΤΑΙΡΙΚΗ ΔΙΑΚΥΒΕΡΝΗΣΗ
Αποτελέσματα έρευνας που πραγματοποιήθηκε στο σχολείο μας
Ιστορία 8η Σέρλοκ Χολμς.
ΚΑΘΟΔΟΣ ΤΩΝ ΠΕΛΟΠΟΝΝΗΣΟΣ ΕΙΛΩΤΕΣ-ΠΕΡΙΟΙΚΟΙ ΓΕΩΜΕΤΡΙΚΑ ΧΡΟΝΙΑ
ΣΥΓΚΕΝΤΡΩΣΗ ΠΡΟΕΔΡΩΝ Π.Φ.Σ. 5 ΜΑΡΤΙΟΥ 2018.
11ο γυμνάσιο ΕΝΗΜΕΡΩΣΗ ΓΟΝΕΩΝ – ΚΗΔΕΜΟΝΩΝ Α΄ΤΑΞΗΣ …στη μεγαλύτερη βαθμίδα! … μεγαλύτερες απαιτήσεις! …νάτην και η εφηβεία!!
Ηλεκτρικά δίπολα Όλες οι ηλεκτρικές συσκευές που χρησιμοποιούμε
SQL Βάσεις Δεδομένων Ευαγγελία Πιτουρά.
Είσοδος/έξοδος χαμηλού επιπέδου
Мероприятие, посвященное восстанию студентов
“ХХІ ғасыр өскіндері” интеллектуальдық сайыс 5-6 сынып
Екі векторды векторлық көбейту
Σύντομος οδηγός υποψηφίου δημάρχου/δημοτικού συμβούλου
Σύντομος οδηγός υποψηφίου δημάρχου/δημοτικού συμβούλου
2ο ΕΡΓΑΣΤΗΡΙΟ – ΡΟΕΣ ΚΟΣΤΟΥΣ
Σύντομος οδηγός υποψηφίου συμβούλου/προέδρου κοινότητας
Σύντομος οδηγός υποψηφίου δημάρχου/δημοτικού συμβούλου
7η ΕΞΕΙΔΙΚΕΥΣΗ ΕΦΑΡΜΟΓΗΣ ΤΟΥ ΕΠ - ΥΜΕΠΕΡΑΑ
Μεταγράφημα παρουσίασης:

Κατανεμημένα Συστήματα Ασκήσεις 2018-2019 http://www.cslab.ece.ntua.gr/courses/distrib 1

Άσκηση 1 3 διεργασίες, η P1, η P2 και η P3 στέλνουν μεταξύ τους multicast μηνύματα. Θέλουμε να εξασφαλίσουμε: (α) ταξινόμηση FIFO (β) αιτιώδη (causal) ταξινόμηση

Flashback: Διάταξη FIFO Η διάταξη της παράδοσης των μηνυμάτων ακολουθεί τη σειρά αποστολής τους από κάθε διεργασία Αν μια σωστή διεργασία στείλει multicast(g,m) και μετά multicast(g,m’), τότε κάθε σωστή διεργασία που παραδίδει το m’ θα έχει παραδώσει ήδη το m Παράδειγμα: P1: m0, m1, m2 P2: m3, m4, m5 P3: m6, m7, m8 FIFO -> (m0, m3, m6, m1, m4, m7, m2, m5, m8)

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

FIFO 1 0 0 2 0 0 2 0 1 3 0 1 3 0 2 3 1 2 send send accept send accept 0 0 0 2 2 3 1 0 1 1 3 1 0 0 1 send 0 0 0 1 accept 2 0 1 1 1 1 2 1 2 3 1 2 buffer 1 accept 2 accept accept 0 0 1 2 1 1 1 0 0 0 1 accept 2 1 0 0 1 0 1 2 0 1 2 1 1 2 1 2 3 1 2 accept send accept accept send accept 0 0 0

Flashback: Αιτιώδης διάταξη Η διάταξη της παράδοσης των μηνυμάτων σε κάθε διεργασία διατηρεί τις σχέσεις happened-before ανάμεσα σε όλες τις διεργασίες Αν multicast(g,m)  multicast(g,m’) τότε κάθε σωστή διεργασία που παραδίδει το m’ θα έχει παραδώσει ήδη το m Παράδειγμα P1: m0, m1, m2 P2: m3, m4, m5 P3: m6, m7, m8 Σχέσεις happened-before: m0  m4, m5  m8 Causal -> (m0, m3, m6, m1, m4, m7, m2, m5, m8)

Αιτιώδης διάταξη Κάθε διεργασία διατηρεί διανυσματικό ρολόι Κάθε μετρητής αναπαριστά τον αριθμό των μηνυμάτων που έχουν ληφθεί από κάθε άλλη διεργασία Κατά το multicast, η διεργασία-αποστολέας αυξάνει τον μετρητή της και επισυνάπτει το διάνυσμα στο μήνυμα Κατά τη λήψη ενός μηνύματος multicast ο παραλήπτης περιμένει μέχρι να ικανοποιηθεί η αιτιώδης διάταξη, δλδ: Να έχει παραδώσει όσα μηνύματα έχει στείλει ο αποστολέας στο παρελθόν Να έχει παραδώσει όλα τα μηνύματα που είχε παραδώσει ο αποστολέας πριν την αποστολή του multicast

Αλγόριθμος Όταν η Pb στέλνει μήνυμα Όταν η Pa λάβει μήνυμα από την Pb Αυξάνει τη δική του τιμή και στέλνει το διάνυσμα Vb[b] = Vb[b] + 1 με το μήνυμα Όταν η Pa λάβει μήνυμα από την Pb Τσεκάρει αν το μήνυμα ήρθε με σειρά FIFO από την Pb Vb[b] == Va[b] + 1 ? Τσεκάρει ότι το μήνυμα δεν εξαρτάται από κάτι που δεν έχει δει ακόμα η Pa ∀i, i ≠ b: Vb[i] ≤ Va[i] ? Αν ικανοποιούνται και οι δύο συνθήκες, το Pa παραδίδει το μήνυμα Αλλιώς το κρατά σε αναμονή μέχρι να ικανοποιηθούν οι συνθήκες

Causal 3 1 1 2 1 2 accept 1 0 0 2 0 0 2 0 1 3 0 1 buffer 3 1 2 send 0 0 0 200 200 100 301 1 0 1 0 1 0 301 100 0 0 0 buffer send 010 0 0 0 1 1 0 2 0 0 accept 2 1 2 3 1 2 buffer 010 1 1 1 212 accept accept 0 0 0 accept 101 0 0 0 101 2 1 1 212 accept 1 0 0 1 0 1 2 0 1 2 1 1 2 1 2 3 1 2 accept send accept accept send accept

Άσκηση 2 Dataset με δημογραφικά στοιχεία: {name, age, address, zipcode, salary}. Παράγετε τη λίστα από zipcodes στα οποία ο μέσος μισθός είναι: (α) κάτω από $100K, (β) από $100Κ μέχρι $500Κ, και (γ) πάνω από $500Κ. MAP(key1, value1): //επεξεργασία για κάθε <key1,value1> emit(key2,value2) REDUCE(key2,list(value2)): //επεξεργασία για κάθε <key2, list(value2)> emit(key3,value3)

Άσκηση 2 1. Μέσος μισθός ανά zipcode map(key, value): // key: some tupleID; //value: tuple {name, age, address, zipcode, salary} emit(zipcode, salary) reduce(zipcode, list(salary)): // key: a zipcode; value: an iterator over salaries result = 0 count = 0 for each salary s in list(salary){ result += s count++ } mean_salary_per_zip = result/count emit(zipcode, mean_salary_per_zip)

Άσκηση 2 2. Ομαδοποίηση zipcodes map(zipcode, mean_salary_per_zip): Group = “ ” if salary_per_zip <100k group = “less_than_100” else if salary_per_zip>=500k group = “more_than_500” else group = “between_100_500” emit(group, zipcode) reduce(group, list(zipcode)): emit(group, list(zipcode))

Άσκηση 3 Chord με αναγνωριστικά 0-99 και 8 κόμβους:

Άσκηση 3 Πόσα fingers είναι απαραίτητα στον πίνακα δρομολόγησης; Ids 0-99 -> 27 =128 > 100 οπότε 7 fingers Καταγράψτε τον πίνακα finger του κόμβου 82 fn(i) = Successor((n+2i)mod100) f82(0) = Successor((82+1)mod100)= Successor(83) = 86 f82(1) = Successor((82+2) mod100) = Successor(84) = 86 f82(2) = Successor((82+4) mod100) = Successor(86) = 86 f82(3) = Successor((82+8) mod100) = Successor(90) = 1 f82(4) = Successor((82+16) mod100) = Successor(98) = 1 f82(5) = Successor((82+32) mod100)= Successor(14) = 32 f82(6) = Successor((82+64) mod100)= Successor(46) = 67

Άσκηση 3 Σημειώστε τις περιοχές των αναγνωριστικών (ids) για τις οποίες είναι υπεύθυνος o κάθε κόμβος στον δακτύλιο. PeerID From To 1 88 8 2 32 9 67 33 72 68 82 73 86 83 87

Άσκηση 3 Ο κόμβος 82 εκτελεί αναζήτηση για το αντικείμενο με id 7. Καταγράψτε το μονοπάτι που θα ακολουθηθεί (με χρήση finger tables) μέχρι την εύρεσή του. Υποθέτουμε ότι το δίκτυο είναι σταθερό και δε συμβαίνουν σφάλματα. 82 -> 1 -> 8

Άσκηση 4 Τρεις servers, Χ, Υ και Z, διατηρούν αντίγραφα των δεδομένων Α και Β. Για τη διατήρηση της συνέπειας των αντιγράφων εφαρμόζεται ο αλγόριθμος της ομοφωνίας με στατική απαρτία (static quorum consensus) με R = W = 2. Οι αρχικές τιμές των αντιγράφων για το Α είναι 100 και για το Β είναι 50 σε όλους τους servers. Ένας client διαβάζει την τιμή του Α και μετά τη γράφει στο Β.

Flashback Η απόφαση για το πόσοι RMs πρέπει να εμπλακούν σε ένα operation πάνω σε αντίγραφα λέγεται επιλογή απαρτίας (quorum selection) Κανόνες: Τουλάχιστον r αντίγραφα πρέπει να προσπελαστούν για ένα read Τουλάχιστον w αντίγραφα πρέπει να προσπελαστούν για ένα write r + w > N, όπου N ο αριθμός των αντιγράφων w > N/2 Κάθε αντικείμενο έχει ένα version number ή ένα συνεπές timestamp

Άσκηση 4 Ένα network partition απομονώνει τον server Z από τους Χ και Υ. Πώς θα εκτελεστούν οι λειτουργίες αν ο client μπορεί να προσπελάσει (i) μόνο τον Χ και Υ και (ii) μόνο τον Ζ. Έστω ότι αρχικά όλα στην v0 X Y Z A= 100 (vo) A= 100(vo) A= 100(vo) B= 50(vo) B= 50(vo) B= 50(vo) i) Αφού R=2, διαβάζει την τιμή Α (100) από τον Χ ή τον Υ Αφού W=2, γράφει την τιμή Β=100 στον Χ και στον Υ ii) Δεν μπορεί ούτε να γράψει ούτε να διαβάσει γιατί το quorum είναι 1 και στις 2 περιπτώσεις

Άσκηση 4 Ο διαμερισμός επιδιορθώνεται και στη συνέχεια συμβαίνει νέος διαμερισμός που χωρίζει τους Χ και Ζ από τον Υ. Περιγράψτε τι θα συμβεί αν κάποιος client θέλει να διαβάσει την τιμή του B και να την αυξήσει κατά 20, αν μπορεί να προσπελάσει μόνο τον Χ και Ζ X Y Z A= 100 (v0) A= 100(v0) A= 100(vo) B= 100(v1) B= 100(v1) B= 50(vo) To read request χρειάζεται quorum από X και Z. Διαφορετικές versions - > ο Ζ ανανεώνει την τιμή του Β με την πιο πρόσφατη version από τον X Υπάρχει read quorum 2 αλλά και write quorum 2