The present application is based on, and claims priority from, Taiwan Application No. 100148640, filed Dec. 26, 2011, the disclosure of which is hereby incorporated by reference herein in its entirety.
The present disclosure generally relates to a method and system for resource allocation in distributed time-division multiplexing (TDM) systems.
Max-min fairness principle is one of the most widely adopted concepts of resource allocation in the present TDM systems. According to the max-min fairness principle, the system may fairly allocate resources with a proportion according to the weights and requirements of users, make full use of the system resources by reallocating the residual resources released from the satisfied users, and provide each user a predicable minimum resource usage quantity and maximum service latency. The features of the max-min fairness principle may include high resource accessibility, high flexibility to demand variation, and high reliability of service quality. Max-min fairness principle may be applied to resource allocation in distributed TDM systems, such as bandwidth allocation of ad-hoc network, mesh network, wireless LAN, wireless sensor network, and token ring network, etc., and task scheduling in a central processing unit (CPU).
One mode of resource allocation for TDM systems is an interleaved polling-based scheme. In this mode, all users take turn to use system resources with a round-robin manner. A system service cycle may be defined as a continuous period of a service round taking any user as a starting point. For example, in a process of 10 users sharing resources in a round-robin manner, the service cycle may be a continuous period of resource usage from user 1 to user 10, or it may be a continuous period of resource usage from user 5 to user 10, added with a continuous period of resource usage from user 1 to user 4. This mode may individually calculate resource usage quantity according to a requirement of a single user, instead of allocating resources for an entire service cycle after gathering the requirements of all of the users.
There are many well-known resource allocation algorithms such as limited service scheme, elastic service scheme, and so on. According to the limited service scheme, initially, a system may set a maximum service quantity for each user respectively, according to a weight ratio. Then, all users use the system resources in a round robin manner. The resource usage quantity obtained by each user in any round is the minimum of the resource demand quantity and the maximum service quantity.
In the lower figure, it is assumed that the demand quantity of user 1 and user 2 continues to be 0, and user 3 continues to request an extremely high demand quantity. According to the resource usage quantity defined in this scheme, the usage quantity of user 1 and user 2 are all 0, and the usage quantity of user 3 is a fixed maximum service quantity. It may be seen from the exemplar, when the demand quantities of most users are relatively low, the overhead of switching resource usage right among users is accordingly increased. Here the overhead includes the message transmission time and the retained transition gaps. This situation leads to a low resource utilization of the system, and a great amount of power consumption in the transceiver.
According to the elastic service scheme, initially, a system may set a maximum cycle service amount, and all users use the system resources in a round robin manner. The resource usage quantity obtained by each user in any round is the minimum of the resource demand quantity and the residual service amount in a current cycle.
Hereafter, starting from the second cycle, it is assumed that all users request extremely high demand quantities. According to the definition of resource usage quantity, for user 1, the resource usage quantities of user 2 and user 3 in the previous cycle are all 0, thus the usage quantity obtained by user 1 is still the maximum cycle service amount; for user 2, since the total usage quantity of user 3 and user 1 in the previous cycle has reached the maximum cycle service amount, the usage quantity of user 2 is still 0. Similarly, for user 3, the obtained usage quantity is also 0. Therefore, as long as user 1 continues to request extremely high demand quantities, the system will always satisfy user 1 with an absolute priority, and ignore the demands of user 2 and user 3 at all. This situation leads to an unfairness of resource allocation, and the system may not guarantee the service quality to each user.
Distributed fair scheduling scheme is a representative resource allocation scheme applied in a distributed system. The distributed fair scheduling scheme is based on a carrier sense multiple access with collision avoidance (CSMA/CA) mechanism under the distributed coordination function (DCF) mode of the IEEE802.11 MAC protocol, and introduces formulas of a self-clock fair queuing (SCFQ) scheduling algorithm to set a backoff interval for each packet transmission according to a weight ratio. When a packet collision occurs, this scheme exponentially increases the backoff interval according to the times of collisions. This scheme also employs an exponential mapping method to compensate for the shortcomings of high packet collision probability and low bandwidth utilization.
In a distributed TDM system, a good resource allocation scheme should be able to achieve a high utilization of system resources and guarantee the service quality for each user, and simultaneously have a low computational complexity. The resource allocation scheme is an important research issue and has been continuously in-depth explored.
The exemplary embodiments of the present disclosure may provide a method and system for resource allocation in distributed time-division multiplexing (TDM) systems. In the following exemplary embodiments, the resource usage quantity is defined as resource quantity obtained by each individual user in every turn of resource allocation, and the resource amount is defined as an amount of resources provided by the system, wherein the resource amount of the system is the sum of the resource usage quantity of each user and the resource quantity occupied by overhead.
One exemplary embodiment relates to a method for resource allocation in a distributed time-division multiplexing (TDM) system. The distributed TDM system consists of a plurality of users and one or more resources, with each user having a weight. The resource allocation method comprises: reading a first message via a user obtaining a resource usage right of the plurality of users, wherein the first message containing an active weight sum and a system benefit level; calculating a resource usage quantity of the user, calculating a resource residual quantity of the user, updating the active weight sum, and storing an individual benefit basis of the user; dividing the resource residual quantity by an updated value of the active weight sum and accumulating a divided result to the system benefit level; transferring a second message containing the updated value of the active weight sum and an accumulated value of the system benefit level to a next user obtaining the resource usage right; and repeating the above all steps to allocate resources of the distributed TDM system.
Another exemplary embodiment relates to a system for resource allocation in a distributed time-division multiplexing (TDM) system. The system for resource allocation comprises a plurality of users with each user having a weight and taking turns to use resources of the distributed TDM system. The each user repeats the execution of: obtaining a resource usage right, and reading a first message of a user having an active weight sum and a system benefit level; computing a resource usage quantity of the user, computing a resource residual quantity of the user, updating the active weight sum, and storing an individual benefit basis of the user; dividing the resource residual quantity by an updated value of the active weight sum and accumulating a divided value of the resource residual quantity to the system benefit level; and transferring a second message having the updated value of the active weight sum and an accumulated value of the system benefit level to a next user obtaining the resource usage right.
The foregoing and other features and aspects of the disclosure will become better understood from a careful reading of a detailed description provided herein below with appropriate reference to the accompanying drawings.
The exemplary embodiments in the disclosure aim to a resource allocation scheme in distributed time-division multiplexing (TDM) systems. A distributed TDM system consists of a plurality of users and one or more resources. Each user takes turns to calculate a resource usage quantity for itself, and use each of the one or more resources according to the resource usage quantity. For each of the resources, at most one user is allowed to exclusively use such resource at any time point.
The design of the disclosure applied to resource allocation in a distributed TDM system uses a standard ruler as a basis of allocating a resource usage quantity, defines a basic resource usage quantity of each user (hereinafter referred to as the basic quantity) based on this standard ruler, reallocates a resource residual quantity according to a weight ratio, and controls a progress offset of an actual resource usage relative to a standard resource usage. The disclosure maintains a set of resource management variables as a reference of calculating the resource usage quantity. When a user releases an amount of residual resources, the resource residual quantity is normalized and accumulated to a resource management variable; when a user requires extra resources, a cyclic increment of the resource management variable is multiplied by a weight of the user, and the obtained product is used to calculate a benefit quantity (an extra resource quantity in addition to the basic quantity) of the user. A set of public resource management variables are transferred along with a resource usage right among users. The user obtaining the resource usage right calculates its own resource usage quantity in a current services cycle, and maintains the status of this set of public resource management variables collaboratively. The following exemplary embodiments illustrate this resource allocation design in distributed TDM systems.
The resource allocation method of the disclosure uses a standard ruler as a basis of allocating a resource usage quantity, and determines a basic quantity for each user according to this standard ruler. The so-called standard ruler is obtained by deducting overheads from a predetermined standard cyclic resource amount to get a standard cyclic service amount, allocating the standard cyclic service amount to each user to serve as a standard resource allocation quantity according to a weight ratio, arranging the standard resource allocation quantity of each user and the overheads to form a standard resource allocation cycle, and consecutively repeating the standard resource allocation cycle to form a standard ruler. The so-called basic quantity is the standard resource allocation quantity obtained by each user within one standard resource allocation cycle.
As shown in
The resource allocation of the disclosure defines a basic quantity for each user based on the standard ruler, and reallocates the resource residual quantity according to the weight ratio. Therefore, each time when user 1 releases a resource quantity L1 (assumes that L1=t1 in the exemplar), these residual resources are immediately reallocated to the succeeding user 2 and user 3. According to the weight ratio, the extra resource quantities allocated to user 2 and user 3, respectively, are τ2=(L1w2)/(w2+w3) and τ3=(L1w3)/(w2+w3). As such, starting from the second cycle, the resource usage quantity of user 2 is t2+τ2, and the resource usage quantity of user 3 is t3+τ3. This scheme conforms to the weighted max-min fairness principle, and the residual resources released from each user may be fully reallocated within one succeeding service cycle. Thus, aligned to a service switch point of user 1, the actual resource usage amount in each service cycle is the same as the standard cyclic resource usage amount. In other words, the average cyclic service amount of the system does not decrease as the variation of user demand quantities. Therefore, the overall resource utilization of the system is increased.
For example, in the result of another resource usage quantity 430, aligned to the service switch point T1, the actual resource usage amount in the second cycle is limited to not less than T−Lmax. This may correspond to a case that the demand quantities of all users in the second cycle are 0. Comparatively, the actual resource usage amount in the third cycle is limited to not greater than T+Lmax. This may correspond to a case that all users request extremely high demand quantities in the third cycle. Thus, by controlling the resource usage progress offset, the maximum latency each user waiting for the resources is guaranteed.
As mentioned above, the resource allocation based on the weighted max-min fairness principle may be applied to distributed TDM systems, such as the bandwidth allocation of ad-hoc network, mesh network, wireless local area network (WLAN), wireless sensor network, token ring network, etc., and the task scheduling of central processing units (CPU). Similarly, the disclosed resource allocation may also be applied to the above mentioned systems. Take the bandwidth allocation of a network system as an example, the network system may comprise a plurality of users, with each user having a corresponding weight. A user may be a data stream, a node, or a data queue corresponding to certain service level in a network, and may individually use the bandwidth of one or more channels within a dedicated time for data transmission. The user may determine the bandwidth demand quantity according to its data queue length. The overhead of resource allocation includes the bandwidth expended by massages and transition gaps. Take the task scheduling of a CPU as an example, the computational resources of the CPU may be shared by a plurality of users, and each user has a corresponding weight. A user may be a software program, a thread, or a task, and may individually use the computational resources of one or more processing cores in the CPU within a dedicated time. The user demand quantity is the amount of computational resources required to complete the task. The overhead is the computational resources occupied by a context switch routine. The exemplary embodiments of the disclosure respectively describe the resource allocation of per-node fairness and per-flow fairness, according to the primary application scenarios of distributed TDM systems.
In the application scenario of
In the application scenario of
In the application scenario of
The disclosed resource allocation utilizes a system benefit level to calculate the resource usage quantity of each user. According to a design, the resource residual quantity released from each user is normalized and then accumulated to a variable, called the system benefit level. When a user requires extra resources, the benefit quantity of the user is obtained by multiplying the cyclic increment of the system benefit level by a weight of the user. In an exemplary embodiment of the resource allocation, each user records a variable, called the individual benefit basis, and the user obtaining the resource usage right is responsible for calculating its own resource usage quantity, maintaining the system benefit level, and storing its individual benefit basis. In the calculation, the benefit quantity of an active user is equal to a product of the weight of the user and the difference between the system benefit level and the individual benefit basis of the user, wherein the individual benefit basis is the system benefit level stored by the user in the previous turn of obtaining the resource usage right. The steps of releasing the residual resources from a user includes dividing the residual quantity by an active weight sum, and accumulating the divided result to the system benefit level, wherein the active weight sum is a sum of the weights of the users currently having an active state.
Accordingly,
As mentioned above, the exemplary embodiments of the disclosure maintain a set of resource management variables in a memory to be taken for a reference of calculating the resource usage quantity. This set of resource management variables contains a set of public resource management variables, and a plurality of sets of private resource management variables with each corresponding to a user. The set of public resource management variables includes at least an active weight sum and a system benefit level, and is collaboratively maintained by all users. Each set of private resource management variables includes at least a user state and an individual benefit basis, and is maintained by the corresponding user. Accordingly, the first message 610 comprises an active weight sum and a system benefit level. The second message 620 comprises an updated active weight sum and an updated system benefit level. Each user may include a transceiver to receive the first message and to transmit the second message. Each user may comprise a computing device to calculate the resource usage quantity and the resource residual quantity of the user, to update the active weight sum, to store the individual benefit basis of the user, and to divide the resource residual quantity by the active weight sum and accumulate the divided result to the system benefit level.
Based on this set of resource management variables, and combined with the resource allocation system 600,
Referring to
As mentioned above, a user may be, for example, a data stream, a node, or a data queue corresponding to certain service level in a network, and may individually use the bandwidth of one or more channels within a dedicated time for data transmission. In addition, a user may be a software program, a thread, or a task, and may individually use the computational resources of one or more processing cores in a CPU within a dedicated time. The order for a user to obtain a resource usage right may be determined by a number of schemes, for example, dynamic adjustment according to any one combination of a predefined order, the weight of each user, the current state of each user, and the demand quantity of each user. All of the users may use the system resources in a round robin scheme.
After having calculated the resource usage quantity of the user (step 720), the resource allocation method stores a state of the user, as mentioned earlier. The definition of a user state may be flexibly designed according to application demands A definition of the user state may be a calculation result based on a demand quantity and a basic quantity of the user. For example, when the demand quantity is greater than the basic quantity, the user state is active, otherwise it is inactive. Another definition of the user state is a calculation result based on a demand quantity and any one combination of a basic quantity, a weight, an old state, an individual benefit basis, and a system benefit level. For example, when the demand quantity is greater than a value of the basic quantity+the weight×(the systems benefit level−the individual benefit basis), this user state is active; otherwise it is inactive. For each user, a new state stored after the (k−1)th turn of resource allocation may be regarded as an old state before the kth turn of resource allocation, wherein k is an index of turn.
It may be seen from the formula of calculating the resource usage quantity in step 850, the benefit quantity of an active user comes from a product of the weight of the user and the difference between the system benefit level and the individual benefit basis of the user, wherein the individual benefit basis is the system benefit level stored by the user in the previous turn of obtaining the resource usage right.
Accordingly, the disclosed resource allocation uses the system benefit level to calculate the resource usage quantity of the user. The principle behind is to extract the common items from the elements of benefit quantity obtained by each user in the procedure of allocating the residual resources. Then, define the system benefit level as the accumulated value of these common items, thus the sum of the common items in each benefit quantity of a user within a service cycle is equal to the difference of the system benefit level between this turn and the previous turn of obtaining the resource usage right. Finally, the difference of the system benefit level is multiplied by the weight of the user to serve as the benefit quantity for the user obtained in this turn of resource allocation.
The disclosed resource allocation based on per-flow fairness arranges the transmission quantity of each data stream to conform to the weighted max-min fairness principle, under the condition of data forwarding. This application scenario takes each data stream as a user. Each data stream has a corresponding weight and a corresponding distance, and a data stream from a source node may be transferred through the intermediate nodes to a destination node. In the resource allocation based on per-flow fairness, each time when a data stream releases residual resources at a source node, an identical quantity of resources may be saved at each of the interfaces on the path. Therefore, the resource residual quantity is defined to be the product of the resource residual quantity at the source node and the distance of the data stream.
Referring to
In addition, in the resource allocation based on per-flow fairness, the data stream with an active state may obtain a benefit quantity proportional to its weight at each of the interfaces on the path, so the active weight sum of the system is defined to be the sum of all active path weights, wherein an active path weight=weight of an active data stream×distance of the active data stream.
new active weight sum=old active weight sum+distance×weight×(new state−old state).
Accordingly, the following illustrates an exemplar of resource allocation based on per-node fairness mode. First, a standard ruler is used as a basis of the resource allocation. Herein, a standard cyclic service amount is obtained by deducting overheads from a standard cyclic resource amount, and then a basic quantity for each user is determined according to the standard cyclic service amount, so that the sum of the basic quantities of all users is equal to the standard cyclic service amount. In the exemplary embodiments of the disclosure, the resource allocation defines the basic quantity of each user in accordance with a corresponding weight of the user. Wherein the standard cyclic service amount=standard cyclic resource amount−sum of overheads within one service cycle; basic quantity of a user=standard cyclic service amount×weight of the user/sum of weights of all users. In each service cycle, every user obtains a resource usage right in order, and requests a demand quantity of system resources. For each user, the old state and the individual benefit basis before a current turn of resource allocation are respectively identical to the new state and the individual benefit basis after the previous turn of resource allocation; the old active weight sum and the system benefit level before a resource allocation are respectively identical to the new active weight sum and the system benefit level after the resource allocation of the previous user. Based on the above-mentioned premises, the resource allocation procedure for each user based on per-node fairness mode may be described by the following resource management variables and operations.
benefit quantity←old state×weight×(system benefit level before allocation−individual benefit basis before allocation),
allocation quantity←basic quantity+benefit quantity,
usage quantity←min{demand quantity, allocation quantity},
residual quantity←allocation quantity−usage quantity,
new state←(demand quantity>basic quantity)?1:0,
new active weight sum←old active weight sum+weight×(new state−old state), in other words, the new active weight sum is updated as
the active weight sum read from the first message+the weight of the user×(new state−old state), wherein the active weight sum read from the first message has been mentioned in step 710 of FIG.7,
individual benefit basis after allocation←systems benefit level before allocation,
system benefit level after allocation←system benefit level before allocation+(residual quantity/new active weight sum).
According to the above description,
Take the resource allocation of the first cycle for user 4 as an example. For the user 4, the weight is 4, the basic quantity is 40, and the demand quantity in this turn is 45. According to the variables and operations mentioned above, the resource allocation may be described as follows.
benefit quantity=old state×weight×(system benefit level before allocation−individual benefit basis before allocation)=1×4×(3−0)=12,
allocation quantity=basic quantity+benefit quantity=40+12=52
usage quantity=min{demand quantity, allocation quantity}=min {45,52}=45,
residual quantity=allocation quantity−usage quantity=52−45=7,
Since the demand quantity is greater than the basic quantity, the new state=1,
new active weight sum=old active weight sum+weight×(new state−old state)=7+4×(1−1)=7,
individual benefit basis after allocation=systems benefit level before allocation=3,
system benefit level after allocation=system benefit level before allocation+(residual quantity/new active weight sum)=3+7/7=4.
Similarly, take the resource allocation of the second cycle for user 4 as an example. The demand quantity of user 4 in this turn is 30. Accordingly, benefit quantity=old state×weight×(system benefit level before allocation−individual benefit basis before allocation)=1×4×(5−3)=8; allocation quantity=basic quantity+benefit quantity=48; usage quantity=min{demand quantity, allocation quantity}=30; residual quantity=allocation quantity−usage quantity=18; since demand quantity is less than basic quantity, the new state=0; new active weight sum=old active weight sum+weight×(new state−old state)=10+4×(0−1)=6; individual benefit basis after allocation=systems benefit level before allocation=5; system benefit level after allocation=system benefit level before allocation+(residual quantity/new active weight sum)=5+18/6=8.
By analogy, the following illustrates an exemplar of resource allocation based on per-flow fairness mode. In the resource allocation based on per-flow fairness, the basic quantity of a data stream at each of the interfaces on the path is identical, thus the sum of products of all users' basic quantities and their corresponding distances is equal to the standard cyclic service quantity. In the disclosed exemplary embodiments of the resource allocation, basic quantity of a data stream=standard cyclic service quantity×weight of the data stream/sum of all path weights; wherein a path weight=weight of a data stream×distance of the data stream. Each time when a data stream releases residual resources at a source node, an identical quantity of resources may be saved at each of the interfaces on the path. Therefore, in the disclosed exemplary embodiments of the resource allocation, resource residual quantity of a data stream=resource residual quantity of the data stream at the source node×distance of the data stream. Furthermore, a data stream with an active state may obtain a benefit quantity proportional to its weight at each of the interfaces on the path. Therefore, in the disclosed exemplary embodiments of the resource allocation, an active weight sum is defined to be the sum of all active path weights, wherein an active path weight=weight of an active data stream×distance of the active data stream.
In the disclosed exemplary embodiments of the resource allocation, resource usage amount of an interface indicates the amount of resources supplied to all of the data streams passing through the interface, wherein these data streams include the data streams forwarded by this interface and the data streams generated at this interface. Each time when the usage quantity of a data stream differs from the basic quantity at a source node, an identical quantity of this difference will be accumulated to the resource usage progress offset at each of the interfaces on the path, therefore, new added progress offset=(basic quantity of a data stream−resource usage quantity of the data stream at a source node)×distance of the data stream.
Accordingly, the resource allocation procedure based on per-flow fairness mode may be described by the following resource management variables and operations.
benefit quantity←old state×weight×(system benefit level before allocation−individual benefit basis before allocation),
allocation quantity←basic quantity+benefit quantity,
usage quantity←min{demand quantity, allocation quantity},
interface usage amount←sum of the usage quantities of all streams forwarded by the interface+sum of the usage quantities of all streams generated at the interface,
residual quantity←distance×(allocation quantity−usage quantity),
new state←(demand quantity>basic quantity)?1:0,
new active weight sum←old active weight sum+distance×weight×(new state−old state), in other words, the new active weight sum is updated as
the active weight sum read from the first message+a distance of the user×the weight of the user×(new state−old state), wherein the active weight sum read from the first message has been mentioned in step 710 of FIG.7,
individual benefit basis after allocation←systems benefit level before allocation,
system benefit level after allocation←system benefit level before allocation+(residual quantity/new active weight sum).
According to the above description,
Referring to
benefit quantity=old state×weight×(system benefit level before allocation−individual benefit basis before allocation)=1×3×(0−0)=0,
allocation quantity=basic quantity+benefit quantity=30+0=30,
usage quantity=min{demand quantity, allocation quantity}=min{16, 30}=16,
interface usage amount=sum of the usage quantities of all streams forwarded by the interface+sum of the usage quantities of all streams generated at the interface=30+16=46,
residual quantity=distance×(allocation quantity−usage quantity)=1×(30−16)=14,
Since the demand quantity is less than the basic quantity, the new state=0,
new active weight sum=old active weight sum+distance×weight×(new state−old state)=10+1×3×(0−1)=7,
individual benefit basis after allocation=systems benefit level before allocation=0,
system benefit level after allocation=system benefit level before allocation+(residual quantity/new active weight sum)=0+14/7=2.
Similarly, take the resource allocation of the third cycle for user 1 as an example. For the user 1, the weight is 1, the basic quantity is 10, and the demand quantity in this turn is 4. Accordingly, benefit quantity=old state×weight×(systems benefit level before allocation−individual benefit basis before allocation)=1×1×(3−2)=1; allocation quantity=basic quantity+benefit quantity=11; usage quantity=min{demand quantity, allocation quantity}=4; interface usage amount=sum of the usage quantities of all the forwarded streams+sum of the usage quantities of all the generated streams=0+4=4; residual quantity=distance×(allocation quantity−usage quantity)=3×(11−4)=21; since demand quantity is less than basic quantity, the new state=0; new active weight sum=old active weight sum+distance×weight×(new state−old state)=10+3×1×(0−1)=7; individual benefit basis after allocation=system benefit level before allocation=3; system benefit level after allocation=system benefit level before allocation+(residual quantity/new active weight sum)=3+21/7=6.
Therefore, according to the disclosed exemplary embodiments of the resource allocation, under either the per-node fairness mode or the per-flow fairness mode, calculating the resource usage quantity for each user within one service cycle may have a very low computational complexity. In other words, the required computation amount reduced to a constant, which is independent of the user number in the system.
In the disclosed exemplary embodiments, the resource allocation controls the progress offset of an actual resource usage relative to the standard ruler by limiting the range of resource usage quantity of each user, so as to guarantee the maximum latency of waiting for resources for each user. In the resource allocation based on per-flow fairness, a new added progress offset of a data stream is less than or equal to an allowed incremental progress offset, wherein the new added progress offset of a data stream=(basic quantity of the data stream−resource usage quantity of the data stream at a source node)×distance of the data stream, and the allowed incremental progress offset=maximum progress offset−current progress offset. Accordingly, the resource usage quantity of a data stream at a source node basic quantity of the data stream−(maximum progress offset−current progress offset)/distance of the data stream. Wherein, when the resource usage right is transferred from a data stream A to a data stream B, current progress offset of data stream B=current progress offset of data stream A+(basic quantity of data stream B−resource usage quantity of data stream B at source node)×distance of data stream B.
In the disclosed exemplary embodiments, the resource allocation calculates the resource usage quantity of each user according to a set of public resource management variables transferred among users. This may increase the flexibility of network topology, and reduce the computation amount of resource allocation. For example, the residual resources released from users are immediately reallocated to all users in a network according to a weight ratio by simply maintaining the states of the set of public resource management variables at the user obtaining a resource usage right, instead of broadcasting the resource residual quantity to all users in the network. Besides, the set of public resource management variables, such as W, B, L, are simplified to reduce the overhead of transferring message, where W is the active weight sum, B is the system benefit level, and L is the progress offset. Herein the number of public resource management variables is independent of the number of users.
The disclosed exemplary embodiments define some constant notations and some variable notations to express the physical quantities and the procedures of resource allocation.
B(x)=Σxu=1{e(u)/W(u)}.
Accordingly, for a user having an active state, the sum of the common items e(x)/W(x) in the benefit quantity of the user accumulated within one service cycle is equal to the difference of system benefit level between this turn and the previous turn of resource allocation, that is B(x)−B(x−N), where N is the number of users, B(x) is the system benefit level before this turn of resource allocation, and B(x−N) is the system benefit level before the previous turn of resource allocation, which may be the individual benefit basis stored after the previous turn of resource allocation. For example, the sum of the common items in the benefit quantity of user 3 in the second service cycle is B(5)−B(2). Then, the benefit quantity of the user accumulated within one service cycle is obtained by multiplying the difference of system benefit level by the weight of the user.
The above mentioned resource allocation in conformity with the weighted max-min fairness principle, the control of resource usage progress offset, the resource allocation based on per-node fairness mode, and the resource allocation based on per-flow fairness mode may be furthermore integrated into a simplified resource allocation procedure.
In summary, the exemplary embodiments of the present disclosure may provide a method and system for resource allocation in distributed time-division multiplexing (TDM) systems. By limiting the switching frequency of resource usage, the overhead of resource allocation is reduced, so as to improve the system resource utilization. Concurrently, limiting the switching frequency prevents users from continuously monitoring and transferring messages, so that the power consumption of the transceivers is reduced. Also, this limitation reduces the probability of packet loss and occurrence of network reconstruction, thereby enhancing the system stability. By reallocating the resource residual quantity according to a weight ratio of active users, the max−min fairness principle for resource allocation is conformed to, and the minimum resource usage quantity for each user is guaranteed. By controlling the progress offset of resource usage, the maximum latency each user waiting for resources is bounded. By transferring a set of public resource management variables among users, residual resources are immediately reallocated to all users in a distributed system with high flexibility of network topology. By simplifying the set of public resource management variables, the maintenance cost of message fields is decreased to an order independent of user number. Moreover, the exemplary embodiments provide a simplified scheme of calculating the resource usage quantity based on system benefit level, which reduces the computational complexity of resource allocation.
It will be apparent to those skilled in the art that various modifications and variations can be made to the disclosed embodiments. It is intended that the specification and examples be considered as exemplary only, with a true scope of the disclosure being indicated by the following claims and their equivalents.
Number | Date | Country | Kind |
---|---|---|---|
100148640 | Dec 2011 | TW | national |