A distributed index for discovering distributed data sources and computing
resources based on predicates on attributes is provided. Proposed is a
non-altruistic scheme for indexing distributed data, in which nodes are
provided with incentives to cooperate in the referencing of data and the
routing of search requests for indexed data. Indexed data is mapped to a
dynamic routing graph, in which nodes earn credits each time they route a
search request. Participatory nodes along a search request traversal
continually modify local routing decisions in a manner necessary to
maximize profit. Thus, routing paths as a whole are able to dynamically
adapt to changing query workloads and access patterns. Dynamic adaptation
also occurs by automatic load-balancing of recipients of frequently
routed searches, known as "hot spots", for frequently request data, "hot
items", as a result of an incentive to replicate the indexing strategy of
a more profitable node.