TECHNICAL FIELD
[0001] The present invention relates to the information technology field, and in particular,
to a method for scheduling a user request in a distributed resource system, and an
apparatus.
BACKGROUND
[0002] There are multiple resource-providing entities in a distributed resource system.
Resources include a computing capability of a central processing unit (Central Processing
Unit, CPU), hard disk space, memory space, network bandwidth, and the like, where
a resource may be a physical resource or a virtual resource. When a resource-providing
entity provides a resource according to a user request, a resource competition occurs
between users. Therefore, scheduling a user request to ensure performance for users
becomes extremely important. FIG. 1 shows a user request scheduling solution, where
a distributed resource system shown in FIG. 1 is a distributed file system and includes
a user agent A, a user agent B, a scheduler A, a scheduler B, a resource-providing
entity A, and a resource-providing entity B, where the user agent A does not communicate
with the user agent B. The user agent A queries a metadata server in the distributed
file system according to a user A request, and the user agent A determines, according
to information obtained by querying, a scheduler in FIG. 1 to which the user A request
is sent. Likewise, the user agent A queries the metadata server in the distributed
file system according to a user B request, and the user agent B determines, according
to information obtained by querying, a scheduler in FIG. 1 to which the user B request
is sent. The resource-providing entity A and the resource-providing entity B are file
systems. The resource-providing entity A is configured to provide a resource A, where
the resource A is specifically a capability of providing input/output operations per
second (Input/Output Operations Per Second, IOPS). The resource-providing entity B
is configured to provide a resource B, where the resource B is specifically a capability
of providing IOPS. A user A and a user B each send a request to the distributed resource
system. For example, the user A sends a user A request to each of the resource-providing
entity A and the resource-providing entity B by using the user agent A; then, the
resource-providing entity A provides the resource A for the user A request, and the
resource-providing entity B provides the resource B for the user A request. The user
B sends a user B request to each of the resource-providing entity A and the resource-providing
entity B by using the user agent B, and the resource-providing entity A and the resource-providing
entity B provide the resources for the user B request. When the user A sends the user
A request to each of the resource-providing entity A and the resource-providing entity
B, in an implementation manner in FIG. 1, the resources provided by the resource-providing
entity A and the resource-providing entity B for the user A are both IOPS capabilities.
Likewise, the resources provided by the resource-providing entity A and the resource-providing
entity B for the user B are also IOPS capabilities.
[0003] In the distributed resource system shown in FIG. 1, a resource weight is allocated
to each of the user A and the user B. For example, a resource weight of the user A
is 2, and a resource weight of the user B is 1. A resource weight of a user indicates
a resource quota that is allocated by a distributed resource system to the user. The
user agent A collects statistics on a quantity of user A requests that are sent by
the user A to the scheduler A and the scheduler B, and the user agent B collects statistics
on a quantity of user B requests that are sent by the user B to the scheduler A and
the scheduler B. The scheduler A allocates, from the resource-providing entity A,
a resource for the user A request according to a resource weight of the user A and
the quantity of the user A requests that are sent by the user agent A to the scheduler
A and the scheduler B. The scheduler A allocates, from the resource-providing entity
A, a resource for the user B request according to a resource weight of the user B
and the quantity of the user B requests that are sent by the user agent B to the scheduler
A and the scheduler B. Likewise, the scheduler B allocates, from the resource-providing
entity B, a resource for the user A request according to the resource weight of the
user A and the quantity of the user A requests that are sent by the user agent A to
the scheduler A and the scheduler B. The scheduler B allocates, from the resource-providing
entity B, a resource for the user B request according to the resource weight of the
user B and the quantity of the user B requests that are sent by the user agent B to
the scheduler A and the scheduler B.
[0004] Because the user agent A and the user agent B are applicable only to a distributed
file system scenario, the solution in an architecture shown in FIG. 1 cannot be widely
applied to a scenario in which a user request is scheduled in a distributed resource
system.
SUMMARY
[0005] According to a first aspect, an embodiment of the present invention provides a method
for scheduling a user request in a distributed resource system, where the distributed
resource system includes schedulers S
x, resource-providing entities R
x, and a coordinator G
y, where x is consecutive natural numbers from 1 to M, and M≥2; y is consecutive natural
numbers from 1 to Y, and Y is a natural number; the S
x communicates with the R
x; the G
y communicates with any S
x; and the method includes:
acquiring, by an Sd in a Tn+1 period and from a coordinator Gk of a user z, a resource Cz(Tn) that is consumed by a user z request in a Tn period, where

d and k are natural numbers, ≤1≤d≤M, and 1≤k≤Y; a resource weight of the user z is
φz; Cz,x(Tn) is a resource that is provided by the Rx and consumed by Nz,x(Tn) user z requests received by the Sx in the Tn period; and z indicates an identifier of the user; and
scheduling, by the Sd according to φz, Cz(Tn), Cz,d(Tn), and Nz,d(Tn), a Piz,d by using a scheduling algorithm, where the Piz,d is the ith user z request received by the Sd, and Cz,d(Tn) is a resource that is provided by an Rd and consumed by Nz,d(Tn) user z requests received by the Sd in the Tn period.
[0006] With reference to the first aspect of the embodiment of the present invention, in
a first possible implementation manner, the scheduling, by the
Sd according to
φz,
Cz(
Tn),
Cz,d (Tn), and
Nz,d (
Tn)
, a
Piz,d by using a scheduling algorithm specifically includes:
computing, by the Sd according to φz, Cz(Tn), Cz,d(Tn), and Cz,d(Tn), a virtual start time S(Piz,d) and a virtual finish time F(Piz,d) of the Piz,d ; and adding the Piz,d to a scheduling queue, where the scheduling queue ranks the user request according
to a value of the virtual start time of the user request.
[0007] With reference to the first possible implementation manner of the first aspect of
the embodiment of the present invention, in a second possible implementation manner,
S(
Piz,d)=max{v(
Piz,d), F(
Piz,d)},

and

