Skip to Main Content
Resource indexing is an effective technique for fast, successful search on decentralized, unstructured peer-to-peer (P2P) networks. An index is a summary of resources owned by a node, and is distributed over the P2P network; any node having the index can answer queries on the location of the resources. While more thoroughly distributed indices can make queries answered more quickly with a small hop count, in large-scale networks, such a scheme may not be always effective due to the large space requirement for keeping indices at each node. We propose a new index distribution technique that aims to minimize the hop count required for each query by distributing indices over the network as uniformly as possible, but still in a space-efficient way. To do so, we compute the weight of each index that estimates how many unique resources each index can locate. We give a large weight to an index if it can locate many resources that others cannot. On the other hand, if a resource can be located from an index, we decrease the weights of other indices that can also locate it. Each node selectively keeps the indices with the largest weights, thus increasing the chance of successful queries at the node, while keeping the space requirement minimum. Simulation studies show that our distribution technique is effective in decreasing hop counts and messages needed for resolving queries. It decreases the average hop count by up to 44% with 75%-less messages when used with flooding based queries. Random-walk with our technique also decrease the average hop count by up to 58% with 82%-less messages. Furthermore, the query success rate with a limited timeout condition also increases, approaching nearly to 100%.