Load balancing in a multiunit system
First Claim
1. A load-balancing control apparatus for balancing asynchronous activity in a multiunit system, including transferring data signals between any one of a first plurality of first units and a second unit via any one of a second plurality of transfer path means, comprising:
- means for maintaining a queue of work to be done that relates to said data transfers for each of said transfer path means;
means responsive to each said path means, respectively, for sensing the level of work to be done within said queue, determining the volume of work for said path means, and indicating a low volume of work for said path means;
requesting means responsive to each of said path means and with said low-volume indicating means for sending a proxy request message which requests the transferring of a proxy work job related to said data transfers to a second of said path means from a first of said path means;
responding means in said second path means coupled to said requesting means for supplying the proxy work job related to said data transfer thereto; and
operation control means in said first path means and coupled to said responding means, to said first units and to said second unit for performing said proxy work job received from said second path means and further having means for performing such operations independently of said proxy work job to effectively balance workload among the plurality of transfer path means in said multiunit system.
1 Assignment
0 Petitions
Accused Products
Abstract
In a multiunit data processing system, such as a multicontrol unit peripheral data storage system, a least busy one of the units requests work to be done from a busier unit. The busier unit, a work sending unit, supplies work to the work requesting or least busy unit. Work thresholds in the respective units determine when work is to be requested or transferred. In a data storage environment, the transferred work consists of data transfers to be achieved usually asynchronously to connected host activities, such as data transfers between a backing and a front store in a data storage hierarchy.
206 Citations
8 Claims
-
1. A load-balancing control apparatus for balancing asynchronous activity in a multiunit system, including transferring data signals between any one of a first plurality of first units and a second unit via any one of a second plurality of transfer path means, comprising:
-
means for maintaining a queue of work to be done that relates to said data transfers for each of said transfer path means; means responsive to each said path means, respectively, for sensing the level of work to be done within said queue, determining the volume of work for said path means, and indicating a low volume of work for said path means; requesting means responsive to each of said path means and with said low-volume indicating means for sending a proxy request message which requests the transferring of a proxy work job related to said data transfers to a second of said path means from a first of said path means; responding means in said second path means coupled to said requesting means for supplying the proxy work job related to said data transfer thereto; and operation control means in said first path means and coupled to said responding means, to said first units and to said second unit for performing said proxy work job received from said second path means and further having means for performing such operations independently of said proxy work job to effectively balance workload among the plurality of transfer path means in said multiunit system. - View Dependent Claims (2, 3, 4)
-
-
5. In a machine-implemented method of operating a plurality of programmable units, each programmable unit having a plurality of asynchronous work-performing portions, message means coupling all of said programmable units for enabling communications therebetween, said asynchronous work performing portions performing similar work such that asynchronous work of a first programmable unit can be performed by a second of said programmable units;
-
the improvement including the steps of; in each said programmable units maintaining a work queue for scheduling work to be done in the respective asynchronous portion of said programmable units; sensing said work queue in said first programmable unit for determining whether or not a light load condition prevails;
if no such light load condition prevails, continuing to operate said asynchronous portion independent of said second programmable unit;upon sensing said relatively light load condition, sending a message to said second programmable unit via said message means requesting that work on said work queue of said second unit be transferred to said first programmable unit; in said second programmable unit, responding to said message, examining its said work queue and if a given work level exists, sending an identification of predetermined work via said message means to said first programmable unit; performing said predetermined work in said first programmable unit as if such predetermined work was being done by said second programmable unit; and upon completion of said predetermined work by said first programmable unit, in said first programmable unit sending a completion message to said second programmable unit and in said second programmable unit post processing said predetermined work as if completed within said second programmable unit. - View Dependent Claims (6, 7)
-
-
8. A data processing system having a plurality of intercoupled programmable units having a work queue for queuing and performing a number of predetermined data processing operations such that any one of said programmable units can perform any one of said queued data processing operations, each of said programmable units having a data storage unit for storing electrically sensible indicia representing programs of instructions executable by the respective programmable units by sensing said stored electrical signals, respectively, for performing said queued data processing operations, further comprising:
-
first program indicia means in the data storage unit of each of said programmable units for enabling each programmable unit to scan for said work queue and initiate execution of said queued data processing operations; second program indicia means in the data storage unit in each of said programmable units for enabling each programmable unit to measure the level of work to be done within the work queue and indicate its load condition including indicating a light load condition; third program indicia means in the data storage unit of each of said programmable units for enabling a first programmable unit to generate and send to a second of said programmable units a message requesting a proxy assignment of one of said data processing operations queued in said second programmable unit and whereby such programmable unit sending said message being a light load programmable unit; fourth program indicia means in the data storage unit of each of said programmable units for enabling each programmable unit to receive and respond as said second programmable unit to a message recieved from said light load programmable unit requesting said proxy assignment of said one queued data processing operation; fifth program indicia means in the data storage unit of each of said programmable units for enabling each programmable unit as said second programmable unit to select a given one of its queued data processing operations for performance by said light load programmable unit such that said fourth program indicia enablement of such second programmable unit transfers to said light load programmable unit as proxy work such selected queud data processing operation; sixth program indicia means in he data storage unit of each of said programmable units for enabling each programmable unit to receive only after sending as a light load programmable unit a proxy request message to said second programmable unit any selected queued data processing operation supplied by said second programmable unit as enabled by said fourth program indicia of said second programmable unit; other program indicia means in said data storage unit of light load programmable unit for enabling said light load programmable unit to perform the data processing operation received from said second programmable unit; and seventh program indicia means in each of said programmable units for enabling said light load programmable unit to report completion of said selected queued data processing operation to said second programmable unit whereby any of said programmable units can at different times by said second or said light load programmable unit such that queued data processing operations are transferred to said light load programmable unit at the request of such light load programmable unit.
-
Specification