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

Slides:



Advertisements
Παρόμοιες παρουσιάσεις
Ιεραρχίες Κόμβων Δομημένες σε Δακτύλιο για Ρ2Ρ Συστήματα Βασισμένα σε RDF Σχήματα Παρουσίαση Μεταπτυχιακής Διατριβής: Νικόλαος Κρεμμυδάς Επιβλέπουσα καθηγήτρια:
Advertisements

Υλοποίηση Συστήματος Ψηφοφορίας με τη χρήση Java RMI
Chord: A scalable Peer-to-Peer Lookup Service for Internet Applications Παρουσίαση: Αθανασόπουλος, Αλεξάκης, Δεβελέγκα, Πεχλιβάνη, Φωτιάδου, Φωτόπουλος.
ΕΙΣΑΓΩΓΗ ΣΤΑ ΔΙΚΤΥΑ ΕΠΙΚΟΙΝΩΝΙΑΣ
Αλγόριθμοι Αναζήτησης
Μεταγωγή και Πολυπλεξία
1 Κλήση Απομακρυσμένων Διεργασιών (Remote Procedure Call - RPC) Γεωργόπουλος Άλκης Κολωνιάρη Γεωργία Κοντογιώργης Τάσος Λεοντιάδης Ηλίας Πετράκης Γιάννης.
Άμεσοι Αλγόριθμοι: Προσπέλαση Λίστας (list access) TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A A A Έχουμε αποθηκεύσει.
ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΤΜΗΜΑ ΜΗΧΑΝΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΒΙΟΜΗΧΑΝΙΑΣ Διάλεξη 2: Πίνακες και δυναμικά δεδομένα στη FORTRAN 90 Εαρινό εξάμηνο 2009 ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ.
ΣΤΟΙΧΕΙΑ ΨΕΥΔΟΚΩΔΙΚΑ ΒΑΣΙΚΕΣ ΔΟΜΕΣ ΒΑΣΙΚΟΙ ΑΛΓΟΡΙΘΜΟΙ ΠΙΝΑΚΩΝ
Ανακτηση Πληροφοριασ σε νεφη Υπολογιστων
Πρωτόκολλο στάσης και αναμονής
Διαχείριση Δικτύων Ευφυή Δίκτυα Άσκηση 1: Χρήση βασικών εργαλείων για συλλογή πληροφοριών για τη διαμόρφωση και την κατάσταση λειτουργίας του δικτύου.
Διάλεξη 16: Πρόβλημα Συμφωνίας ΕΠΛ 432: Κατανεμημένοι Αλγόριθμοι.
1/23 DHTStrings: Συστήματα Δημοσιεύσεων/Συνδρομών σε DHT Δίκτυα με Υποστήριξη για Συμβολοσειρές Διανομή Περιεχομένου στο Διαδίκτυο Τμήμα ΜΗΥΠ Παν/μιο Πατρών.
ΙΩΑΝΝΗΣ ΚΩΝΣΤΑΝΤΙΝΟΥ 3ο ΦΡΟΝΤΙΣΤΗΡΙΟ ΠΑΡΑΣΚΕΥΗ 19 ΟΚΤΩΒΡΙΟΥ 2012 ΑΙΘΟΥΣΑ Β4 1.
Κοντινότεροι Κοινοί Πρόγονοι α βγ θ δεζ η π ν ι κλμ ρσ τ κκπ(λ,ι)=α, κκπ(τ,σ)=ν, κκπ(λ,π)=η κκπ(π,σ)=γ, κκπ(ξ,ο)=κ ξο κκπ(ι,ξ)=β, κκπ(τ,θ)=θ, κκπ(ο,μ)=α.
Δυναμική Διατήρηση Γραμμικής Διάταξης Διατηρεί μια γραμμική διάταξη δυναμικά μεταβαλλόμενης συλλογής στοιχείων. Υποστηρίζει τις λειτουργίες: Έλεγχος της.
Βάσεις Δεδομένων II Διαχείριση Δοσοληψιών Πάνος Βασιλειάδης Σεπτέμβρης 2002
Τυχαιοκρατικοί Αλγόριθμοι TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA Πιθανότητες και Αλγόριθμοι Ανάλυση μέσης.
1 Content Addressable Network Λίλλης Κώστας Καλλιμάνης Νικόλαος Αγάθος Σπυρίδων – Δημήτριος Σταθοπούλου Ευγενία Γεωργούλας Κώστας.
7.7 Πρωτόκολλο ARP Δίκτυα Υπολογιστών ΙΙ.
©Γεωργιλά Χιονία Καθηγήτρια Πληροφορικής ΠΕ1901
Δομές Αναζήτησης TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A A A Χειριζόμαστε ένα σύνολο στοιχείων όπου το κάθε.
Αξιόπιστη Επικοινωνία και Έλεγχος Ροής
1 Έλεγχος ροής και συμφόρησης (flow and congestion control) flow control Ο όρος έλεγχος ροής (flow control) χρησιμοποιείται συχνά για να περιγράψει τους.
Διδακτική της Πληροφορικής Παρουσίαση εκπαιδευτικών παιχνιδιών με σκοπό την κατανόηση βασικών αρχών της πληροφορικής Αντωνακάκη Δέσποινα Α.Μ 933 Καντεράκης.
2-1 Ανάλυση Αλγορίθμων Αλγόριθμος Πεπερασμένο σύνολο εντολών που, όταν εκτελεστούν, επιτυγχάνουν κάποιο επιθυμητό αποτέλεσμα –Δεδομένα εισόδου και εξόδου.
Κατανεμημένα Συστήματα με Java Ενότητα # 4: Αμοιβαίος αποκλεισμός Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής.
Προχωρημένα Θέματα Τεχνολογίας και Εφαρμογών Βάσεων Δεδομένων Διαχείριση Συναλλαγών Πάνος Βασιλειάδης Μάρτιος 2014
Κατανεμημένα Συστήματα με Java Ενότητα # 5: Εκλογή αρχηγού Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής.
1 routing Δρομολόγηση (routing) σε δίκτυα Αυτοδύναμα Πακέτα (Datagrams): απόφαση δρομολόγησης για κάθε πακέτο. Εικονικά Κυκλώματα (Virtual Circuits): μία.
Chord: A Scalable Peer -to-peer Lookup Service for Internet Applications Authors: Ion Stoica, Robert Morris, David Karger, M. Frans Kaashoek, Hari Balakrishnan.
Διερεύνηση γραφήματος. Ένας αλγόριθμος διερεύνησης γραφήματος επισκέπτεται τους κόμβους του γραφήματος με μια καθορισμένη στρατηγική, π.χ. κατά εύρος.
1 Βέλτιστη δρομολόγηση (optimal routing) Αντιμετώπιση της δρομολόγησης σαν «συνολικό» πρόβλημα βελτιστoποίησης. Γιατί: Η αλλαγή της δρομολόγησης μιας συνόδου.
CHORD A Scalable Peer-to-peer Lookup Service for Internet Applications Μαρίνα Δρόσου Νικόλαος Μπουντουρόπουλος Οδυσσέας Πετρόχειλος Παναγιώτης Δομουχτσίδης.
Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1 Εισαγωγή στην Επεξεργασία Ερωτήσεων.
A Scalable Content-Addressable Network Μυρτώ Ντέτσικα Παναγιώτα Νικολαΐδου Ελένη Γεώργα Λαμπρινή Κώνστα Βαγγέλης Λάππας Γρηγόρης Τζώρτζης Γιώργος Καρπάθιος.
1 Chord: A scalable Peer to Peer Lookup Service for Internet Applications Νικόλαος Καλλιμάνης Σπυρίδων-Δημήτριος Αγάθος Ευγενία Σταθοπούλου.
ΕΠΛ 231 – Δομές Δεδομένων και Αλγόριθμοι13-1 Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Ο αλγόριθμος Dijkstra για εύρεση βραχυτέρων μονοπατιών.
Δρομολόγηση. Δρομολόγηση ονομάζεται το έργο εύρεσης του πως θα φθάσει ένα πακέτο στον προορισμό του Ο αλγόριθμος δρομολόγησης αποτελεί τμήμα του επιπέδου.
Τεχνολογία TCP/IP TCP/IP internet είναι ένα οποιοδήποτε δίκτυο το οποίο χρησιμοποιεί τα πρωτόκολλα TCP/IP. Διαδίκτυο (Internet) είναι το μεγαλύτερο δίκτυο.
1 ΤΜΗΜΑ ΜΠΕΣ Αλγόριθμοι Αναζήτησης Εργασία 1 Τυφλή Αναζήτηση.
Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1 Επεξεργασία Ερωτήσεων.
ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Διδάσκοντες:Στάθης Ζάχος Νίκος Παπασπύρου
Παράλληλη/Κατανεμημένη Επεξεργασία και Εφαρμογές
Διαχείριση Δικτύων Ευφυή Δίκτυα Άσκηση 1: Χρήση βασικών εργαλείων για συλλογή πληροφοριών για τη διαμόρφωση και την κατάσταση λειτουργίας του δικτύου.
Διαχείριση Δικτύων Ευφυή Δίκτυα Άσκηση 1: Χρήση βασικών εργαλείων για συλλογή πληροφοριών για τη διαμόρφωση και την κατάσταση λειτουργίας του δικτύου.
Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1 Ευρετήρια.
1 Chord - Stabilization Λίλλης Κώστας Γεωργούλας Κώστας.
Κατανεμημένα Συστήματα: Θεωρία και Προγραμματισμός Ενότητα # 2: Διάταξη συμβάντων, καθολικές καταστάσεις Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής.
ΚΑΤΑΝΕΜΗΜΕΝΑ ΣΥΣΤΗΜΑΤΑ (ΕΡΓΑΣΤΗΡΙΟ). 2 Εξοικείωση με πρωτόκολλο TCP Connection Oriented Αξιοπιστία στην παράδοση Σειρά Καθυστερήσεις Χαρακτηριστικά.
Εκλογή Αρχηγού Ειδικά Θέματα Κατανεμημένων Συστημάτων.
Για μτ από ατ μέχρι ττ [με_βήμα β] εντολές Τέλος_επανάληψης : περιοχή εντολών μτ : η μεταβλητή της οποίας η τιμή θα περάσει από την αρχική.
To πρωτόκολλο διαδικτύου IP -χρησιμοποιείται από αποστολέα και παραλήπτη που μπορεί να βρίσκονται σε διαφορετικά δίκτυα για να ανταλλάξουν πακέτα πληροφοριών.
Γράφημα Συνδυαστικό αντικείμενο που αποτελείται από 2 σύνολα:
Προχωρημένα Θέματα Δικτύων
Δυναμικός Κατακερματισμός
ΔΟΜΗ ΑΠΛΗΣ ΕΠΙΛΟΓΗΣ ΑΝ συνθήκη_ισχύει ΤΟΤΕ εντολές ΤΕΛΟΣ_ΑΝ
Κατανεμημένα Συστήματα
Αµοιβαίος αποκλεισµός
Κεφάλαιο 7: Διαδικτύωση-Internet Μάθημα 7.9: Δρομολόγηση
ΜΟΡΦΕΣ ΔΟΜΩΝ ΕΠΑΝΑΛΗΨΗΣ
Επανάληψη.
Η τακτοποίηση των κόμβων μίας δομής με μία ιδιαίτερη σειρά είναι μία πολύ σημαντική λειτουργία που ονομάζεται ταξινόμηση (sorting) ή διάταξη (ordering).
Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον ΑΕΠΠ
Δομές Αναζήτησης Χειριζόμαστε ένα σύνολο στοιχείων όπου το κάθε στοιχείο έχει ένα κλειδί από ολικά διατεταγμένο σύνολο Θέλουμε να υποστηρίξουμε δύο.
Κατανεμημένες δοσοληψίες
Δυναμικός Κατακερματισμός
Κατανεμημένα Συστήματα
Μεταγράφημα παρουσίασης:

Κατανεμημένα Συστήματα Ασκήσεις 2016-2017 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