Ιούνιος+2009+(directory+services)

Θέμα 5ο (20 Βαθμοί)


 * 1) Ποιοι είναι οι βασικότεροι λόγοι για την κατανεμημένη υλοποίηση μιας υπηρεσίας καταλόγου συγκριτικά με την κεντρικοποιημένη υλοποίηση;
 * 2) Περιγράψτε συνοπτικά τη μέθοδο αναζήτησης με επανάληψη (από τον πελάτη).
 * 3) Περιγράψτε συνοπτικά τη μέθοδο αναζήτησης με αναδρομή.
 * 4) Δώστε ένα παράδειγμα όπου η πρώτη μέθοδος είναι (αισθητά) χειρότερη από τη δεύτερη, τεκμηριώνοντας την άποψή σας με βάση τη μετάδοση μηνυμάτων σε φυσικό επίπεδο, καθώς και την καθυστέρηση απόκρισης που βλέπει ο πελάτης (υποθέστε ότι η μετάδοση ενός μηνύματος πάνω από μία φυσική σύνδεση του δικτύου απαιτεί χρόνο Τ).
 * 5) Στο DNS οι εξυπηρετητές υψηλού επιπέδου (κοντά στη ρίζα της ιεραρχίας του χώρου ονομάτων) δεν υποστηρίζουν αναζήτηση με αναδρομή. Επιχειρηματολογήστε κατά πόσο αυτό θα βελτίωνε σημαντικά την απόδοση του DNS.

__Λύση__:

> -Aν δεν έχει την πληροφορία στη κρυφή μνήμη ξεκινάει αναζήτηση. > -Στέλνει αίτηση στον κοντινό του server και περιμένει απάντηση. > -Όσο δεν παίρνει την ζητούμενη απάντηση στέλνει αίτηση σε άλλον server. > __Ο εξυπηρετητής:__ > -Αν έχει τη ζητούμενη απάντηση τη στέλνει στον πελάτη > -Διαφορετικά απαντά με τη διεύθυνση ενός άλλου εξυπηρετητή Μόνο ο πελάτης κρατά στην κρυφή του μνήμη το αποτέλεσμα για επόμενη αναφορά > > -Aν δεν έχει την πληροφορία στη κρυφή μνήμη ξεκινάει αναζήτηση. > -Στέλνει αίτηση στον κοντινό του server και περιμένει απάντηση. > __Ο εξυπηρετητής:__ > -Αν έχει τη ζητούμενη απάντηση τη στέλνει στον πελάτη > -Διαφορετικά συνεχίζει την αναζήτηση αναδρομικά ως νέος πελάτης > -Όταν τελικά λάβει απάντηση τη στέλνει πίσω στον πελάτη, και αναδρομικά φτάνει και στον αρχικό πελάτη. > Όλοι οι ενδιάμεσοι κόμβοι κρατάνε το αποτέλεσμα στην cache για να τη δώσουν σε άλλους πελάτες ή εξυπηρετητές > > Έστω ότι για να φτάσει ένα μήνυμα στον server που έχει τη ζητούμενη πληροφορία πρέπει να περάσει από n κόμβους: > Στην __επαναληπτική αναζήτηση__ ο πελάτης θα στείλει n μηνύματα. Το πρώτο μήνυμα θα χρειαστεί χρόνο 2Τ(ένα για να πάει και ένα για να γυρίσει), το δεύτερο μήνυμα 4Τ κοκ και το n-οστό θα χρειαστεί χρόνο 2nT. Σύνολο θα χρείαστεί 2T+4T+...+2nT = 2*Σ(iT), 1(i)n. > Στην __αναδρομική αναζήτηση__ ο πελάτης θα στείλει 1 μηνύμα και θα χρειαστεί χρόνο Τ. Στη συνέχεια ο server θα στείλει στον επόμενο server πάλι 1 μήνυμα κοκ μέχρι και τον (n-1)-οστό server που θα στείλει 1 μήνυμα στον n-οστό που έχει τη ζητούμενη πληροφορία. Αναδρομικά θα σταλεί η απάντηση από server σε server μέχρι να φτάσει στον πελάτη. Άρα συνολικά θα σταλούν n μηνύματα μέχρι να βρεθεί η απάντηση και άλλα n για να επιστρέψει. Σύνολο η αναζήτηση θα διαρκέσει χρόνο 2nT. >
 * 1) Λόγοι:
 * Υπερφόρτωση του κεντρικού κόμβου αποθήκευσης του καταλόγου από αιτήσεις
 * Μη διάθεση της υπηρεσίας καταλόγου αν ο κεντρικός κόμβος υποστεί βλάβη
 * Δεν εκμεταλλευόμαστε την τοπικότητα του δικτύου
 * 1) __Ο πελάτης__:
 * 1) __Ο πελάτης__:
 * 1) Η πρώτη μέθοδος αποτυγχάνει σε σχέση με την πρώτη όταν ο server που είναι υπεύθυνος για την πληροφορία βρίσκεται μακριά από τον πελάτη που ξεκινά την αναζήτηση σε φυσικό επίπεδο.
 * 1) Δεν θα βελτίωνε την απόδοση.
 * Αυτοι οι servers ήδη βομβαρδίζονται από αιτήσεις καθώς κάθε διεύθυνση περιέχει σίγουρα ένα top-level domain (.com .edu etc...) Αν χρειαστεί για κάθε αίτηση που λαμβάνουν να κάνουν και αναδρομική αναζήτηση για λογαριασμό του sender θα δημιουργηθεί μεγάλο bottleneck σε αυτό το επίπεδο.
 * Η αναδρομική αναζήτηση βασίζεται στο οτι κάθε hop, ο server θα αποθηκεύσει σε cache το αποτέλεσμα για μελλοντική χρήση. Αυτό,αρχικά, για να δουλέψει αποδοτικά σε αυτό το level χρειάζεται terabytes απο cache λόγω της ποσότητας των αιτήσεων. Ακόμη και αν υπήρχε όμως, τέτοια μνήμη διαθέσιμη θα αχρηστευόταν καθώς τα δεδομένα της θα ανανεωνόταν παρά πολύ γρήγορα(πολλές αιτήσεις) και θα ήταν σαν να μην έχουμε πρακτικά cache.

include component="comments" page="Ιούλιος 2009 (directory services)" limit="10"