Unstructured P2P networks support distributed applications whose workload may vary significantly over time and between nodes. Self-optimizing systems try to keep the load in the network balanced despite the frequent load fluctuations. Several P2P systems exhibit a number of related features but fail to avoid centralisation under high-load situations. ERGO aims to balance the overloaded nodes by rewiring some of their incoming links to underloaded ones via a set of interconnected servers which index the underloaded nodes. In two simulated environments, ERGO load-balancing on Gnutella network increases the balanced nodes and network availability by preserving its efficiency and even reducing its messages.
Pournaras, E., Exarchakos, G., & Antonopoulos, N. (2008). Load-driven neighbourhood reconfiguration of Gnutella overlay. Computer Communications, 31(13), 3030-3039. https://doi.org/10.1016/j.comcom.2008.02.018