Self-optimization of DHT lookups through run-time performance analysis
Konrad Jünemann, Hannes Hartenstein · 2014
Distributed Hash Tables (DHTs) provide information lookup within a Peer-to-Peer (P2P) network. A multitude of distributed applications leverages DHTs for offering more advanced services such as distributed file systems, web caches or distributed DNS. For such DHT-based applications, lookup performance is highly important. However, lookup performance is severely affected by network characteristics, i.e., churn and connectivity issues due to NAT routers. As those characteristics are heavily influenced by user behavior, changes are not only likely but also hard to predict. Although DHTs are known for their self-organization, current implementations often do not adapt optimally to variation in network characteristics. In this paper, we propose to dynamically optimize the client through tuning its parameters at run-time. For doing so, different configurations are tested and compared automatically. To reduce overhead, requests sent to other peers are recorded and replayed by a simulation engine, if the same peer is queried again using the same parameter. We evaluated our approach at two exemplary scenarios of the future state of the BitTorrent Mainline DHT (MDHT), one of the most widely used public DHTs. In these scenarios, the lookups of a client using static parameters were more than three times slower and had a 25% higher network overhead than those of an adaptive client. With only 4 additional UDP packets sent per second and a one-digit CPU load, the proposed approach also induces minimal overhead.