Summary: | Πρόσφατα η ιντερνετική κοινότητα έστρεψε την προσοχή και το ενδιαφέρον της στα peer-to-peer συστήματα, όπου οι χρήστες προσφέρουν τους πόρους τους (αποθηκευτικό χώρο, υπολογιστικό χρόνο) και περιεχόμενο (αρχεία) στην διάθεση της κοινότητας. Οι χρήστες θεωρούνται ίσοι μεταξύ τους και ο καθένας συμμετέχει με διπλό ρόλο, τόσο σαν πελάτης, όσο και σαν εξυπηρετητής. Με αυτό τον τρόπο δημιουργούνται κοινότητες με αποκεντρωμένο έλεγχο, ευελιξία, σταθερότητα, κλιμάκωση, ανωνυμία κι αντοχή στην λογοκρισία. Ενώ όμως οι δυνατότητες αυτών των συστημάτων είναι ποικίλες, την μεγαλύτερη αποδοχή έχουν γνωρίσει τα συστήματα ανταλλαγής αρχείων όπως το Napster, Kazaa, Gnutella, eDonkey, BitTorrent. Το ενδιαφέρον των ερευνητών δεν έχει περιοριστεί μόνο στην ανταλλαγή δεδομένων μιας και η ανοιχτή φύση των peer-to-peer συστημάτων προσφέρει πολύ περισσότερες προκλήσεις.
Ένα ενδιαφέρον πεδίο έρευνας είναι αυτό των τεχνικών εξισορρόπησης φόρτου. Η έρευνα που διεξάγεται μπορεί να χωριστεί σε δύο κατηγορίες. Στην μια κατηγορία μπορούμε να εντάξουμε τεχνικές για την καλύτερη κατανομή των αντικειμένων στον χώρο ονομάτων για βελτιστοποιήσεις στην απόδοση της δρομολόγησης και αναζήτησης [Pastry, Tapestry, Chord]. Στην δεύτερη μπορούμε να εντάξουμε τεχνικές για την κατανομή αντιγράφων των αντικειμένων στους κόμβους του δικτύου, για βελτιστοποίηση του ρυθμού εξυπηρέτησης των χρηστών και της ποιότητας υπηρεσίας που τους προσφέρει το σύστημα, η οποία μπορεί άμεσα να συσχετιστεί με την διαθεσιμότητα.
Ενώ η δεύτερη κατηγορία μπορούμε να πούμε ότι φαίνεται να είναι πιο ενδιαφέρουσα από την σκοπιά του τελικού χρήστη, η έρευνα στον τομέα αυτό δεν φαίνεται να λαμβάνει υπόψη της έναν ρεαλιστικό υπολογισμό του κόστους εφαρμογής των προτεινομένων τεχνικών. Έτσι κάποιες εργασίες δεν υπολογίζουν καθόλου το κόστος δημιουργίας αντιγράφων, ενώ κάποιες άλλες το θεωρούν σταθερό και ανεξάρτητο από το μέγεθος των αντικειμένων και τη σύνδεση των δυο κόμβων μεταξύ των οποίων γίνεται η επικοινωνία. Κάποιες λιγότερο ή περισσότερο προχωρούν λίγο παραπέρα και ορίζουν το κόστος να είναι ανάλογο του απαιτούμενου αποθηκευτικού χώρου. Η διαφορά με την παρούσα εργασία είναι ότι δεν εμπεριέχουν την έννοια της εξισορρόπησης του φόρτου των κόμβων μεταξύ τους.
Σε αυτή την εργασία προσπαθήσαμε να καθορίσουμε ένα σύνολο μετρικών απόδοσης μέσα από ένα πλαίσιο εργασίας για έναν όσο το δυνατόν περισσότερο ρεαλιστικό τρόπο υπολογισμού τους. Για να το πετύχουμε αυτό, καταρχήν σχεδιάσαμε ένα p2p σύστημα διαμοίρασης αρχείων με αρχιτεκτονική που βασίζεται στην οργάνωση των κόμβων σε ομάδες, ενώ στη συνέχεια ορίζοντας την έννοια του φόρτου υλοποιήσαμε τεχνικές για την εξισορρόπησή του. Για την αξιολόγηση των τεχνικών, ορίστηκε ένα σύνολο μετρικών οι οποίες καταγράφουν την απόδοση του συστήματος τόσο από την οπτική γωνία του συστήματος (επιθυμητή η δίκαιη κατανομή του φόρτου και η βέλτιστη χρήση των πόρων όπως κυρίως η διαθέσιμη χωρητικότητα των συνδέσεων των κόμβων μεταξύ τους), όσο κι από την οπτική γωνία του χρήστη (καλύτερη «ποιότητα υπηρεσίας» με το ελάχιστο δυνατό κόστος).
Η πειραματική αξιολόγηση των τεχνικών έγινε μέσα σε ένα περιβάλλον προσομοίωσης, το οποίο υλοποιήθηκε από μηδενική βάση, έπειτα από μια μελέτη παρόμοιων συστημάτων. Τα κύρια χαρακτηριστικά του περιβάλλοντος αυτού είναι α) η επεκτασιμότητα κι ευχρηστία του, β) απλή και ρεαλιστική βάση προσομοίωσης, γ) ύπαρξη πληθώρας παραμέτρων της προσομοίωσης που δίνονται σαν είσοδος από τον χρήστη και δ) δυνατότητα προσομοίωσης μεγάλου μεγέθους συστημάτων. === Recently the internet community has focused its interest on peer-to-peer systems, where users contribute their resources (storage space, computation time) and content (documents, files) to the community. The users are considered equivalent, each one participating with a dual role, both as a client and server. The communities formed under this simple peer-to-peer paradigm are characterized by the decentralized control, robustness, stability, scaling, anonymity and resistance to censorship. While there are various potential application domains of peer-to-peer systems, depending on the type of shared resources, the file sharing systems, such as Napster, Kazaa, Gnutella, eDonkey, BitTorrent, has known the greater acceptance. The “open nature” of peer-to-peer systems offers a wider area of research interest and much more challenges than just content sharing; interesting research domains include infrastructure, collaboration, searching, routing, load balancing, security etc
Load balancing is a very interesting domain on such systems. The carried out research in this domain may be categorized in two categories. In the first, one can include techniques for better item distribution in the name space so as improvements in routing and searching can be accomplished [ref2 Pastry, Tapestry, Chord]. In the second, one can include techniques for items’ replicas placement to the network nodes, for improving the throughput and the Quality of Service provided to the users. The QoS can be straightforward related to the availability
While the second category seems to be more interesting from the user’s perspective, the research in this domain does not seem to take into account a realistic cost evaluation of the proposed techniques. Some research studies just ignore it, while some others consider it constant and irrelative to the objects’ size and the connection between the two nodes where the object transfer occurs. Some others (less) (or more) get a little further and define the cost to be proportional to the needed storage capacity. The difference with our study is that the previous studies do not comprise the notion of load balancing among users as well as evaluate the cost under different assumptions.
With our work we try to define a set of performance metrics through a framework based on a measurement as realistic as possible. To accomplish this, at first we designed a cluster based file sharing p2p system, then we defined the notion of load and finally implemented load balancing techniques. To evaluate these techniques we defined a set of metrics that record the system’s performance both from the system’s perspective (desirable the fair load distribution and the optimum use of resources like the available bandwidth of nodes’ connections) and the user’s (better “quality of service” with the least cost).
For the experimental evaluation of these techniques we developed from scratch a simulation environment, after we studied similar systems. The main characteristics of this simulator are a) extensibility and usability, b) simple and realistic simulation base, c) availability of plenty simulation parameters given as input from the user d) scalability to simulate large scale systems.
|