ERGO achieves a balanced load by introducing the concept of a virtual server or superpeer. These nodes, elected based on their performance profile, are organized in another overlay network that manages the load of the nodes in the network. More specifically, virtual servers index (i) underutilized nodes, (ii) overutilized nodes and (iii) the nodes that are the load originators of the overutilized nodes. The state of the load in the nodes is defined by thresholds related to the number of received queries. Based on this information, load-balancing is achieved by rewiring load originators from the overutilized nodes to the underutlized nodes.
The rewiring of ERGO is achieved in a cooperative fashion between the virtual servers. This means that virtual servers communicate to explore underutilized nodes about which they may not have knowledge. This makes the load balancing mechanism of ERGO decentralized and more robust to single node failures.
ERGO has been evaluated qualitatively and quantitatively through simulations. Results show that load-balancing in unstructured overlay networks is feasible and cost-effective.
- Evangelos Pournaras, Georgios Exarchakos and Nikolaos Antonopoulos, Load-driven neighbourhood reconfiguration of Gnutella overlay, Journal of Computer Communications, Vol. 31, Nr. 13, pp. 3030–3039, 2008 © Elsevierr
- Evangelos Pournaras, Dynamic Performance Improvement of Gnutella Networks, MSc Thesis, University of Surrey, August 2007 (Supervisor: Nikolaos Antonopoulos) [Presentation]