next up previous
: Clustering : Cost Model : Inferring Object Interests

Load Estimation

To facilitate load balancing, nodes estimate their own load and the loads of other nodes in the system. Each node estimates its current load using a 1-second moving window which tracks bandwidth usage. While we could use more sophisticated techniques, we found them unnecessary since the rate of update traffic in Quake II was nearly constant ([18] report similar findings for a different game). Nodes periodically exchange load information with those which they are maintaining replicas with.

In addition, we use Mercury to enable nodes to discover ``lightly loaded'' nodes by adding an extra Mercury hub with a load attribute. Nodes periodically publish load information to Mercury and subscribe when they wish to discover nodes with load $ <$ a particular value. Load publications are small and infrequent compared to game traffic, so overhead is low for small or medium group sizes; for larger groups, an anycast primitive similar to that used in [13] could be used. Mercury can also provide information about the average load in the system. We can use this information to adaptively set the $ lowwater$ and $ highwater$ thresholds. For example, we currently set them based on a window around the estimated average load.


next up previous
: Clustering : Cost Model : Inferring Object Interests
Ashwin Bharambe 平成17年3月2日