Abstract:This paper presents a self-adaptive load balancing algorithm, in which each node creates a local load distribution view with a passive load statistic method and a local file requested view with a file requested statisticmethod. When the load imbalance exists in the system, the heavily loaded node will make the logical links pointingto itself point to a lighty loaded node in its local load distribution view, with the indegree of the heavy loaded nodedecreasing and that of the lighty loaded node increasing, the load imbalance magnitude will decrease. When therequest load of the heavy loaded node is high, the node will use its local file request view to get the popular file andcache the file to corresponding target node. Results from simulation experiments indicate that the system has a good load balance under Zipf-like requests distribution if it runs the self adaptive load balancing algorithm. To someextent, caching requires some extra messages, but fewer than the cache hit messages under some condition, socaching can reduce the overall load of the system.