where v(
Piz,d) indicates a virtual time of the
Sd when the
Sd receives the
Piz,d, and
c(
Piz,d) indicates a resource that is provided by the
Rd and consumed by the
Piz,d.
[0008] With reference to the first possible implementation manner of the first aspect of
the embodiment of the present invention, in a third possible implementation manner,
S(
Piz,d)=max{v(
Piz,d),

and

where v(
Piz,d) indicates a virtual time of the
Sd when the
Sd receives the
Piz,d, and c(
Piz,d) indicates a resource that is provided by the
Rd and consumed by the
Piz,d.
[0009] According to a second aspect, an embodiment of the present invention provides a scheduler
Sd, where the scheduler
Sd is applied to a distributed resource system, and the distributed resource system
includes schedulers
Sx, resource-providing entities
Rx, and a coordinator
Gy, where x is consecutive natural numbers from 1 to M, and M≥2; d is a number in x;
y is consecutive natural numbers from 1 to Y; the
Sx communicates with the
Rx; a
Cy communicates with any
Sx ; the scheduler
Sd includes a central processing unit and a memory, where the central processing unit
executes an executable instruction in the memory, to perform the method in any one
of the first aspect to the third possible implementation manner of the first aspect
of the embodiment of the present invention.
[0010] According to a third aspect, an embodiment of the present invention provides a scheduler
Sd, where the scheduler
Sd is applied to a distributed resource system, and the distributed resource system
includes schedulers
Sx, resource-providing entities
Rx and a coordinator
Gy, where x is consecutive natural numbers from 1 to M, and M≥2; d is a number in x;
y is consecutive natural numbers from 1 to Y; the
Sx communicates with the
Rx; a
Cy communicates with any
Sx ; and the scheduler
Sd includes an acquiring unit and a scheduling unit, where:
the acquiring unit is configured to acquire, in a Tn+1 period and from a coordinator Gk of a user z, a resource Cz(Tn) that is consumed by a user z request in a Tn period, where

k is a natural number, and 1≤k≤Y; a resource weight of the user z is øz; Cz,x(Tn) is a resource that is provided by the Rx and consumed by Nz,x(Tn) user z requests received by the Sx in the Tn period; and z indicates an identifier of the user; and
the scheduling unit is configured to schedule, according to φz, Cz(Tn), Cz,d(Tn), and Nz,d(Tn), Piz,d by using a scheduling algorithm, where Piz,d is the ith user z request received by the Sd, and Cz,d(Tn) is resource that is provided by an Rd and consumed by Cz,d(Tn) user z requests received by the Sd in the Tn period.
[0011] According to a fourth aspect, an embodiment of the present invention provides a non-volatile
computer readable storage medium, where the non-volatile computer readable storage
medium stores a computer instruction that is used to perform user request scheduling
in a distributed resource system, and the distributed resource system includes schedulers
Sx, resource-providing entities
Rx, and a coordinator
Gy, where x is consecutive natural numbers from 1 to M, and M≥2; y is consecutive natural
numbers from 1 to Y, and Y is a natural number; the
Sx communicates with the
Rx, and a
Cy communicates with any
Sx ; and a scheduler
Sd executes the computer instruction, to perform the method in any one of the first
aspect to the third possible implementation manner of the first aspect of the embodiment
of the present invention, where d is a number in x.
[0012] According to a fifth aspect, an embodiment of the present invention provides a distributed
resource system, where the distributed resource system includes schedulers
Sx, resource-providing entities
Rx, and a coordinator
Gy, where x is consecutive natural numbers from 1 to M, and M≥2; y is consecutive natural
numbers from 1 to Y, and Y is a natural number; the
Sx communicates with the
Rx; and the
Gy communicates with any
Sx;
a coordinator Gk of a user z is configured to provide, for a scheduler Sd in a Tn+1 period, a resource Cz(Tn) that is consumed by a user z request in a Tn period, where

d and k are natural numbers, 1≤d≤M, and 1≤k≤Y; a resource weight of the user z is
φz; Cz,x(Tn) is a resource that is provided by the Rx and consumed by Nz,x(Tn) user z requests received by the Sx in the Tn period; and z indicates an identifier of the user; and
the scheduler Sd is configured to schedule, according to φz, Cz(Tn), Cz,d(Tn), and Nz,d(Tn), a piz,d by using a scheduling algorithm, where the Piz,d is the ith user z request received by the Sd, and Cz,d(Tn) is a resource that is provided by an Rd and consumed by Nz,d(Tn) user z requests received by the Sd in the Tn period.
[0013] According to a sixth aspect, an embodiment of the present invention provides a resource
scheduling method in a distributed resource system, where the distributed resource
system includes multiple schedulers;
a first scheduler in the multiple schedulers acquires, from a coordinator of the first
user, the sum of resources that are consumed in the multiple schedulers by a user
request of the first user in a previous period; and
the first scheduler schedules the user request of the first user according to a resource
weight of the first user, the sum of resources that are consumed in the multiple schedulers
by the user request of the first user in the previous period, a resource that is consumed
in the first scheduler by the user request of the first user in the previous period,
and a quantity of user requests of the first user received by the first scheduler
in the previous period.
[0014] With reference to the sixth aspect, in a first possible implementation manner, that
the first scheduler schedules the user request of the first user according to a resource
weight of the first user, the sum of resources that are consumed in the multiple schedulers
by the user request of the first user in the previous period, a resource that is consumed
in the first scheduler by the user request of the first user in the previous period,
and a quantity of user requests of the first user received by the first scheduler
in the previous period specifically includes:
computing, by the first scheduler according to the resource weight of the first user,
the sum of resources that are consumed in the multiple schedulers by the user request
of the first user in the previous period, the resource that is consumed in the first
scheduler by the user request of the first user in the previous period, and the quantity
of the user requests of the first user received by the first scheduler in the previous
period, a virtual start time and a virtual finish time of the user request of the
first user; and adding the user request of the first user to a scheduling queue, where
the scheduling queue ranks the user request of the first user according to a value
of the virtual start time of the user request.
[0015] According to a seventh aspect, an embodiment of the present invention provides a
distributed resource system, where the distributed resource system includes multiple
schedulers, and a first scheduler in the multiple schedulers includes an acquiring
unit and a scheduling unit, where:
the acquiring unit is configured to acquire, from a coordinator of the first user,
the sum of resources that are consumed in the multiple schedulers by a user request
of the first user in a previous period; and
the scheduling unit is configured to schedule the user request of the first user according
to a resource weight of the first user, the sum of resources that are consumed in
the multiple schedulers by the user request of the first user in the previous period,
a resource that is consumed in the first scheduler by the user request of the first
user in the previous period, and a quantity of user requests of the first user received
by the first scheduler in the previous period.
[0016] With reference to the seventh aspect, in a first possible implementation manner,
the scheduling unit is specifically configured to compute, according to the resource
weight of the first user, the sum of resources that are consumed in the multiple schedulers
by the user request of the first user in the previous period, the resource that is
consumed in the first scheduler by the user request of the first user in the previous
period, and the quantity of the user requests of the first user received by the first
scheduler in the previous period, a virtual start time and a virtual finish time of
the user request of the first user; and add the user request of the first user to
a scheduling queue, where the scheduling queue ranks the user request of the first
user according to a value of the virtual start time of the user request.
[0017] According to the method for scheduling a user request in a distributed resource system,
the apparatus, and the system that are provided by embodiments of the present invention,
in a
Tn+1 period, an
Sd acquires, from a coordinator
Gk of a user z, a resource
Cz(
Tn) that is consumed by a user z request in a
Tn period, and the
Sd schedules, according to
φz,
Cz(
Tn),
Cz,d(
Tn), and
Nz,d(
Tn), a
Piz,d by using a scheduling algorithm. The user z request can be scheduled without depending
on a user agent. In addition, the
Sd schedules, according to
φz, Cz(
Tn),
Cz,d(
Tn), and
Nz,d(
Tn), the
Piz,d by using the scheduling algorithm, thereby implementing global scheduling on the
user z request and ensuring a performance requirement of the user z.
BRIEF DESCRIPTION OF DRAWINGS
[0018] To describe the technical solutions in the embodiments of the present invention more
clearly, the following briefly introduces the accompanying drawings required for describing
the embodiments. The accompanying drawings in the following description show merely
some embodiments of the present invention, and other drawings may still be derived
from these accompanying drawings.
FIG. 1 is a schematic diagram of a distributed resource system in the prior art;
FIG. 2 is a schematic diagram of a distributed resource system according to an embodiment
of the present invention;
FIG. 3a is a diagram of a relationship among a scheduler A, a resource-providing entity
A, and a coordinator A;
FIG. 3b is a diagram of a relationship among a scheduler A, a resource-providing entity
A, and a coordinator A;
FIG. 4 is a schematic diagram of a method according to an embodiment of the present
invention;
FIG. 5 is a schematic diagram of a status of a distributed resource system according
to an embodiment of the present invention;
FIG. 6 is a schematic diagram of a status of user requests in a scheduling queue;
FIG. 7 is a schematic diagram of a status of user requests in a scheduling queue;
FIG. 8 is a schematic diagram of a status of a distributed resource system according
to an embodiment of the present invention;
FIG. 9 is a schematic diagram of a status of user requests in a scheduling queue;
FIG. 10 is a schematic diagram of a status of user requests in a scheduling queue;
FIG. 11 is an architecture diagram of a distributed resource system according to an
embodiment of the present invention; and
FIG. 12 is a schematic structural diagram of a scheduler according to an embodiment
of the present invention.
DESCRIPTION OF EMBODIMENTS
[0019] The following clearly and completely describes the technical solutions in the embodiments
of the present invention with reference to the accompanying drawings in the embodiments
of the present invention. Apparently, the described embodiments are a part rather
than all of the embodiments of the present invention. All other embodiments obtained
based on the embodiments of the present invention shall fall within the protection
scope of the present invention.
[0020] As shown in FIG. 2, an embodiment of the present invention provides a distributed
resource system. The distributed resource system includes a scheduler A, a scheduler
B, a resource-providing entity A, a resource-providing entity B, a coordinator A,
and a coordinator B. The scheduler A communicates with the resource-providing entity
A, and is configured to schedule a user request sent to the resource-providing entity
A. The scheduler B communicates with the resource-providing entity B, and is configured
to schedule a user request sent to the resource-providing entity B. The coordinator
A communicates with the scheduler A and the scheduler B, and the coordinator B communicates
with the scheduler A and the scheduler B. A resource in this embodiment of the present
invention may be a physical resource or a virtual resource, such as a CPU computing
capability, hard disk space, a memory space, network bandwidth, or the like. A user
in this embodiment of the present invention may refer to a client, a virtual machine,
an application process, or the like, which is not specifically limited in this embodiment
of the present invention. A resource allocated by a resource-providing entity for
a user A request and a resource allocated by the resource-providing entity for a user
B request are resources of a same type. Resources that are provided by the resource-providing
entity A and the resource-providing entity B for a user A request and resources that
are provided by the resource-providing entity A and the resource-providing entity
B for a user B request are resources of a same type. In this embodiment of the present
invention, a resource allocated by a resource-providing entity to a user request has
the same meaning as a resource provided by a resource-providing entity for a user
request, which may also be expressed as a resource of a resource-providing entity
that is consumed by a user request, or a resource that is provided by a resource-providing
entity and consumed by a user request. A resource that is provided by a resource-providing
entity and consumed by a user request refers to a resource that needs to be consumed
by the user request, which specifically includes a resource that has been consumed,
or includes, if the user request has already been processed by the resource-providing
entity, a resource that needs to be consumed by the user request after the user request
is received by a scheduler and before the user request is processed by the resource-providing
entity. In an implementation manner, after receiving a user request, a scheduler can
calculate a quantity of resources that are provided by a resource-providing entity
and need to be consumed by the user request. For example, if a scheduler A receives
100 user requests in a period, resources that are provided by a resource-providing
entity and consumed by the 100 user requests can be calculated by summing up resources
that are provided by the resource-providing entities and need to be consumed by all
user requests.
[0021] This embodiment of the present invention is described by using an example in which
a resource is an IOPS capability, the resource-providing entity A is a storage array
A, and the resource-providing entity B is a storage array B.
[0022] Before this embodiment of the present invention is further described, it should be
noted that, a relationship among the scheduler A, the coordinator A, and the resource-providing
entity A shown in FIG. 2 is just a logical representation. In specific implementation,
the resource-providing entity A, the scheduler A, and the coordinator A may be located
in a same apparatus, as shown in FIG. 3a; or, the resource-providing entity A and
the scheduler A are located in a same apparatus while the coordinator A is located
independently of the resource-providing entity A and the scheduler A, as shown in
FIG. 3b; or, another implementation manner may be used. A specific implementation
manner is not limited herein. Likewise, for a relationship among the scheduler B,
the coordinator B, and the resource-providing entity B shown in FIG. 2, refer to FIG.
3a and FIG. 3b. The scheduler may be an independent device or a hardware module. A
function of the scheduler may be further implemented by a processor by executing a
specific computer instruction. For example, if functions of the scheduler A, the coordinator
A, and the resource-providing entity A are all implemented by a processor by executing
specific computer instructions, communication between the scheduler A and the coordinator
A, and communication between the scheduler A and the resource-providing entity A may
be presented as instruction invoking or links between different program modules. Likewise,
the coordinator may be an independent device or a hardware module. A function of the
coordinator may be further implemented by a processor by executing a specific computer
instruction, which is not limited in this embodiment of the present invention. In
specific implementation, steps of the method implemented by a scheduler in this embodiment
of the present invention may be implemented by a computer processor by executing a
computer instruction in a memory. Details are not described herein again.
[0023] In the distributed resource system shown in FIG. 2, when a user A sends a user A
request to the storage array A and the storage array B, both the storage array A and
the storage array B need to consume an IOPS capability when processing the user A
request. Likewise, when a user B sends a user B request to the storage array A and
the storage array B, IOPS capabilities of the storage array A and the storage array
B also need to be consumed. Particularly, when the IOPS capability of the storage
array A cannot meet a requirement of processing the user A request and the user B
request at the same time, the scheduler A needs to schedule the received user A request
and the received user B request according to a scheduling algorithm; when the IOPS
capability of the storage array B cannot meet a requirement of processing the user
A request and the user B request at the same time, the scheduler B needs to schedule
the received user A request and the received user B request according to a scheduling
algorithm. There is a resource competition relationship between the user A and the
user B. To ensure performance for the users, a resource weight is generally allocated
to each user in the distributed resource system. The user A and the user B are used
as an example in this embodiment of the present invention, where a resource weight
φA, of the user A is 2, and a resource weight
φB of the user B is 1. Then a ratio of the resource weight of the user A to the resource
weight of the user B is 2:1. The resource weights of the user A and the user B are
configured in both the scheduler A and the scheduler B. Specifically, the resource
weight of the user A may be delivered by the user A to each of the scheduler A and
the scheduler B, and the resource weight of the user B is delivered by the user B
to each of the scheduler A and the scheduler B; the scheduler A and the scheduler
B perform the foregoing configuration. A form of a resource weight is not limited
to the form described in this embodiment of the present invention, and may also be
that the resource weight φ
A of the user A is 2/3, and the resource weight
φB of the user B is 1/3.
[0024] The scheduler A receives the user A request sent by the user A, and the scheduler
A receives the user B request sent by the user B. The storage array A needs to provide
the IOPS capability for both the user A request and the user B request, or in other
words, both the user A request and the user B request consume the IOPS capability
provided by the storage array A. Likewise, the scheduler B receives the user A request
sent by the user A, and the scheduler B receives the user B request sent by the user
B. When the IOPS capability of the storage array A can meet the user A request and
the user B request, the scheduler A does not need to schedule the received user A
request and the received user B request according to a scheduling algorithm; when
the IOPS capability of the storage array B can meet the user A request and the user
B request, the scheduler B does not need to schedule the received user A request and
the received user B request according to a scheduling algorithm. The scheduler A only
needs to compute virtual start times and virtual finish times of the received user
requests according to a scheduling algorithm. Likewise, the scheduler B also only
needs to compute virtual start times and virtual finish times of the received user
requests according to a scheduling algorithm. For meanings of a virtual start time
and a virtual finish time, refer to a start-time fairness queuing (Start-time fairness
queuing, SFQ) algorithm. When the user requests need to be scheduled, the scheduler
A needs to add, according to a scheduling algorithm, the received user A request and
the received user B request to a scheduling queue of the scheduler A for scheduling;
the scheduler B also needs to add, according to the scheduling algorithm, the received
user A request and the received user B request to a scheduling queue of the scheduler
B for scheduling.
[0025] As shown in FIG. 4, in step 401, a scheduler A acquires, in a T
n+1 period and from a home coordinator A of a user A, a resource C
A(T
n) that is consumed by a user A request in a T
n period, and acquires, from a home coordinator B of a user B, a resource C
B(T
n) that is consumed by a user B request in the T
n period, where
Tn indicates the n
th period, and
Tn+1 indicates the (n+1)
th period;
CA(
Tn) indicates the sum of a resource
CA,A(
Tn) that is provided by a resource-providing entity A and consumed by
CA,A(
Tn) user A requests received by the scheduler A in the
Tn period, and a resource
CA,B(
Tn) that is provided by a resource-providing entity B and consumed by
NA,B(
Tn) user A requests received by a scheduler B in the
Tn period; and
CB(
Tn) indicates the sum of a resource
CB,A(
Tn) that is provided by the resource-providing entity A and consumed by
NB,A(
Tn) user B requests received by the scheduler A in the
Tn period, and a resource
CB,B(
Tn) that is provided by the resource-providing entity B and consumed by
NB,B(
Tn) user B requests received by the scheduler B in the
Tn period. The home coordinator A of the user A refers to a coordinator that acquires,
in a distributed resource system, the sum of a resource of the storage array A that
is consumed by the user A request processed by the scheduler A in the
Tn period, and a resource of the storage array A that is consumed by the user A request
processed by the scheduler B in the
Tn period. The home coordinator A of the user A is also called a coordinator A of the
user A. Likewise, a home coordinator of a user is also called a coordinator of the
user.
[0026] The scheduler A acquires, in the
Tn period and according to a resource that is provided by the resource-providing entity
A and consumed by each received user A request, the resource
CA,A(
Tn) that is provided by the resource-providing entity A and consumed by the
NA,A(Tn) user A requests processed by the scheduler A in the
Tn period; and the scheduler A acquires, in the
Tn period and according to a resource that is provided by the resource-providing entity
A and consumed by each received user B request, the resource
CB,A(
Tn) that is provided by the resource-providing entity A and consumed by the
NB,A(
Tn) user B requests processed by the scheduler A in the
Tn period. Likewise, the scheduler B acquires, in the
Tn period and according to a resource that is provided by the resource-providing entity
B and consumed by each received user A request, the resource
CA,B(
Tn) that is provided by the resource-providing entity B and consumed by the
NA,B(
Tn) user A requests processed by the scheduler B in the
Tn period; and the scheduler B acquires, in the
Tn period and according to a resource that is provided by the resource-providing entity
B and consumed by each received user B request, the resource
CB,B(
Tn) that is provided by the resource-providing entity B and consumed by the
NB,B(Tn) user B requests processed by the scheduler B in the
Tn period. Resources consumed by the user A requests processed in the
Tn period are
CA(
Tn)=C
A,A(
Tn)+CA,B(Tn)
, and resources consumed by the user B requests processed in the
Tn period are
CB(
Tn)
=CB,A(
Tn)
+CB,B(
Tn).
[0027] Specifically, the coordinator A acquires
CA,A(
Tn) and
CA,B(
Tn). An implementation manner is that the scheduler A proactively sends the
CA,A(
Tn) to the coordinator A, and the scheduler B proactively sends the
CA,B(
Tn) to the coordinator A. Another implementation manner is that the coordinator A requests
to acquire the
CA,A(
Tn) from the scheduler A, and the coordinator A requests to acquire the
CA,B(
Tn) from the scheduler B. Specifically, the coordinator A may acquire the
CA,A(
Tn) and the
CA,B(
Tn) at one time, or the coordinator A may communicate with the scheduler A and the scheduler
B in real time, to acquire, in real time, the resource that is provided by the resource-providing
entity A and consumed by each user A request received by the scheduler A, and acquire,
in real time, the resource that is provided by the resource-providing entity B and
consumed by each user A request received by the scheduler B. For a manner in which
the coordinator B acquires the resources
CB(
Tn) consumed for processing the user B requests, refer to the manner of the coordinator
A, and details are not described herein again.
[0028] The scheduler A acquires, from the home coordinator A of the user A, the resource
CA(
Tn) consumed by the user A requests in the
Tn period, and acquires, from the home coordinator B of the user B, the resource
CB(
Tn) consumed by the user B requests in the
Tn period. In an implementation manner, in a
Tn+1 period, the coordinator A sends the
CA(
Tn) to each of the scheduler A and the scheduler B, and the coordinator B sends the
CB(
Tn) to each of the scheduler A and the scheduler B. In another implementation manner,
in a
Tn+1 period, the scheduler A requests the
CA(
Tn) from the coordinator A, the scheduler A requests the
CB(
Tn) from the coordinator B; and the scheduler B requests the
CA(
Tn) from the coordinator A, the scheduler B requests the
CB(
Tn) from the coordinator B. The foregoing two manners are both described as: in a T
n+1 period, the scheduler A acquires, from the home coordinator A of the user A, the
resources
CA(
Tn) consumed by the user A requests in the
Tn period, and acquires, from the home coordinator B of the user B, the resources
CB(
Tn) consumed by the user B requests in the
Tn period. It can be known from the foregoing description that, in either of the foregoing
implementation manners, the scheduler A stores the
NA,A(
Tn),
NB,A(
Tn),
CA,A(
Tn), and
CB,A(
Tn); and the scheduler B stores the
NA,B(
Tn),
NB,B(
Tn),
CA,B(
Tn)
, and
CB,B(
Tn).
[0029] As for determining of a home coordinator of a user, a manner may be that a coordinator
is configured as a home coordinator of a user; or when an identifier of a user is
an integer, a modulo operation is performed on a total quantity of coordinators according
to the identifier of the user, to determine a home coordinator of the user; or a hash
function may be used to perform computation on an identifier of a user to obtain a
hash value, and then a modulo operation is performed on a total quantity of coordinators
by using the hash value, to determine a home coordinator of the user. For example,
there are 100 users and 20 coordinators, and identifiers of the users are from 1 to
100, the 20 coordinators are numbered from 1 to 20, and a modulo operation is performed
on a total quantity of the coordinators according to the identifiers of the users,
to determine a home coordinator of each user. The present invention sets no limitation
thereto. A total quantity of coordinators may be less than or equal to a quantity
of schedulers, and each coordinator can communicate with any scheduler.
[0030] Step 402. The scheduler A schedules, according to
φ A, C
A(T
n), C
A,A(T
n), and N
A,A(T
n), the received user A request by using a scheduling algorithm; and the scheduler
A schedules, according to φ
B, C
B(T
n), C
B,A(T
n), and N
B,A(Tn), the received user B request by using the scheduling algorithm.
[0031] Likewise, the scheduler B schedules, according to
φ A, C
A(T
n),
CA,B(
Tn)
, and
NA,B(
Tn), a received user A request by using a scheduling algorithm; and the scheduler B
schedules, according to
φ B, C
B(T
n),
CB,B(
Tn), and
NB,B(
Tn), a received user B request by using the scheduling algorithm.
[0032] When a user request in a scheduler is scheduled according to the method shown in
FIG. 4, the scheduler A performs scheduling according to a quantity of resources that
are consumed by the user A request in the distributed system in a previous period,
a resource weight of the user A, a quantity of user A requests received by the scheduler
A in the previous period, and the resource that is provided by the resource-providing
entity A and consumed by the user A request received by the scheduler A in the previous
period, where the quantity of resources that are consumed by the user A request in
the distributed system in a previous period is acquired from the coordinator A. In
an architecture without a user agent in the prior art, a coordinator is used to acquire
a quantity of resources that are consumed by a user A request in a distributed system
in a previous period, so that a scheduler A does not need to perform an extra operation,
which can reduce a resource usage of the scheduler A. In addition, the scheduler schedules
the user A request according to
φ A, C
A(T
n), C
A,A(T
n), and N
A,A(T
n), thereby implementing global scheduling on the user A requests and ensuring a performance
requirement of a user z.
[0033] When the scheduler A schedules the user B request, or the scheduler B schedules the
user A request, or the scheduler B schedules the user B request, the same foregoing
effect can also be achieved. In a user agent-based architecture in the prior art,
a scheduler can acquire only a user request and statistics of the user request that
are sent by one user agent; therefore, it is difficult to implement global scheduling
on a same user request.
[0034] In this embodiment of the present invention, that a scheduler A schedules a user
A request is used as an example. During global scheduling on the user A request, the
scheduler A needs to consider C
A(T
n) in addition to
φ A, C
A,A(T
n), and N
A,A(T
n) in a previous period, thereby implementing scheduling of the user A request and
further ensuring performance for a user A.
[0035] Specifically, in this embodiment of the present invention,
PiA,A indicates the i
th user A request that is sent by the user A and received by the scheduler A, where
a storage array A provides a resource for the
PiA,A; and
PiA,B indicates the i
th user A request that is sent by the user A and received by a scheduler B, where a
storage array B provides a resource for the
PiA,B. PkB,A indicates the k
th user B request that is sent by a user B and received by the scheduler A, where the
storage array A provides a resource for the
PkB,A ; and
PkB,B indicates the k
th user B request that is sent by the user B and received by the scheduler B, where
the storage array B provides a resource for the
PkB,B. In this embodiment of the present invention,
φA=2, and
φB=1.
[0036] In a
Tn period, when a quantity of user A requests and user B requests that are received
by the scheduler A is less than an IOPS capability of the storage array A, there is
no need to schedule, by using a scheduling algorithm, the user A requests and the
user B requests that are received by the scheduler A, and the user A requests and
the user B requests are directly processed by the storage array A. When a quantity
of user A requests and user B requests that are received by the scheduler B is less
than an IOPS capability of the storage array B, there is also no need to schedule,
by using a scheduling algorithm, the user A requests and the user B requests that
are received by the scheduler B, and the user A requests and the user B requests are
directly processed by the storage array B. However, a home coordinator A of the user
A needs to acquire resources that are consumed by user A requests received by schedulers
in the
Tn period. In this embodiment of the present invention, the home coordinator A of the
user A acquires a resource
CA(
Tn) that is consumed by the user A requests that are received by the scheduler A and
the scheduler B in the
Tn period. A home coordinator B of the user B also acquires a resource
CB(
Tn) that is consumed by the user B requests that are received by the scheduler A and
the scheduler B in the
Tn period. The coordinator A sends
CA(
Tn) to the scheduler A and the scheduler B, and the coordinator B sends
CB(
Tn) to the scheduler A and the scheduler B. When a quantity of the user A requests received
by the scheduler A in the
Tn period is
NA,A(
Tn), a consumed resource that is provided by the storage array A is
CA,A(
Tn); when a quantity of the user B requests received by the scheduler A in the
Tn period is
NB,A(
Tn), a consumed resource that is provided by the storage array A is
CB,A(
Tn). When a quantity of the user A requests received by the scheduler B in the
Tn period is
NA,B(
Tn)
, a consumed resource that is provided by the storage array B is
CA,B(
Tn); when a quantity of the user B requests received by the scheduler B in the
Tn period is
NB,B(
Tn), a consumed resource that is provided by the storage array A is
CB,B(
Tn).
[0037] The scheduler A is used as an example. In a
Tn+1 period, the scheduler A acquires, from the home coordinator A of the user A, a resource
CA(
Tn) that is consumed by a user A request in the
Tn period. In the
Tn+1 period, when an IOPS capability of the storage array A cannot meet a user A request
and a user B request, the scheduler A adds, by using a scheduling algorithm, the received
user A request and the received user B request to a scheduling queue of the scheduler
A for scheduling. When receiving the user A request and the user B request, the scheduler
A computes a virtual start time and a virtual finish time of the user A request, and
a virtual start time and a virtual finish time of the user B request. The user A request
and the user B request are added to the scheduling queue, and the user A request and
the user B request are ranked in the scheduling queue in ascending order of the virtual
start times for processing. A user request whose virtual start time is the earliest
is ranked at the queue head of the scheduling queue, and a user request whose virtual
start time is the latest is ranked at the queue tail of the scheduling queue. The
queue head of the scheduling queue refers to a position at which the storage array
A performs user request processing first in the scheduling queue. When processing
the user requests, the storage array A acquires a user request from the queue head
of the scheduling queue for processing, that is, a user request whose virtual start
time is the earliest is processed first. The storage array A processes the user requests
in the scheduling queue in ascending order of the virtual start times of the user
requests.
[0038] In a first implementation manner, a virtual start time of a
PiA,A that is received by the scheduler A is represented by S(
PiA,A), and a virtual finish time of the
PiA,A is represented by F(
PiA,A). S(
PiA,A)
=max{v(
PiA,A), F(
Pi-1A,A)}, where v(
PiA,A)indicates a virtual time of the scheduler A when the scheduler A receives the
PiA,A, F(
Pi-1A,A)indicates a virtual finish time of a
Pi-1A,A, and max{v(
PiA,A), F(
Pi-1A,A)} indicates a maximum value in v(
PiA,A) and

For meanings of the virtual start time S(
PiA,A), the virtual finish time F(
PiA,A), and the virtual time v(
PiA,A), refer to a start-time fairness queuing (Start-time fairness queuing, SFQ) algorithm,
and details are not described in this embodiment of the present invention again. c(
PiA,A) indicates a resource that is provided by the storage array A and consumed by the
PiA,A, which is one IOPS in this embodiment of the present invention; and d(
PA,A(
Tn+1)) indicates a value of a delay of each user A request that is received by the scheduler
A in a
Tn+1 period, and

Likewise, a virtual start time of a
PkB,A that is received by the scheduler A is represented by
S(
PkB,A), and a virtual finish time of the
PkB,A is represented by
F(PkB,A). S(
PkB,A)=max {v(
PkB,A), F(
Pk-1B,A)}
, where
v(
PkB,A) indicates a virtual time of the scheduler A when the scheduler A receives the
PkB,A, F(
pk-1B,A) indicates a virtual finish time of a
Pk-1B,A, and max {v(
PkB,A),
F(
Pk-1B,A)} indicates a maximum value in v
(PkB,A) and

where c(
PkB,A) indicates a resource that is provided by the storage array B and consumed by the
Pk B,A, which is one IOPS in this embodiment of the present invention; and d(
PB,A(
Tn+1)) indicates a value of a delay of each user B request that is received by the scheduler
A in a
Tn+1 period, and

[0039] A virtual start time of a
PiA,B that is received by the scheduler B is represented by S(
PiA,B), and a virtual finish time of the
PiA,B is represented by
F(PiA,B).S(
PiA,B)=max{v(
PiA,B),
F(
Pi-1A,B)}
, where
v(
PiA,B) indicates a virtual time of the scheduler B when the scheduler B receives the
PiA,B, F(
Pi-1A,B) indicates a virtual finish time of a
Pi-1A,B, and max {v(
PiA,B), F(
PiA,B)} indicates a maximum value in v(
PiA,B) and F(
Pi-1A,B).

where c(
PiA,B) indicates a resource that is provided by the storage array B and consumed by the
PiA,B, which is one IOPS in this embodiment of the present invention; and d(
PA,B(Tn+1)) indicates a value of a delay of each user A request that is received by the scheduler
B in a
Tn+1 period, and

Likewise, a virtual start time of a
PkB,B that is received by the scheduler B is represented by S(
PkB,B), and a virtual finish time of the
PkB,B is represented by
F(
PkB,B)
. S(
PkB,B)=max{v(
PkB,B), F(
Pk-1B,B)}, where v(
PkB,B) indicates a virtual time of the scheduler B when the scheduler B receives the
PiB,B, F(
Pk-1B,B) indicates a virtual finish time of a
Pk-1B,B, and max {v(
PkB,B), F(
Pk-1B,B)} indicates a maximum value in v(
Pk B,B) and F(
Pk-1 B,B).

where c(
Pk B,B) indicates a resource that is provided by the storage array B and consumed by the
PkB,B, which is one IOPS in this embodiment of the present invention; and d(
PB,B (
Tn+1)) indicates a value of a delay of each user B request that is received by the scheduler
B in a
Tn+1 period, and

[0040] In a second implementation manner, a virtual start time of a
PiA,A that is received by the scheduler A is represented by S(
PiA,A), and a virtual finish time of the
PiA,A is represented by F(
piA,A). S(
piA,A)=max {v(
pi A,A),

}, where v(
PiA,A)indicates a virtual time of the scheduler A when the scheduler A receives the
PiA,A; d(
PA,A(
Tn+1)) indicates a value of a delay of each user A request that is received by the scheduler
A in a
Tn+1 period, and

F(
Pi-1A,A) indicates a virtual finish time of a
Pi-1A,A; and max {v(
PiA,A),

} indicates a maximum value in v(
PiA,A)and

For meanings of the virtual start time S(
PiA,A), the virtual finish time F(
PiA,A) and the virtual time v(
PiA,A), refer to a start-time fairness queuing (Start-time fairness queuing, SFQ) algorithm,
and details are not described in this embodiment of the present invention again. c(
PiA,A) indicates a resource that is provided by the storage array A and consumed by the
PiA,A, which is one IOPS in this embodiment of the present invention. Likewise, a virtual
start time of a
PkB,A that is received by the scheduler A is represented by
S(PkB,A), and a virtual finish time of the
PkB,A is represented by F(
PkB,A). S(
PkB,A)=max {v(
PkB,A),

}, where v(
PkB,A) indicates a virtual time of the scheduler A when the scheduler A receives the
PkB,A; d(
PB,A(
T)) indicates a value of a delay of each user B request that is received by the scheduler
A in a
Tn+1 period, and

F(
Pk-1B,A) indicates a virtual finish time of a
Pk-1B,A; and max{v(
PkB,A),

} indicates a maximum value in v(
PkB,A ) and

where c(
PkB,A) indicates a resource that is provided by the storage array B and consumed by the
PkB,A, which is one IOPS in this embodiment of the present invention.
[0041] A virtual start time of a
PiA,B that is received by the scheduler B is represented by S(
PiB,A), and a virtual finish time of the
PiA,B is represented by
F(PiA,B). S(
PiA,B)=max{v(
PiA,B),

}, where v(
PiA,B) indicates a virtual time of the scheduler B when the scheduler B receives the
PiA,B; d(
PA,B(
Tn+1)) indicates a value of a delay of each user A request that is received by the scheduler
B in a
Tn+1 period, and

F(
Pi-1A,B) indicates a virtual finish time of a
Pi-1A,B; and max{v(
PiA,B),

indicates a maximum value in v(
PiA,B) and

where c(
PiA,B) indicates a resource that is provided by the storage array B and consumed by the
PiA,B, which is one IOPS in this embodiment of the present invention. Likewise, a virtual
start time of a
PkB,B that is received by the scheduler B is represented by S(
PkB,B), and a virtual finish time of the
PkB,Bis represented by F(
PkB,B). S(
PkB,B)=max{v(
PkB,B),

}, where v(
PkB,B) indicates a virtual time of the scheduler B when the scheduler B receives the
PkB,B; d(
PB,B(
Tn+1)) indicates a value of a delay of each user B request received by the scheduler A
in a
Tn+1 period, and

F(
Pk-1B,B) indicates a virtual finish time of a
Pk-1B,B; and max{v(
PkB,B),

} indicates a maximum value in v(
PkB,B) and

where c(
PkB,B) indicates a resource that is provided by the storage array B and consumed by the
PkB,B, which is one IOPS in this embodiment of the present invention.
[0042] The first manner of computing a virtual start time and a virtual finish time of a
user request is used as an example. As shown in FIG. 5, in this embodiment, after
a distributed resource system is initialized, user A requests
PiA,A that are received by a scheduler A in a
Tn+1 period are
PiA,A,P2A,A,
P3A,A, P4A,A, and
P5A,A respectively, 5 in total. A quantity of user A requests
PiA,B that are received by a scheduler B is 0. User B requests
PkB,A that are received by the scheduler A are
P1B,A, P2B,A,
P3B,A, and
P4B,A respectively, 4 in total.
[0043] User B requests
PkB,B that are received by the scheduler B are
P1B,B, P2B,B, P3B,B,
P4B,B, and
P5B,B respectively, 5 in total. In this embodiment of the present invention, the
Tn+1 period is actually the first period. The
PiA,A is the first user A request received by the scheduler A. In this case, the received
PiA,A needs to be added to a scheduling queue of the scheduler A for scheduling according
to a scheduling algorithm. First, a virtual start time S(
P1A,A)=max{v(
P1A,A), F(
Pi-1A,A)} of the
PiA,A is computed. Because the
Tn+1 period is actually the first period, that is, the scheduler A does not receive any
PiA,A previously, F(
P0A,A) is Null, the
P1A,A is received after initialization of the scheduler A is completed, and S(
PiA,A )=v(
PiA,A)=0. A virtual finish time of the
P1A,A is computed:

where S(
P1A,A)=0, c(
PiA,A)=1,
φA =2,
cA,B(
Tn) =0, and
NA,A(
Tn) =0; then d(
PA,A(
Tn+1))=0, and

Likewise, a virtual start time of the
P2A,A is 0.5, and a virtual finish time of the
P2A,A is 1; a virtual start time of the
P3A,A is 1, and a virtual finish time of the
P3A,A is 1.5; a virtual start time of the
P4A,A is 1.5, and a virtual finish time of the
P4A,A is 2; and a virtual start time of the
P5A,A is 2, and a virtual finish time of
Sx ; the
P5A,A is 2.5

in FIG. 5 indicates that the virtual start time of the
P1A,A is 0 and the virtual finish time of the
P1A,A is 0.5. For other similar identifiers in FIG. 5 and subsequent figures, refer to
the meaning of

and details are not described herein again.
[0044] For the user B request
P1B,A that is received by the scheduler A, a virtual start time of the
P1B,A is computed: S(
P1B,A)=max{v(
P1B,A), F(
P0B,A)}. Because the
Tn+1 period is actually the first period, that is, the scheduler A does not receive any
PkB,A previously, F(
P0B,A) is empty, the
P1B,A is received after initialization of the scheduler A is completed, and v(
P1B,A)=0. A virtual finish time of the
P1B,A is

where c(
P1B,A)=1,
CB,B(
Tn) =0, and
NB,A(
Tn)=0; then d(
PB,A(
Tn+1))=0,
φB=1, and F(
P1B,A)=1 Likewise, a virtual start time of the
P2B,A is 1, and a virtual finish time of the
P2B,A is 2; a virtual start time of the
P3B,A is 2, and a virtual finish time of the
P3B,A is 3; and a virtual start time of the
P4B,A is 3, and a virtual finish time of the
P4B,A is 4.
[0045] In this case, for the user B request
P4B,B that is received by the scheduler B, the received
P1B,B needs to be scheduled, and a virtual start time of the
P1B,B is computed: S(
P1B,B)=max{v(
P1B,B)
, F(
P0B,B)}. Because the
Tn+1 period is actually the first period, that is, the scheduler B does not receive any
PkB,B previously, F(
P0B,B) is empty, the
P1B,B is received after initialization of the scheduler B is completed, and v(
P1B,B)=0. A virtual finish time of the
BB1 is

where c(
P1B,B)=1,
CB,A(
Tn) =0, and
NB,B(
Tn) =0; then d(
PB,B(
Tn+1))=0,
φB =1, and F(
P1B,B)=1. Likewise, a virtual start time of the
P2B,B is 1, and a virtual finish time of the
P2B,B is 2; a virtual start time of the
P3B,B is 2, and a virtual finish time of the
P3B,B is 3; a virtual start time of the
P4B,B is 3, and a virtual finish time of the
P4B,B is 4; and a virtual start time of the
P5B,B is 4, and a virtual finish time of the
P5B,B is 5.
[0046] The scheduler A computes virtual start times and virtual finish times of the
P1A,A,
P2A,A P3A,A,
P4A,A, and
P5A,A, and computes virtual start times and virtual finish times of the
P1B,A, P2B,A, P3B,A, and
P4B,A. According to the virtual start times of the user requests that are received by the
scheduler A, the user requests are ranked in a scheduling queue in ascending order
of the virtual start times for processing, that is, an order from the queue head to
the queue tail in the scheduling queue is
P1A,A,
P2A,A,
P1B,A, P3A,A,
P4A,A,
P2B,A, P5A,A,
P3B,A, and
P4B,A, as shown in FIG. 6. The storage array A processes the user requests in the order
of
P1A,A, P2A,A, P1B,A, P3A,A, P4A,A, P2B,A, P5A,A, P3B,A, and
P4B,A As shown in FIG. 6, when there is resource competition between the user A requests
and the user B requests, a group of user requests
P1A,A,
P2A,A, and
P1B,A in the scheduling queue consume, according to a ratio of 2:1, the IOPS that is provided
by the storage array A. Another group of user requests
P3A,A,
P4A,A, and
P2B,A in the scheduling queue also meets the requirement.
[0047] The scheduler B computes virtual start times and virtual finish times of the
P1B,B, P2B,B, P3B,B,
P4B,B, and
P5B,B respectively. According to the virtual start times of all the user requests that
are received by the scheduler B, the user requests are ranked in a scheduling queue
in ascending order of the virtual start times for processing, that is, an order from
the queue head to the queue tail in the scheduling queue is
P1B,B, P2B,B, P3B,B, P4B,B, and
P5B,B BB5, as shown in FIG. 7. The storage array B processes the user requests in the order
of
P1B,B,
P2B,B,
P3B,B,
P4B,B, and
P5B,B. Because there are only the user B requests in the scheduler B, there is no resource
competition, and the user B requests are processed in ascending order of the virtual
start times of the user B requests.
[0048] A person skilled in the art should understand that, in specific implementation, a
quantity of user requests that are received by the scheduler A and the scheduler B
in a
Tn+1 period may be much greater than the quantity of the user requests provided in the
embodiment. A quantity of users is not limited to two. For ease of description in
this embodiment of the present invention, in the
Tn+1 period, the user A requests that are received by the scheduler A are
P1A,A,
P2A,A,
P3A,A,
P4A,A, and
P5A,A, and the user B requests that are received by the scheduler A are
P1B,A,
P2B,A, P3B,A, and
P4B,A; and the user B requests that are received by the scheduler B are
P1B,B, P2B,B, P3B,B, P4B,B, and
P5B,B.
[0049] According to the manner described above, the scheduler A computes a resource
CA,A(
Tn+1) that is provided by the storage array A and consumed by
NA,A(
Tn+1) user A requests received in the
Tn+1 period, and a resource
CB,A(
Tn) that is provided by the storage array A and consumed by
NB,A(
Tn+1) received user B requests. The scheduler A computes a resource
CA,A(
Tn+1) that is provided by the storage array A and consumed by
NA,A(T
n+1) user A requests received in the
Tn+1 period, which is specifically that: in this embodiment of the present invention,
one user A request consumes one IOPS, and a quantity of the user A requests received
by the scheduler A in the
Tn+1 period is
NA,A(T
n+1) =5, and the consumed resource
CA,A(
Tn+1) that is provided by the storage array A is five IOPSs. Likewise, a quantity of the
user B requests that are received by the scheduler A in the
Tn+1 period is
NB,A(
Tn+1)=4, and the consumed resource
CB,A(
Tn+1) that is provided by the storage array A is four IOPSs. A quantity of the user A
requests that are received by the scheduler B in the
Tn+1 period is
NA,B(
Tn+1)=0, and the consumed resource
CA,B(
Tn+1) that is provided by the storage array B is 0 IOPS. Likewise, a quantity of the user
B requests that are received by the scheduler B in the
Tn+1 period is
NB,B(
Tn+1)=5
, and the consumed resource
CB,B(
Tn+1) that is provided by the storage array B is five IOPSs. The coordinator A acquires
that the resource
CA,A(
Tn+1) that is provided by the storage array A and consumed by the user A requests processed
by the scheduler A in the
Tn+1 period is five IOPSs, and the resource that is provided by the storage array B and
consumed by the user A requests processed by the scheduler B in the
Tn+1 period is zero IOPS. Therefore, a total quantity of resources that are consumed by
the user A requests in the
Tn+1 period is
CA(
Tn+1) =
CA,A(
Tn+1) +
CA,B(
Tn+1)
, where
CA(
Tn+1)=5 IOPSs. Likewise, the coordinator B acquires that a total quantity of the resources
that are consumed by the user B requests in the
Tn+1 period is
CB(
Tn+1)=
CB,A(
Tn+1) +
CB,B(
Tn+1)
, where
CB(
Tn+1)=9 IOPSs. The coordinator A sends a message to each of the scheduler A and the scheduler
B, where the message carries
CA(
Tn+1), so that the scheduler A and the scheduler B acquire, from the coordinator A, that
the quantity of IOPSs that are consumed by the user A requests in the
Tn+1 period is 5. Likewise, the coordinator B sends a message to each of the scheduler
A and the scheduler B, where the message carries
CB(
Tn+1), so that the scheduler A and the scheduler B acquire, from the coordinator B, that
the quantity of IOPSs that are consumed by the user B requests in the
Tn+1 period is 9.
[0050] As shown in FIG. 8, in a
Tn+2 period, the scheduler A receives the first user A request
P6A,A, where a virtual start time of the
P6A,A is S(
P6A,A)=max{v(
P6A,A), F(
P5A,A)}, where v(
P6A,A)=F(
P5A,A)=2.5, and therefore, S(
P6A,A)=2.5.

where

and
CA,B(
Tn+1)=0 and
CA,A(
Tn+1)=5 in the
Tn+1 period; then d(
PA,A(
Tn+1))=0; c(
P6A,A)=1,
φA=2, and therefore, F(
P6A,A)=3.
[0051] Likewise, a virtual start time of a
P7A,A is 3, and a virtual finish time of the
P7A,A is 3.5; a virtual start time of a
P8A,A is 3.5, and a virtual finish time of the
P8A,A is 4; and a virtual start time of a
P8A,A is 4, and a virtual finish time of the
P9A,A is 4.5. In the
Tn+2 period, the scheduler A receives the first user B request
P5B,A, where
S(
P5B,A)=max{v(
P5B,A), F(
P4B,A)}, v(
P5B,A)=F(
P4B,A)=4, and therefore, S(
P5B,A)=4. A virtual finish time of the
P5B,A is

where
CB,B(T
n+1)=5,
NB,A(T
n+1)=4,
d(
PB,A(T
n+2))=1.25,
φB=1
, and therefore, F(
P5B,A)=6.25. Likewise, a virtual start time of a
P6B,A is 6.25, and a virtual finish time of the
P6B,A is 8.5; a virtual start time of a
P7B,A is 8.5, and a virtual finish time of the
P7B,A is 10.75; and a virtual start time of a
P8B,A is 10.75, and a virtual finish time of the
P8B,A is 13.
[0052] The scheduler A computes virtual start times and virtual finish times of the
P6A,A, P7A,A,
P8A,A, and
P9A,A, and the scheduler A computes virtual start times and virtual finish times of the
P5B,A, P6B,A, P7B,A, and
P8B,A. According to the virtual start times of the user requests that are received by the
scheduler A, the user requests are ranked in a scheduling queue in ascending order
of the virtual start times for processing, that is, an order from the queue head to
the queue tail in the scheduling queue is
P6A,A, P7A,A,
P8A,A,
P9A,A,
P5B,A,
P6B,A, P7B,A, and
P8B,A, as shown in FIG. 9. The storage array A processes the user requests in the order
of
P6A,A,
P7A,A,
P8A,A,
P9A,A,
P5B,A,
P6B,A, P7B,A, and
P8B,A.
[0053] In the
Tn+2 period, the scheduler B receives the first user A request
P1A,B and the first user B request
P6B,B. It is assumed that the scheduler B receives the
P1A,B and the
P6B,B at a same moment. A virtual start time of the
P6B,B is S(
P6B,B)=max{v(
P6B,B), F(
P5B,B)}, where v(
P6B,B)=F(
P5B,B)=5, and therefore,
S(
P6B,B)=5. A virtual finish time of the
P6B,B is

where c(
P6B,B)=1,

and
φB=1, and therefore, F(
P6B,B)=6.8. Likewise, a virtual start time of a
P7B,B is 6.8, and a virtual finish time of the
P7B,B is 8.6; a virtual start time of a
P8B,B is 8.6, and a virtual finish time of the
P8B,B is 10.4. A virtual start time of the
P1A,B is S(
P1A,B)=max{v(
P1A,B), F(
P0A,B)}, where F(
P0A,B)=0 and v(
P1A,B)=v(
P6B,B)=5, and therefore, S(
P1A,B)=5. A virtual finish time of the
P1A,B is

where c(
P1A,B)=1,

and
NA,A(
Tn+1)=0; then d(
PA,B(
Tn+2))=0, and
φA=2, and therefore, F(
P1A,B)=5.5. Likewise, a virtual start time of a
P2A,B is 5.5, and a virtual finish time of the
P2A,B is 6; and a virtual start time of a
P3A,B is 6, and a virtual finish time of the
P3A,B is 6.5.
[0054] The scheduler B adds the user requests to a scheduling queue, and the user requests
are ranked in the scheduling queue in ascending order of the virtual start times,
that is, an order from the queue head to the queue tail in the scheduling queue is
P1A,B, P6B,B, P2A,B, P3A,B, P7B,B, and
P8B,B, as shown in FIG. 10. The storage array B processes the user requests in the order
of
P1A,B, P6B,B, P2A,B, P3A,B, P7B,B, and
P8B,B.
[0055] The method for scheduling a user request in a distributed resource system provided
by this embodiment of the present invention may be further applied to a scenario shown
in FIG. 11, where the distributed resource system includes a user 1 to a user H, a
scheduler
S1 to a scheduler
SM, a resource-providing entity
R1 to a resource-providing entity
RM, and a coordinator
G1 to a coordinator
GY, where H is a natural number greater than or equal to 2, M is a natural number greater
than or equal to 2, and N is a natural number. A scheduler
Sx communicates with a resource-providing entity
Rx, where x is any natural number from 1 to M. Any user z can send a user z request
to any scheduler
Sx. The
Rx provides a resource for a user request received by the
Sx. The coordinator
Gy communicates with any
Rx, where y is any natural number from 1 to Y, and a value of Y may be less than or equal
to M, or may be greater than M. Y may also be 1, that is, there is only one coordinator
in the distributed resource system. A quantity of coordinators may be determined according
to a quantity of schedulers, or may be determined according to a quantity of users,
which is not limited in this embodiment of the present invention. Any user z sends
the i
th user z request to a scheduler
Sd in a
Tn+1 period, where i is a natural number, d is a natural number, 1≤d≤M, and
Sd indicates one of
S1 to
SM. When the
Sd needs to schedule the received user request, the following steps are performed:
Step 1201. The Sd acquires, in the Tn+1 period and from a coordinator Gk of a user z, a resource Cz(Tn) that is consumed by the user z request in a Tn period, where

d and k are natural numbers, 1≤d≤M, and 1≤k≤Y; a resource weight of the user z is
φz ; Cz,x(Tn) is a resource that is provided by the Rx and consumed by Nz,x(Tn) user z requests received by the Sx in the Tn period; z indicates an identifier of the user; and

indicates the sum of resources that are provided by the R1 to the RM and consumed by user z requests received by the S1 to the SM in the Tn period.
[0056] In step 1201,
Cz,x(
Tn) specifically includes the sum of resources that are provided by the
Rx and consumed by
Nz,x(
Tn) user z requests received by the
Sx in the
Tn period.
Nz,x(
Tn) indicates a quantity of user z requests that are received by the
Sx in the
Tn period. The
Sx sends
Cz,x(
Tn) to a
Gk, and the
Gk acquires
Cz(
Tn) according to

A manner of acquiring
Cz(
Tn) is that the
Sx proactively sends
Cz,x(
Tn) to the
Gk. Another manner is that the
Sx receives a
Gk request, and sends
Cz,x(
T) to the
Gk according to the
Gk request. The
Gk acquires
Cz,x(
Tn) according to

The
Sx stores
Nz,x(
Tn) and
Cz,x(
Tn)
.
[0057] Step 1202. The
Sd schedules, according to
φz, Cz(
Tn),
Cz,d(
Tn), and
Nz,d(
Tn), a
Piz,d by using a scheduling algorithm, where the
Piz,d is the i
th user z request received by the
Sd, and
Cz,d(
Tn) is a resource that is provided by an
Rd and consumed by
Nz,d(
Tn) user z requests received by the
Sd in the
Tn period.
[0058] The
Sd schedules, according to
φz,
Cz(
Tn),
Cz,d(
Tn), and
Nz,d(
Tn), the
Piz,d by using a scheduling algorithm, thereby implementing global scheduling on the user
z request and ensuring a performance requirement of the user z. Step 1202 specifically
includes:
That the Sd schedules, according to φz, Cz(Tn), Cz,d(Tn), and Nz,d(Tn), the Piz,d by using a scheduling algorithm specifically includes that: the Sd computes a virtual start time S(Piz,d) and a virtual finish time F(Piz,d) of the Piz,d according to φz, Cz(Tn), Cz,d(Tn), and Nz,d(Tn), and adds the Piz,d to a scheduling queue, where the scheduling queue ranks the user request according
to a value of the virtual start time of the user request. S(Piz,d)=max{v(Piz,d), F(Pi-1z,d)},

and

where v(Piz,d) indicates a virtual time of the Sd when the Sd receives the Piz,d, and c(Piz,d) indicates a resource that is provided by the Rd and consumed by the Piz,d; or, S(Piz,d)max{v(Piz,d),


and

where v(Piz,d) indicates a virtual time of the Sd when the Sd receives the Piz,d, and c(Piz,d) indicates a resource that is provided by the Rd and consumed by the Piz,d.
[0059] For meanings of the virtual start time S(
PiA,A), the virtual finish time F(
PiA,A), and the virtual time v(
PiA,A), refer to a start-time fairness queuing (Start-time fairness queuing, SFQ) algorithm,
and details are not described in this embodiment of the present invention again. d(
Pz,d(
Tn+1)) indicates a value of a delay of each
Piz,d received by the
Sd in the
Tn+1 period.
[0060] When either of
Cz(
Tn)-
Cz,d(
Tn) and
Nz,d(
Tn) is 0, d(
Pz,d(
Tn+1))=0. c(
Piz,d) may be specifically an IOPS or bandwidth that is consumed by the
Piz,d. Step 1201 specifically includes:
the Gk is determined according to z%Y=k, where z%Y indicates that a modulo operation is
performed on z and Y; or the Gk is determined according to Hash(z)%Y=k, where Hash(z) indicates that z is computed
by using a hash function, and Hash(z)%Y indicates that a modulo operation is performed
on a value and Y, where the value is obtained by computing z by using the hash function.
[0061] In the application scenario shown in FIG. 11, the
CK is configured to send
Cz(
Tn) to each scheduler
Sx.
[0062] In the application scenario shown in FIG. 11, the method that the
Sd uses a scheduling algorithm to schedule the user z request is applicable to scheduling
of any user request in the distributed resource system in this embodiment of the present
invention. Requests of two or more users may be scheduled in the
Sd.
[0063] In the application scenario shown in FIG. 11, the scheduler
Sd schedules, by using a scheduling algorithm, the user z request
Piz,d according to
Cz(
Tn)
, Cz,d(
Tn), and
Nz,d(
Tn) of the user z in the distributed resource system in the
Tn period, and with reference to the weight
φz of the user, thereby implementing global scheduling on the user z request and ensuring
a performance requirement of the user z.
[0064] In a system architecture in this embodiment of the present invention, the user z
request can be scheduled without depending on a user agent.
[0065] In this embodiment of the present invention, that a resource is an IOPS is used as
an example, and generally, one user request consumes one IOPS; or that a resource
is network bandwidth is used as an example, and a resource that is consumed by one
user request is network bandwidth for the user request. When a resource consumed by
a user request is network bandwidth, a size of a resource that is provided by a resource-providing
entity and consumed by each user request is determined by the user request.
[0066] In this embodiment of the present invention, scheduling a user request by using a
scheduling algorithm includes: computing a virtual start time and a virtual finish
time of the user request according to the scheduling algorithm in this embodiment
of the present invention; and adding the user request to a scheduling queue, where
the user request is ranked in the scheduling queue according to a value of the virtual
start time of the user request. When it is not required to schedule the user request,
the virtual start time and the virtual finish time of the user request need to be
computed according to the scheduling algorithm in this embodiment of the present invention,
and the user request does not need to be added to a scheduling queue for ranking.
[0067] In this embodiment of the present invention,
Sd, Sx, Rx, Gy, and
Gk are merely used to mark a specific device each, where the device herein may be a
physical device or a logical device. Likewise, a device may also be expressed in a
manner of first, second, and the like. There is only a difference in specific expression
manners, which does not impose a limitation on the solution of the present invention.
[0068] As shown in FIG. 12, an embodiment of the present invention provides a scheduler
Sd. The scheduler
Sd is applied to a distributed resource system, where the distributed resource system
includes schedulers
Sx, resource-providing entities
Rx and a coordinator
Gy, where x is consecutive natural numbers from 1 to M, and M≥2; d is a number in x;
y is consecutive natural numbers from 1 to Y; the
Sx communicates with the
Rx; a
Cy communicates with any
Sx; and the scheduler
Sd includes an acquiring unit 1301 and a scheduling unit 1302, where:
the acquiring unit 1301 is configured to acquire, in a Tn+1 period and from a coordinator Gk of a user z, a resource Cz(Tn) that is consumed by a user z request in a Tn period, where

k is a natural number, and 1≤k≤Y; a resource weight of the user z is φz ; Cz,x(Tn) is a resource that is provided by the Rx and consumed by Nz,x(Tn) user z requests received by the Sx in the Tn period; and z indicates an identifier of the user; and
the scheduling unit 1302 is configured to schedule, according to φz, Cz(Tn), Cz,d(Tn), and Nz,d(Tn), a Piz,d by using a scheduling algorithm, where the Piz,d is the ith user z request received by the Sd, and Cz,d(Tn) is a resource that is provided by an Rd and consumed by Nz,d(Tn) user z requests received by the Sd in the Tn period.
[0069] Specifically, that the scheduling unit 1302 is configured to schedule, according
to
φz,
Cz(
Tn),
Cz,d(
Tn), and
Nz,d(
Tn), a
Piz,d by using a scheduling algorithm specifically includes:
computing a virtual start time S(Piz,d) and a virtual finish time F(Piz,d) of the Piz,d according to φz, Cz(Tn), Cz,d(Tn), and Nz,d(Tn) ; and adding the Piz,d to a scheduling queue, where the scheduling queue ranks the user request according
to a value of the virtual start time of the user request.
[0070] Specifically, S(
Piz,d)=max{v(
Piz,d), F(
Piz,d)},

and

where v(
Piz,d) indicates a virtual time of the
Sd when the
Sd receives the
Piz,d, and c(
Piz,d) indicates a resource that is provided by the
Rd and consumed by the
Piz,d.
[0071] Specifically, S(
Piz,d)=max{v(
Piz,d),

and

where v(
Piz,d) indicates a virtual time of the
Sd when the
Sd receives the
Piz,d, and c(
Piz,d) indicates a resource that is provided by the
Rd and consumed by the
Piz,d.
[0072] For meanings of the virtual start time S(
PiA,A), the virtual finish time F(
PiA,A), and the virtual time v(
PiA,A), refer to a start-time fairness queuing (Start-time fairness queuing, SFQ) algorithm,
and details are not described in this embodiment of the present invention again. Specifically,
when either of
Cz(
Tn)
-Cz,d(
Tn) and
Nz,d(
Tn) is 0, d(
Pz,d(
Tn+1))=0.
[0073] The
Sd schedules, according to
φz, Cz(
Tn)),
Cz,d(
Tn), the
Piz,d by using the scheduling algorithm. The user z request can be scheduled without depending
on a user agent. In addition, the
Sd schedules, according to
φz, Cz(
Tn),
Cz,d(
Tn), and
Nz,d(
Tn)
, the
Piz,d by using the scheduling algorithm, thereby implementing global scheduling on the
user z request and ensuring a performance requirement of the user z.
[0074] In an implementation manner of another resource scheduling method in a distributed
resource system, the distributed resource system includes multiple schedulers, where
a first scheduler in the multiple schedulers acquires, from a coordinator of the first
user, the sum of resources that are consumed by a user request of the first user in
the multiple schedulers in a previous period; and
the first scheduler schedules the user request of the first user according to a resource
weight of the first user, the sum of resources that are consumed by the user request
of the first user in the multiple schedulers in the previous period, a resource that
is consumed by the user request of the first user in the first scheduler in the previous
period, and a quantity of user requests of the first user received by the first scheduler
in the previous period.
[0075] Further, that the first scheduler schedules the user request of the first user according
to a resource weight of the first user, the sum of resources that are consumed by
the user request of the first user in the multiple schedulers in the previous period,
a resource that is consumed by the user request of the first user in the first scheduler
in the previous period, and a quantity of user requests of the first user received
by the first scheduler in the previous period specifically includes that:
the first scheduler computes a virtual start time and a virtual finish time of the
user request of the first user according to the resource weight of the first user,
the sum of resources that are consumed by the user request of the first user in the
multiple schedulers in the previous period, the resource that is consumed by the user
request of the first user in the first scheduler in the previous period, and the quantity
of user requests of the first user received by the first scheduler in the previous
period; and adds the user request of the first user to a scheduling queue, where the
scheduling queue ranks the user request of the first user according to a value of
the virtual start time of the user request.
[0076] In another distributed resource system, the distributed resource system includes
multiple schedulers. As shown in FIG. 12, a first scheduler in the multiple schedulers
includes an acquiring unit 1301 and a scheduling unit 1302, where:
the first acquiring unit 1301 is configured to acquire, from a coordinator of the
first user, the sum of resources that are consumed by a user request of the first
user in the multiple schedulers in a previous period; and
the scheduling unit 1302 is configured to schedule the user request of the first user
according to a resource weight of the first user, the sum of resources that are consumed
by the user request of the first user in the multiple schedulers in the previous period,
a resource that is consumed by the user request of the first user in the first scheduler
in the previous period, and a quantity of user requests of the first user received
by the first scheduler in the previous period.
[0077] Further, the scheduling unit 1302 is specifically configured to compute a virtual
start time and a virtual finish time of the user request of the first user according
to the resource weight of the first user, the sum of resources that are consumed by
the user request of the first user in the multiple schedulers in the previous period,
the resource that is consumed by the user request of the first user in the first scheduler
in the previous period, and the quantity of user requests of the first user received
by the first scheduler in the previous period; and add the user request of the first
user to a scheduling queue, where the scheduling queue ranks the user request of the
first user according to a value of the virtual start time of the user request.
[0078] The technical solutions provided by the embodiments of the present invention may
also be applied to another scenario. For example, a distributed resource system is
a distributed computing system, and a resource-providing entity provides a computing
resource for a user request; or, a distributed resource system may be a distributed
network system, and a resource-providing entity provides network bandwidth for a user
request; or, a resource-providing entity may further provide a memory resource for
a user request.
[0079] A person of ordinary skill in the art may be aware that, in combination with the
examples described in the embodiments disclosed in this specification, units and algorithm
steps may be implemented by electronic hardware or a combination of computer software
and electronic hardware. Whether the functions are performed by hardware or software
depends on particular applications and design constraint conditions of the technical
solutions. A person skilled in the art may use different methods to implement the
described functions for each particular application, but it should not be considered
that the implementation goes beyond the scope of the present invention.
[0080] It may be clearly understood by a person skilled in the art that, for the purpose
of convenient and brief description, for a detailed working process of the foregoing
system, apparatus, and unit, refer to a corresponding process in the foregoing method
embodiments, and details are not described herein again.
[0081] In the several embodiments provided in the present application, it should be understood
that the disclosed system and method may be implemented in other manners. For example,
the described apparatus embodiment is merely exemplary. For example, the unit division
is merely logical function division and may be other division in actual implementation.
For example, a plurality of units or components may be combined or integrated into
another system, or some features may be ignored or not performed. In addition, the
displayed or discussed mutual couplings or direct couplings or communication connections
may be implemented through some interfaces. The indirect couplings or communication
connections between the apparatuses or units may be implemented in electronic, mechanical,
or other forms.
[0082] The units described as separate parts may or may not be physically separate, and
parts displayed as units may or may not be physical units, may be located in one position,
or may be distributed on a plurality of network units. Some or all of the units may
be selected according to actual needs to achieve the objectives of the solutions of
the embodiments.
[0083] In addition, functional units in the embodiments of the present invention may be
integrated into one processing unit, or each of the units may exist alone physically,
or two or more units are integrated into one unit.
[0084] When the functions are implemented in the form of a software functional unit and
sold or used as an independent product, the functions may be stored in a computer-readable
non-volatile storage medium. Based on such an understanding, the technical solutions
of the present invention essentially, or the part contributing to the prior art, or
some of the technical solutions may be implemented in a form of a software product.
The software product is stored in a non-volatile storage medium, and includes several
instructions for instructing a computer device (which may be a personal computer,
a server, or a network device) to perform all or some of the steps of the methods
described in the embodiments of the present invention. The foregoing non-volatile
storage medium includes: any medium that can store program code, such as a USB flash
drive, a removable hard disk, a read-only memory (Read-Only Memory, ROM), a magnetic
disk, or an optical disc.
1. A method for scheduling a user request in a distributed resource system, wherein the
distributed resource system comprises schedulers S
x, resource-providing entities R
x, and a coordinator G
y, wherein x is consecutive natural numbers from 1 to M, and M≥2; y is consecutive
natural numbers from 1 to Y, and Y is a natural number; the S
x communicates with the R
x; the G
y communicates with any S
x; and the method comprises:
acquiring, by an Sd in a Tn+1 period and from a coordinator Gk of a user z, a resource Cz(Tn) that is consumed by a user z request in a Tn period, wherein

d and k are natural numbers, 1≤d≤M, and 1≤k≤Y; a resource weight of the user z is
φz ; Cz,x(Tn) is a resource that is provided by the Rx and consumed by Nz,x(Tn) user z requests received by the Sx in the Tn period; and z indicates an identifier of the user; and
scheduling, by the Sd according to φz, Cz(Tn), Cz,d(Tn), and Nz,d(T), a Piz,d by using a scheduling algorithm, wherein the Piz,d is the ith user z request received by the Sd, and Cz,d(Tn) is a resource that is provided by an Rd and consumed by Nz,d(Tn) user z requests received by the Sd in the Tn period.
2. The method according to claim 1, wherein the scheduling, by the
Sd according to
φz,
Cz(
Tn),
Cz,d(
Tn), and
Nz,d(
Tn), a
Piz,d by using a scheduling algorithm specifically comprises:
computing, by the Sd according to φz, Cz(Tn), Cz,d(Tn), and Nz,d(Tn), a virtual start time S(Piz,d) and a virtual finish time F(Piz,d) of the Piz,d ; and adding the Piz,d to a scheduling queue, wherein the scheduling queue ranks the user request according
to a value of the virtual start time of the user request.
3. The method according to claim 2, wherein S(
Piz,d)=max{v(
Piz,d), F(
Pi-1z,d)},

and

wherein v(
Piz,d) indicates a virtual time of the
Sd when the
Sd receives the
Piz,d, and c(
Piz,d) indicates a resource that is provided by the
Rd and consumed by the
Piz,d.
4. The method according to claim 3, wherein when either of Cz(Tn)-Cz,d(Tn) and Nz,d(Tn) is 0, d(Pz,d(Tn+1))=0.
5. The method according to claim 2, wherein S(
Piz,d)=max{v(
Piz,d),

and

wherein v(
Piz,d) indicates a virtual time of the
Sd when the
Sd receives the
Piz,d, and c(
Piz,d) indicates a resource that is provided by the
Rd and consumed by the
Piz,d.
6. The method according to claim 5, wherein when either of Cz(Tn)-Cz,d(Tn) and Nz,d(Tn) is 0, d(Pz,d(Tn+))=0.
7. The method according to claim 1, wherein the Gk is determined according to z%Y=k, wherein z%Y indicates z modulo Y.
8. The method according to claim 1, wherein the Gk is determined according to Hash(z)%Y=k, wherein Hash(z) indicates that z is computed
by using a hash function, and Hash(z)%Y indicates a value obtained by computing z
by using the hash function modulo Y.
9. A scheduler
Sd, wherein the scheduler
Sd is applied to a distributed resource system, and the distributed resource system
comprises schedulers
Sx, resource-providing entities
Rx, and a coordinator
Gy, wherein x is consecutive natural numbers from 1 to M, and M≥2; d is a number in x;
y is consecutive natural numbers from 1 to Y; the
Sx communicates with the
Rx ; a
Cy communicates with any
Sx ; the scheduler
Sd comprises a central processing unit and a memory, wherein the central processing
unit executes an executable instruction in the memory, to perform the following steps:
acquiring, in a Tn+1 period and from a coordinator Gk of a user z, a resource Cz(Tn) that is consumed by a user z request in a Tn period, wherein

k is a natural number, and 1≤k≤Y; a resource weight of the user z is φz; Cz,x(Tn) is a resource that is provided by the Rx and consumed by Nz,x(Tn) user z requests received by the Sx in the Tn period; and z indicates an identifier of the user; and
scheduling, according to φz, Cz(Tn), Cz,d(Tn), and Nz,d(Tn), a Piz,d by using a scheduling algorithm, wherein the Piz,d is the ith user z request received by the Sd, and Cz,d(Tn) is a resource that is provided by an Rd and consumed by Nz,d(Tn) user z requests received by the Sd in the Tn period.
10. The scheduler
Sd according to claim 9, wherein the scheduling, according to
φz, Cz(
Tn)
, Cz,d(
Tn), and
Nz,d(
Tn), a
Piz,d by using a scheduling algorithm specifically comprises:
computing, by the Sd according to φz, Cz(Tn), Cz,d(Tn), and Nz,d(Tn), a virtual start time S(Piz,d) and a virtual finish time F(Piz,d) of the Piz,d ; and adding the Piz,d to a scheduling queue, wherein the scheduling queue ranks the user request according
to a value of the virtual start time of the user request.
11. The scheduler
Sd according to claim 10, wherein S(
Piz,d)=max{v(
Piz,d), F(
Pi-1z,d)}

and

wherein v(
Piz,d) indicates a virtual time of the
Sd when the
Sd receives the
Piz,d, and c(
Piz,d) indicates a resource that is provided by the
Rd and consumed by the
Piz,d.
12. The scheduler Sd according to claim 11, wherein when either of Cz(Tn)-Cz,d(Tn) and Nz,d(Tn) is 0, d(Pz,d(Tn+1))=0.
13. The scheduler
Sd according to claim 10, wherein S(
Piz,d)=max{v(
Piz,d),

and

wherein v(
Piz,d) indicates a virtual time of the
Sd when the
Sd receives the
Piz,d, and c(
Piz,d) indicates a resource that is provided by the
Rd and consumed by the
Piz,d.
14. The scheduler Sd according to claim 11, wherein when either of Cz(Tn)-Cz,d(Tn) and Nz,d(Tn) is 0, d(Pz,d(Tn+1))=0.
15. A scheduler
Sd, wherein the scheduler
Sd is applied to a distributed resource system, and the distributed resource system
comprises schedulers
Sx, resource-providing entities
Rx, and a coordinator
Gy, wherein x is consecutive natural numbers from 1 to M, and M≥2; d is a number in
x; y is consecutive natural numbers from 1 to Y; the
Sx communicates with the
Rx ; a
Cy communicates with any
Sx ; and the scheduler
Sd comprises an acquiring unit and a scheduling unit, wherein:
the acquiring unit is configured to acquire, in a Tn+1 period and from a coordinator Gk of a user z, a resource Cz(T) that is consumed by a user z request in a Tn period, wherein

k is a natural number, and 1≤k≤Y; a resource weight of the user z is φz ; Cz,x(T) is a resource that is provided by the Rx and consumed by Nz,x(T) user z requests received by the Sx in the Tn period; and z indicates an identifier of the user; and
the scheduling unit is configured to schedule, according to φz, Cz(Tn), Cz,d(Tn), and Nz,d(T), a Piz,d by using a scheduling algorithm, wherein the Piz,d is the ith user z request received by the Sd, and Cz,d(T) is a resource that is provided by an Rd and consumed by Nz,d(Tn) user z requests received by the Sd in the Tn period.
16. The scheduler
Sd according to claim 15, wherein that the scheduling unit is configured to schedule,
according to
φz,
Cz(
Tn),
Cz,d(
T), and
Nz,d(
T), a
Piz,d by using a scheduling algorithm specifically comprises:
computing a virtual start time S(Piz,d) and a virtual finish time F(Pi,d) of the Piz,d according to φz, Cz(Tn), Cz,d(Tn), and Nz,d(Tn); and adding the Piz,d to a scheduling queue, wherein the scheduling queue ranks the user request according
to a value of the virtual start time of the user request.
17. The scheduler
Sd according to claim 16, wherein S(
Piz,d)=max{v(
Piz,d), F(
Pi-1z,d)}

and

wherein v(
Piz,d) indicates a virtual time of the
Sd when the
Sd receives the
Piz,d, and c(
Piz,d) indicates a resource that is provided by the
Rd and consumed by the
Piz,d.
18. The scheduler Sd according to claim 17, wherein when either of Cz(Tn) - Cz,d(Tn) and Nz,d(Tn) is 0, d(Pz,d(Tn+1))=0.
19. The scheduler
Sd according to claim 16, wherein S(
Piz,d)=max{v(
Piz,d),

and

wherein v(
Pi,d) indicates a virtual time of the
Sd when the
Sd receives the
Piz,d, and c(
Piz,d) indicates a resource that is provided by the
Rd and consumed by the
Piz,d.
20. The scheduler Sd according to claim 18, wherein when either of Cz(Tn)-Cz,d(Tn) and Nz,d(Tn) is 0, d(Pz,d(Tn+1))=0.
21. A non-volatile computer readable storage medium, wherein the non-volatile computer
readable storage medium stores a computer instruction that is used to perform user
request scheduling in a distributed resource system, and the distributed resource
system comprises schedulers Sx, resource-providing entities Rx, and a coordinator Gy, wherein x is consecutive natural numbers from 1 to M, and M≥2; y is consecutive natural
numbers from 1 to Y, and Y is a natural number; the Sx communicates with the Rx, and a Cy communicates with any Sx ; and a scheduler Sd executes the computer instruction, to perform the method according to any one of
claims 1 to 8, wherein d is a number in x.
22. A distributed resource system, wherein the distributed resource system comprises schedulers
Sx, resource-providing entities
Rx, and a coordinator
Gy, wherein x is consecutive natural numbers from 1 to M, and M≥2; y is consecutive
natural numbers from 1 to Y, and Y is a natural number; the
Sx communicates with the
Rx ; and the
Gy communicates with any
Sx ;
a coordinator
Gk of a user z is configured to provide, for a scheduler
Sd in a
Tn+1 period, a resource
Cz(
Tn) that is consumed by a user z request in a
Tn period, wherein

d and k are natural numbers, 1≤d≤M, and 1≤k≤Y; a resource weight of the user z is
φz ;
Cz,x(
Tn) is a resource that is provided by the
Rx and consumed by
Nz,x(
Tn) user z requests received by the
Sx in the
Tn period; and z indicates an identifier of the user; and
the scheduler
Sd is configured to schedule, according to
φz,
Cz(
Tn),
Cz,d(
Tn), and
Nz,d(
Tn), a
Piz,d by using a scheduling algorithm, wherein the
Piz,d is the i
th user z request received by the
Sd, and
Cz,d(
Tn) is a resource that is provided by an
Rd and consumed by
Nz,d(
Tn) user z requests received by the
Sd in the
Tn period.
23. The distributed resource system according to claim 22, wherein the scheduler Sd is specifically configured to compute a virtual start time S(Piz,d) and a virtual finish time F(Piz,d) of the Piz,d according to φz, Cz(Tn), Cz,d(Tn), and Nz,d(Tn), and add the Piz,d to a scheduling queue, wherein the scheduling queue ranks the user request according
to a value of the virtual start time of the user request.
24. The method according to claim 23, wherein S(
Piz,d)=max{v(
Piz,d), F(
Pi-1z,d)},

and

wherein v(
Piz,d) indicates a virtual time of the
Sd when the
Sd receives the
Piz,d, and c(
Piz,d) indicates a resource that is provided by the
Rd and consumed by the
Piz,d.
25. The method according to claim 23, wherein S(
Piz,d)=max{v(
Piz,d),

and

wherein v(
Piz,d) indicates a virtual time of the
Sd when the
Sd receives the
Piz,d, and c(
Piz,d) indicates a resource that is provided by the
Rd and consumed by the
Piz,d.
26. A resource scheduling method in a distributed resource system, wherein the distributed
resource system comprises multiple schedulers;
a first scheduler in the multiple schedulers acquires, from a coordinator of the first
user, the sum of resources that are consumed in the multiple schedulers by a user
request of the first user in a previous period; and
the first scheduler schedules the user request of the first user according to a resource
weight of the first user, the sum of resources that are consumed in the multiple schedulers
by the user request of the first user in the previous period, a resource that is consumed
in the first scheduler by the user request of the first user in the previous period,
and a quantity of user requests of the first user received by the first scheduler
in the previous period.
27. The method according to claim 26, wherein that the first scheduler schedules the user
request of the first user according to a resource weight of the first user, the sum
of resources that are consumed in the multiple schedulers by the user request of the
first user in the previous period, a resource that is consumed in the first scheduler
by the user request of the first user in the previous period, and a quantity of user
requests of the first user received by the first scheduler in the previous period
specifically comprises:
computing, by the first scheduler according to the resource weight of the first user,
the sum of resources that are consumed in the multiple schedulers by the user request
of the first user in the previous period, the resource that is consumed in the first
scheduler by the user request of the first user in the previous period, and the quantity
of the user requests of the first user received by the first scheduler in the previous
period, a virtual start time and a virtual finish time of the user request of the
first user; and adding the user request of the first user to a scheduling queue, wherein
the scheduling queue ranks the user request of the first user according to a value
of the virtual start time of the user request.
28. A distributed resource system, wherein the distributed resource system comprises multiple
schedulers, and a first scheduler in the multiple schedulers comprises an acquiring
unit and a scheduling unit, wherein:
the acquiring unit is configured to acquire, from a coordinator of the first user,
the sum of resources that are consumed in the multiple schedulers by a user request
of the first user in a previous period; and
the scheduling unit is configured to schedule the user request of the first user according
to a resource weight of the first user, the sum of resources that are consumed in
the multiple schedulers by the user request of the first user in the previous period,
a resource that is consumed in the first scheduler by the user request of the first
user in the previous period, and a quantity of user requests of the first user received
by the first scheduler in the previous period.
29. The distributed resource system according to claim 28, wherein the scheduling unit
is specifically configured to compute, according to the resource weight of the first
user, the sum of resources that are consumed in the multiple schedulers by the user
request of the first user in the previous period, the resource that is consumed in
the first scheduler by the user request of the first user in the previous period,
and the quantity of the user requests of the first user received by the first scheduler
in the previous period, a virtual start time and a virtual finish time of the user
request of the first user; and add the user request of the first user to a scheduling
queue, wherein the scheduling queue ranks the user request of the first user according
to a value of the virtual start time of the user request.