next up previous
Next: Test bed for Measuring Up: Algorithms Previous: Load balancing at front

Support at each server

Each server sends its load information to front node periodically or when its load condition changes significantly.

procedure send_server_load
{
 Input: Current load
 Output: Sends load information to front node

 get current load information from system
 send_load_to_front_node(load)
}

Each server also sends client request rates to front node periodically however at longer interval (order of minute).

procedure send_request_rate
{
 Input: Client IP and their request rates
 Output: None (sends this info to front node)
 
 read html access log file and aggregate number of requests from each client 
 send_request_rate_to_frontnode(Client IP, request rate)
}

Also each server has secondary aliased IP address same as front node's IP address so when packet is received using other IP address, this packet should be re-injected back in protocol stack with changed destination IP address of front node.

procedure change_destination_address
{
 Input: Incoming IP packets for HTTP connection
 Output: IP packets with changed destination address

 for each incoming IP packet for HTTP connection
     rewrite destination address to IP address of front node(and secondary IP)
      and re-inject it back in TCP/IP stack
}

Thus IP packets received by front node are forwarded to server using local private IP address of server and then server rewrites dest address back to cluster IP address and to tcp layer it seems that this packet came with destination address of aliased secondary IP address directly.



Puneet Agarwal 2001-05-12