Browse Prior Art Database

Load Balancing Using Periodic Iterations And Weighted Averages

IP.com Disclosure Number: IPCOM000048688D
Original Publication Date: 1982-Mar-01
Included in the Prior Art Database: 2005-Feb-09
Document File: 5 page(s) / 38K

Publishing Venue

IBM

Related People

Cord, JH: AUTHOR

Abstract

Plural control units with individual (non-shared) buffer memories that access the same string of tape or disk drives can have buffer allocations to individual drives such that one control unit is much more heavily loaded with work than the other. The overloaded control unit can become a performance bottleneck such that the subsystem (two control units) performs significantly less work than in a balanced situation. Load balancing of these control units is by an algorithm, performed by control unit microcode (not shown), executed periodically with the objective of enhancing tape subsystem throughput (performance). It applies to situations in which there are two or more buffered control units attached to a common string of drives. This description is in terms of two control units, without limitation.

This text was extracted from a PDF file.
At least one non-text object (such as an image or picture) has been suppressed.
This is the abbreviated version, containing approximately 40% of the total text.

Page 1 of 5

Load Balancing Using Periodic Iterations And Weighted Averages

Plural control units with individual (non-shared) buffer memories that access the same string of tape or disk drives can have buffer allocations to individual drives such that one control unit is much more heavily loaded with work than the other. The overloaded control unit can become a performance bottleneck such that the subsystem (two control units) performs significantly less work than in a balanced situation. Load balancing of these control units is by an algorithm, performed by control unit microcode (not shown), executed periodically with the objective of enhancing tape subsystem throughput (performance). It applies to situations in which there are two or more buffered control units attached to a common string of drives. This description is in terms of two control units, without limitation.

The load balancing algorithm is executed whenever a tape is first mounted on any of the tape drives (at which time it is assumed a decision is to be made as to which control unit will allocate buffer memory to the tape drive), and periodically at other times as for disk drives. The period may be set by microcode, e.g., one second.

The description assumes that control units 1 and 2 are in a master-slave relationship. Select either CU, arbitrarily (say, by lowest address), as the master. The master control unit governs the execution of periodic load balancing.

There are memory locations for variables to be defined below X(i.), X(ij), Z(ij), G, S(j). Moreover, these locations can be accessed by both control units; i.e., they are kept in a shared status store memory segment. Furthermore, there is a locking protocol on this segment so that the master cannot access the slave variables while the latter is updating them, and conversely.

There is a set of switching variables, S(j), one for each drive "j", each variable capable of holding two control unit addresses which enable a drive's control unit allegiance to be switched (a buffer partition to be allocated in the other control unit) while not discarding its present buffer partition until it is empty (it is not refilled).

Definitions of terms:

i: Index of control unit i=1,2.

j: Index of tape drive. j=1 to number of tape drives in

the system.

Z(ij): Number of bytes transferred over the lower interface

CU i for drive j during the preceding second. Byte

rates are stated as bytes/second, but they can

be scaled in any consistent, convenient manner.

Z(ij); set to 0 after updating X(ij).

Z(ij): Set to 0 after updating X(ij).

X(ij): Weighted average of number of bytes per second

transferred over the lower interface of CU i

for drive j.

X(ij)=.75 Z(ij) +.25 X(ij).

Note: Other weights can be used, but the sum is

1

Page 2 of 5

preferred to be calculable using shift and add

operations. Also, the weights must sum to 1,0, and

the most recent data (Z(ij)) should have the larger

weight.

For any CU i, the X(ij). are maintained in ascending

order. X...