The Design of a Load Balancing Mechanism for Distributed Computer Systems

Harry I. Rubin

EECS Department
University of California, Berkeley
Technical Report No. UCB/CSD-87-362
July 1987

http://www2.eecs.berkeley.edu/Pubs/TechRpts/1987/CSD-87-362.pdf

We describe the design and planned implementation of a load balancer for a network of computers. The mechanisms that make decisions are separated from those that carry out actions, and different levels of centralization are chosen for each. Load balancing decisions are made by one-per-machine managers; this allows better administrative control, consideration of recent history in making decisions, and reduces duplication of effort. Load balancing actions include establishing communication connections, sending task descriptions, executing a task, returning results, and so on. Load balancing actions are decentralized, each program performs its own, because these actions can be time-consuming and centralizing them could form a bottleneck.

Sending decisions include unload decisions, eligibility decisions, and placement decisions. These are made by a load balancing send manager (LBSM); there is one LBSM on each machine. The decision to accept an offered task for execution is made by a load balancing receive manager (LBRM); there is one LBRM on each machine. The LBSM and the LBRM read configuration files which instruct them on how to make their sending and receiving decisions. These configuration files provide for administrative control of load balancing.

Programs that wish to execute tasks under load balancing contact the local LBSM and send descriptions of the tasks. The LBSM makes the sending decisions and replies with the name of the machine selected for each task. The originating program then contacts the LBRMs on the selected machines and submits the tasks. The LBRMs either accept each task and execute it, or send back a refusal message. Each remote task is executed in a separate execution environment. Results are sent back to the originating program directly.

We expect that the main user of load balancing will be load balancing command interpreters (shells), but a library of routines is planned which will make it easy for other programs to use the load balancer.


BibTeX citation:

@techreport{Rubin:CSD-87-362,
    Author = {Rubin, Harry I.},
    Title = {The Design of a Load Balancing Mechanism for Distributed Computer Systems},
    Institution = {EECS Department, University of California, Berkeley},
    Year = {1987},
    Month = {Jul},
    URL = {http://www2.eecs.berkeley.edu/Pubs/TechRpts/1987/5478.html},
    Number = {UCB/CSD-87-362},
    Abstract = {We describe the design and planned implementation of a load balancer for a network of computers. The mechanisms that make decisions are separated from those that carry out actions, and different levels of centralization are chosen for each. Load balancing decisions are made by one-per-machine managers; this allows better administrative control, consideration of recent history in making decisions, and reduces duplication of effort. Load balancing actions include establishing communication connections, sending task descriptions, executing a task, returning results, and so on. Load balancing actions are decentralized, each program performs its own, because these actions can be time-consuming and centralizing them could form a bottleneck.  <p>  Sending decisions include unload decisions, eligibility decisions, and placement decisions. These are made by a load balancing send manager (LBSM); there is one LBSM on each machine. The decision to accept an offered task for execution is made by a load balancing receive manager (LBRM); there is one LBRM on each machine. The LBSM and the LBRM read configuration files which instruct them on how to make their sending and receiving decisions. These configuration files provide for administrative control of load balancing.  <p>  Programs that wish to execute tasks under load balancing contact the local LBSM and send descriptions of the tasks. The LBSM makes the sending decisions and replies with the name of the machine selected for each task. The originating program then contacts the LBRMs on the selected machines and submits the tasks. The LBRMs either accept each task and execute it, or send back a refusal message. Each remote task is executed in a separate execution environment. Results are sent back to the originating program directly.  <p>  We expect that the main user of load balancing will be load balancing command interpreters (shells), but a library of routines is planned which will make it easy for other programs to use the load balancer.}
}

EndNote citation:

%0 Report
%A Rubin, Harry I.
%T The Design of a Load Balancing Mechanism for Distributed Computer Systems
%I EECS Department, University of California, Berkeley
%D 1987
%@ UCB/CSD-87-362
%U http://www2.eecs.berkeley.edu/Pubs/TechRpts/1987/5478.html
%F Rubin:CSD-87-362