The goal of the backlog scheduling problem is to minimize the overall time required to transfer all of the backlogs that exist among a tenant’s servers. To understand the nature of this problem, we start with a simplified view of scheduling where a central algorithm with global knowledge produces a set of rate assignments for all servers on fixed, periodic intervals. We also assume that all servers can send and receive at the same rate and that a tenant is provided the abstraction of having all of its servers connected to the same switch. Focusing on the virtual-switch abstraction allows us to view the server interfaces as the only bottleneck around which rates must be sched-uled.
There are three variations of the basic problem that we consider:
1. Initial-backlog: All traffic is present at time 0. This means we are given some initial set of backlogs and we simply need to minimize the number of scheduling intervals required to clear the backlog.
2. Deterministic backlog-schedule: New traffic can arrive at the start of each scheduling interval and this amount is known in advance. This is a generaliza-tion of the problem where backlog increases according to a fixed schedule that is available to the algorithm.
3. Online backlog-schedule: New traffic can arrive at the start of each schedul-ing interval but the amounts are not known in advance. This online version of the problem more closely represents what any real scheduling algorithm must confront in practice.
5.2.1 Preliminary definitions:
Let N = {1, 2, ..., n} be the set of n tenant servers whose traffic is being scheduled.
Backlog: Let the backlog bti,j ≥ 0 represents the data that server i ∈ N has to send to server j ∈ N at the start of interval t.
Let Bt be the set of all server backlogs in interval t.
It is often useful to express Bt as an n × n matrix where row i corresponds to the backlog that server i must send to each server and column j represents the backlog that each server has for server j.
Bt=
Send backlog: We refer to the total amount of backlog that server i has to send to all other servers as its send backlog. We denote the send backlog of server i at interval t with bti,+ which is defined as:
bti,+ =
n
X
j=1
bti,j (5.1)
Receive backlog: Similarly, the total amount of backlog destined for server j is called its receive backlog. We denote the receive backlog as bt+,j:
bt+,j =
n
X
i=1
bti,j (5.2)
Total backlog: We refer to the sum of all server backlogs as the total backlog and its notation is bt+,+.
Backlog degree: The maximum of a server’s send and receive backlog is known as its backlog degree. We use the notation βi(Bt) for the backlog degree of i:
βi(Bt) = max(bti,+, bt+,i) (5.4)
Maximum backlog degree: This term refers to the maximum backlog degree of any server and is denoted simply with β.
β(Bt) = max(βi(Bt)) ∀i ∈ N (5.5)
Note that the notation βi(Bt) can be interpreted as the maximum of the values corresponding to the sum of row i and sum of column i from the matrix Bt. The notation β(Bt), therefore, is simply the maximum of all column sums and row sums of matrix Bt.
Rates: Let ri,jt represent the rate server i is assigned (by the algorithm) to server j in interval t.
We will assume that all servers can send and receive at the same rate. Furthermore, we assume that backlogs have been normalized to the rate value so that each server can send and receive 1 unit of backlog per interval.
Rate assignment: We use the notation Rt to represent the set of all rates assigned in an interval t. We refer to this as a rate assignment. As with backlogs, Rt may be expressed as an n × n matrix.
Feasible rate assignment: A rate assignment Rt is feasible with respect to Bt if it satisfies the following conditions:
rti,+≤ 1, for all i ∈ N (5.6)
r+,jt ≤ 1 for all j ∈ N (5.7)
0 ≤ rti,j ≤ bti,j for all i, j ∈ N (5.8)
Conditions 5.6 and 5.7 are the send and receive constraints which collectively ensure that the rates assigned do not exceed the capacity of any server’s interface. Note that an equivalent way to express these constraints would be β(Rt) ≤ 1. Condition 5.8 means that rates must be non-negative and they should not exceed the backlog that is present.
Residual backlog: Because rates are expressed in terms of backlog per interval, we can subtract a rate assignment from the backlog present to find the backlog that remains at the end of an interval t.
That is we let Brt = Bt− Rt and we call Brt the residual backlog for interval t.
Rate schedule: The solution that the scheduling algorithm produces is called a rate schedule. A rate schedule is a set of rate-assignments representing the rates assigned during consecutive scheduling intervals and is denoted simply as R. For example, R = {R0, R1, ..., Rl−1} is a rate schedule consisting of rates for the scheduling intervals 0 through l−1. The length of the schedule is equal to the cardinality of the set |R| = l.
Schedule-sum notation: At times it is necessary to use one additional bit of no-tation in order to express the sum of a set (or subset) of the matrices in a schedule.
We use the notation R+ to indicate the sum of all rate assignment matrices in the schedule r. That is:
The sum of the matrices from interval s to t is written as Rs,t:
Rs,t =
t
X
i=s
Ri (5.10)
Feasible rate schedule: For a rate schedule R to be feasible, all rate assignments must be feasible and all backlog must be cleared. One way to express the second condition is that there must be no residual backlog at the end of the schedule.
So given schedule R of length |R| = l, R is feasible if:
Rt is feasible with respect to Bt, ∀t ∈ [0, l) (5.11)
Bl−1r = 0n×n (5.12)