The present invention relates generally to systems, methods, and computer readable media for allocating resources for a network device.
In today's communication networks, dynamic allocation of service resources is an important and difficult task. Such service resources may include traffic generation rates, service or processing rates utilized to process incoming traffic, power usage, or the like for a network device. Effective management of such service resources requires network providers to attempt to satisfy the varying requirements of wide variety of communication consumers or customers. Conventional techniques to dynamic allocation of service resources typically require a priori statistical information or a significant amount of a priori calculations with complex and time consuming calculations taking place at network devices. Some conventional techniques may lead to unbounded queue lengths, resulting in unstable network devices.
Among its several aspects, the present invention recognizes a need for improved systems and techniques for dynamic allocation of service resources for a network device that assures acceptable performance while maintaining a stable communication network.
To such ends, in one exemplary embodiment, a method for setting a new service rate for one or more queues of a router and a new power consumption level for a router. The queues are configured to store data packets awaiting transmission from the router. The setting of the new service rate or rates and new power level is based on a service rate of the one or more queues and a power consumption level of the router. The method further includes resetting a new service rate for the one or more queues of the router and a new power consumption level of the router. The resetting of the new service rate or rates and new power level is based on a service rate of the one or more queues and a power consumption level of the router. The setting and resetting steps are based differently on the power consumption level of the router.
In another exemplary embodiment, another method for setting service rates and power consumption is disclosed. This method includes setting a new service rate for each queue of a router and a new power consumption level for the router. Each queue is configured to store data packets awaiting transmission from the router. The step of setting is based on comparing values of an expression. The expression is a sum of terms, one of the terms being a product of a non-decreasing function of a length of one of the queues times a service rate of the one of the queues, another term being a derivative of a decreasing function of an average power consumption in the router times an instantaneous power usage level in the router.
In a further exemplary embodiment, a computer readable medium is provided for causing a computer system to generate one or more traffic generation rates of data packets. The computer system has program code for performing the steps of determining a neighboring node as a target of data packets generated by the computer system where the neighboring node has a queue for receiving the data packets, obtaining the current length of the queue, and selecting a vector of one or more communication traffic generation rates of data packets from a discrete set of available choices of traffic generation rates. The selecting step may suitably include utilizing the current length of the queue and the effect of the selection of the vector of one or more communication traffic generation rates would have on the queue.
The aforementioned exemplary embodiments summarized above have several advantages. These techniques are frugal in that the vector selection is from a set of available choices based on minimal amount of information. In these techniques, a router advantageously makes decisions independently of other routers such that benefits are bestowed individually on the router and on the communications network, when all routers are modified in accordance with the present invention. Furthermore, in these techniques, a configured utility function at a router may be concave or linear. The maximized expressions consider finite queue lengths of the network and power consumption at a router. These techniques do not require a priori statistical information and the determinations made are relatively easy.
A more complete understanding of the present invention, as well as further features and advantages of the invention, will be apparent from the following Detailed Description and the accompanying drawings.
The present invention will now be described more fully with reference to the accompanying drawings, in which several presently preferred embodiments of the invention are shown. This invention may, however, be embodied in various forms and should not be construed as limited to the embodiments set forth herein. Rather, these embodiments are provided so that this disclosure will be thorough and complete, and will fully convey the scope of the invention to those skilled in the art.
As will be appreciated by one of skill in the art, the present invention may be embodied as methods, systems, or computer readable media. Accordingly, the present invention may take the form of a hardware embodiment, a software embodiment or an embodiment combining software and hardware aspects such as firmware. Furthermore, the present invention may take the form of a computer program on a computer-usable storage medium having computer-usable program code embodied in the medium. Any suitable computer readable medium may be utilized including hard disks, CD-ROMs, optical storage devices, flash memories, magnetic storage devices, or the like.
Computer program code or “code” for carrying out operations according to the present invention may be written in an object oriented programming language such as JAVA®, Smalltalk, JavaScript®, Visual Basic®, TSQL, Perl, C, C++ or in various other programming languages. Software embodiments of the present invention do not depend on implementation with a particular programming language. Portions of the code may execute entirely on one or more systems utilized by a network node or a base station.
The code may execute partly on a network node and partly on another network node or base station in communication with the network node over a communications network. Regarding the former scenario,
Base stations 110A-110C, intermediary nodes 120A-120C, and end devices 130A-130C are computer based devices which at least contain a central processing unit (CPU), memory, and are able to execute computer program code according to the teachings of the present invention. Base stations 110A-110C, intermediary nodes 120A-120C, and end devices 130A-130C may be connected through a wireless or wired connection. Base stations 110A-110C are considered sources of traffic or traffic generators. An intermediate node may also be referred to as a router. Intermediate nodes receive packets of data and forward those packets of data to a neighboring node. Intermediary nodes 120A-120C contain queues for buffering and processing incoming packets. For example, intermediate node 120A has queue 125A for receiving packet data of a particular traffic flow from base station 110A and queue 125B for receiving packet data of another traffic flow from base station 110B. It should be noted that in this exemplary embodiment a queue is used on a per traffic flow basis.
Each intermediate node has a corresponding set of available service rate vectors with different vector components corresponding to different queues in the node from which a particular service rate vector is selectable. How the intermediate node selects service rate vectors to apply within a timeslot will be discussed in further detail below. A queue may be implemented as a buffer in memory where packets await processing by a CPU. Furthermore, a single buffer may be partitioned in various manners to represent multiple queues. End nodes are final consumers of information in that the packets of data reach their final destination at an end node. During a typical timeslot or timeslots in the operation of the system 100 illustrated in
Although various end nodes are illustratively depicted as a cell phone, a handheld device and a notebook computer in
For every timeslot, a typical base station will have available to it a discrete set of available generation rates from which to choose for transmitting data to an intermediate node. For example, if a data file is being transferred from a base station to an end node, the base station will select on a timeslot basis one or more generation rates for transmitting the data file packets. If base station 110A was transmitting as shown in
where for each traffic flow i in the communication network, Xi is the long term average traffic generation rate λi(t), and Ui(x) is some concave or linear function assigned to traffic flow i. Exemplary concave or linear functions used as utility functions in a communication network include
Ui(x)=a1 log x,
Ui(x)=a1 log (x+a2)
Ui(x)=a1x+a2, and the like.
where a1 and a2 are constants and x is a generic variable. These and other concave and linear functions may be set by a system designer or network operator to achieve a certain network objective such as satisfying customer class of service requirements. Furthermore, different utility functions known to base stations may be configured across traffic flows to promote different objectives for each particular traffic flow generated by a base station. One objective accomplished by a utility function may be to promote fairness such as
while another objective may promote maximal raw throughput the network, such as
In order to achieve a stable network, the teachings of the present invention impose the constraint that queues in the network have a finite length. Thus, the general selection rule for traffic generation rate, λn, can be written as
where n indicates each traffic flow generated by a base station which can simultaneously transmit in a timeslot, Un′ is a derivative with respect to x of the configured utility function for generating traffic flow, Xn(t) is the average traffic generation rate estimate for flow at time t, β is a fixed small constant greater than zero, p indicates the target queue in a neighboring intermediate node, if any, to which the traffic flow is forwarded by the base station, and Qp(t) is the queue length of queue p. For example, when n=1, the utility function is associated with generating a traffic flow over channel 115A to intermediate node 120A is determined. When n=2, the utility function associated with generating traffic flow over channel 115B is determined. It should be noted that the term target as used herein refers to a neighboring intermediate node to which the node under consideration forwards the traffic flow. This term does not suggest that the target whether it is a queue or an intermediate node is the final destination of the generated traffic flow.
Utilizing expression (2) for a base station to select a vector of values of λn enables the base station to make decisions based on the queue lengths of neighboring nodes without having to consider other nodes in the network even if those other nodes in the network are necessary to deliver the packets to an end node. Furthermore, a base station utilizing this strategy to generate traffic rates is discouraged from sending traffic to large queues in neighboring nodes.
Referring to
U2′(X2(t))λ2+U3′(X3(t))λ3−βQ2(t)λ2−βQ3(t)λ3 (3)
where U2′ is the derivative of the configured utility function for generating traffic flow 2 from base station 110B to intermediate node 120A, X2(t) is the estimation of average traffic rate of flow 2 up to time t, U3′ is a derivative of the configured utility function for generating traffic flow 3 from base station 110B, Q2(t) is the queue length at time t of queue 125B, and Q3(t) is the queue length at time t of queue 125C. There are many known ways for base station 110B to find out the queue lengths of its neighboring nodes. However, one way for determining such queue lengths is for the intermediate nodes to provide the queue length in an acknowledgement to a base station during normal protocol communication.
With regard to expression (3), it should be noted that the constant β may be factored from the terms above and other constants c2 and c3 may be added to precede the fourth and fifth terms. In so doing, a control is added which effects the decision of selecting vector (λ2,λ3) on queue length without significantly affecting the network objective, expression (1). For example, if c2=2, then the average queue length of queue 125B would be approximately halved. In short, the resulting average queue length is inversely proportional to the value of the constant.
After base station 110B chooses the combination or vector of traffic generation rates (λ2, λ3) for the current timeslot, the base station 110B updates the estimation of average traffic generation rates, X2(t) and X3(t), for the next timeslot by using the following equation:
Xi(t+1)=βλi(t)+(1−β)Xi(t) (4)
where i, in base station 110B's case, is 2 for one path and 3 for the other. This simple, self-contained calculation for updating the estimation of average traffic generation rates does not require information to be communicated to a base station from other nodes.
Intermediate nodes 120A-120C may be configured to make a selection of a vector of service rates in order to stabilize queue lengths throughout the system. An intermediate node would consider maximizing the processing of queued traffic while minimizing the effects of its processed traffic on a neighboring node which receives traffic from the intermediate node. The expression, in general, for an intermediate node to select service rates μi can be written as follows:
where i indicates each queue in the intermediate node, Qi(t) is the queue length of a queue within the intermediate node, μi is the service rate associated with the ith queue, n indicates each target queue in a neighboring intermediate node, if any, and Qn(t) is the queue length of the target queue n in the neighboring intermediate node to which queue i forwards packets. Qn(t) is equal zero if there is no such intermediate node. For example, intermediate node 120A selects a vector of service rates (μ125A, μ125B) which maximizes the specific expression as follows:
Q125A(t)μ125A+Q125B(t)μ125B−Q125D(t)μ125A (6)
where Q125A(t) is the queue length and μ125A is the service rate of queue 125A, Q125B (t) is the queue length and μ125B is the service rate of queue 125B, and Q125D (t) is the queue length of queue 125D and μ125A is the service rate of queue 125A. For intermediate node 120C, intermediate node 120C is configured to select a vector of service rates (μ125D, μ125E) which maximizes the specific expression as follows:
Q125D(t)μ125D+Q125E(t)μ125E (7)
where Q125D(t) is the queue length and μ125D is the service rate of queue 125D and Q125E(t) is the queue length and μ125E is the service rate of queue 125E. It should be noted that expression (7) does not contain terms with negative signs because intermediate node 120C does not forward traffic to another intermediate node. In general, expression (5) for a particular intermediate node will not include terms with negative signs if the targets of the particular intermediate node are end nodes.
For example, base station 110B may have a set of available traffic generations rate pairs such as {(rate1, rate4), (rate2, rate5), (rate3, rate6)}. These rate pairs reflect the pair of available choices for (λ2, λ3). In a timeslot, base station 110B would select the vector of values for (λ2, λ3) from these rate pairs which maximize expression (2) and more specifically expression (3). If the base station generates one traffic flow as base station 110A, for example, a value for λ1 will be selected to maximize expression (2). Furthermore, it should be noted that the specific expression for base station 110A, expression (2), may vary depending on what intermediate nodes and what queues within those intermediate nodes are targets of base station 110A generated traffic flow. At step 240, the method generates traffic flow towards neighboring nodes according to the selected traffic generation rates. At step 250, the method performs a bookkeeping function by updating the estimation of the average traffic generation rates.
Intermediate nodes 420A-420C are similar to intermediate nodes 120A-120C except that intermediate nodes 420A-420C maintain virtual queues 415A-415C, respectively. As described in further detail below, a virtual queue provides a technique for an intermediate node to regulate a vector selection so that its average power usage does not exceed a fixed value. In this embodiment, the intermediate node not only chooses the service amount vectors, such as (μ425A, μ425B) corresponding to queues 425A and 425B, but also selects an amount of power P420A to expend servicing the queues in the timeslot. For example, intermediate node 420A would select a the tuple vector (μ1, μ2, P420A) from a certain discrete set of available choices in order to maximize following expression, in general:
where the terms in the summation are the same as those explained in expression (5), Qv(t) is the queue length of a virtual queue, and P is the power consumption of the intermediate node. Specifically, intermediate node 420A in network 400 selects the vector (μ425A, μ425B, P420A) by maximizing the specific expression
Q425A(t)μ425A+Q425B(t)μ425B−Q425C(t)μ425B−Q415A(t)P420A (9)
where Q425A(t) is the queue length and μ425A is the service rate of queue 425A, Q425B(t) is the queue length and μ425B is the service rate of queue 425B, and Q425C(t) is the queue length of queue 425C, and Q415A(t) is the queue length of virtual queue 415A, and P420A is the power consumption of intermediate node 420A for the timeslot being evaluated.
After selecting the tuple vector (μ1, μ2, P420A) which maximizes expression (9), an intermediate node updates the virtual queue by adding the selected P420A number of tokens to the virtual queue and removing a fixed number of c tokens from the virtual queue. In this manner, if c<P420A during a timeslot, the effects on the virtual queue include increasing its queue size. Thus, in the next timeslot, when selecting the vector, the length of the virtual queue, Q415A(t), will increase. A virtual queue may be implemented as a single variable in memory in which, during a timeslot, P tokens are added to the variable and c tokens are subtracted from the variable. More specifically, the queue length Q415A(t) may be maintained with a fixed budget constant c by either of the following two equations.
Q415A(t+1)=max{Q415A(t)−c,0}+P420A(t), or (10)
Q415A(t+1)=max{Q415A(t)−c−P420A(t),0} (11)
A virtual queue may be applied to each node in the network including base stations. When so applied, the virtual queue also regulates selections made. In a base station or traffic source, generation rates, λn, and power consumption, P, are selected to maximize the following expression:
where the summation is the same as that explained with regard to expression (2), Qv is the queue length of virtual queue v maintained by the base station and P is the power consumed in the timeslot.
It should be noted that the teachings of the present invention are not limited to their utilization in service rate selections in intermediate nodes. Other rates or service resources of an intermediate node may be selected on a timeslot basis according to the teachings of the present invention while considering power consumption constraints. Furthermore, selecting service rates while considering power consumption as taught above, allows a node to make power consumption decisions independent of the other nodes in the network. Thus, individual nodes modified according to the teachings of the invention achieve power consumption benefits regardless of whether other nodes in the communication network have been so modified.
where Ui is a concave or linear utility function as a function of long term average power usage Xi for node i in the network. In the embodiment depicted in
maximize U620A(X620A)+U620B(X620B)+U620C(X620C) (14)
where U620A(x), U620B(x), and U620C(x) are concave or linear utility functions. X620A, X620B, and X620C are long term average values of power usages, P, at intermediate nodes 620A-620C, respectively. To satisfy the objective as expressed in expression (14), the intermediate nodes 620A-620C, in general, are configured to maximize the following expression:
where i indicates a specific node, Ui′ is a derivative with respect to x of the configured utility function for power usage, Xi(t) is the long term average power usage for node i, Pi is the power used at node i in a timeslot, β is a fixed small constant greater than zero, Qq(t) is the queue length for the queues in node i, μq is the service rate for queue q, Qn(t) is the queue length for the queue n which is a target of queue q, and μq is the service rate for queue q which transmits to queue n. In general and as a matter of terminology, Pi is considered a commodity and Xi(t) is considered the rate at which the commodity is produced.
Expression (15) is satisfied by intermediate nodes 620A-620C being configured to make selections of service rates for their respective queues and power savings. For example, intermediate node 620A, in a timeslot, selects service rates and power usage as a vector (μ625A, μ625B, P620A), according to the following rule:
maximize U620A′(X620A(t))P620A+βQ625A(t)μ625A+βQ625B(t)μ625B−βQ625E(t)μ625B (16)
where U620A′ is the derivative with respect to x of the configured utility function for power consumption, X620A(t) is the average power consumption for node 620A, Q625A(t) is the queue length for the queue 625A, Q625B(t) is the queue length for the queue 625B, and Q625E(t) is the queue length for the queue 625E which is the target of queue 625B.
By way of another example, intermediate node 620B, in a timeslot, selects services rates and power usage as a vector (μ625C, μ625D, P620B), according to the following rule:
maximize U620B′(X620B(t))P620B+βQ625C(t)μ625C+βQ625D(t)μ625D−βQ625F(t)μ625C (17)
where U620B′ is a derivative of the configured utility function for power savings, X620B(t) is the average power consumption for node 620B, Q625C(t) and Q625D(t) are the queue lengths for the queues 625C, 625D, respectively, and Q625F(t) is the queue length for the queue 625E which is the target of queue 625C.
Intermediate node 620C, in a timeslot, selects service rates and power savings as a vector (μ625E, μ625F, P620C), according to the following rule:
maximize U620C′(X620C(t))P620C+βQ625E(t)μ625E+βQ625F(t)μ625F (18)
where U620C′ is the derivative with respect to x of the configured utility function for power usage, X620C(t) is the average power usage for node 620C, β is a fixed small constant greater than zero, Q625E(t) and Q625F(t) are the queue lengths for the queues 625E and 625F, respectively. After the vector selection of service rates and power usage, intermediate nodes 620A-620C update their corresponding average power usage estimates as follows:
Xi(t+1)=βPi(t)+(1−β)Xi(t) (19)
where i corresponds to intermediate nodes 620A, 620B, and 620C.
Configuring the intermediate nodes 620A, 620B, and 620C according to expression (16), (17), and (18), respectively, advantageously provides the flexibility for each node to generate controls where each intermediate node has a different utility function. For example, the utility function for a first intermediate node may be U(x)=−x2. For second intermediate node, the utility function may be U(x)=−x. For these exemplary utility functions, it is apparent that the power savings in the first intermediate node is more important from the network point of view than the power savings in the second intermediate node.
Referring to expression (14), a special case results when the utility functions for all the nodes are equal to −x. For example, U620A(x)=−x, U620B(x)=−x, and U620C(x)=−x where x is the long term average power consumption. This typical situation arises, for example, when total average power consumption at all nodes in a network is to be minimized. Applying expression (14), intermediate nodes would select service rates so that the following system objective is reached:
maximize (−X420A)+(−X420B)+(−X420C) (20)
For clarification purposes, we can similarly rewrite expression (20) as follows:
minimize X420A+X420B+X420C (21)
The network objective, then, is to minimize the power usage by all intermediate nodes 420A-420C. Referring back to expression (15) and taking derivatives of utility function, the derivative term of expression (15), would yield the constant −1, regardless of any particular value of x. As a result, for this special case, there is no need to keep track of long term average power consumption, X620A, X620B, and X620C. The rules, then, for intermediate nodes to make choices as stated in expressions (16), (17), and (18) may be simplified to the following rules for selecting service rates and power consumption of intermediate nodes 620A-620C:
maximize −P620A+βQ625A(t)μ625A+βQ625B(t)μ625B−βQ625E(t)μ625B (22)
maximize −P620B+βQ625C(t)μ625C+βQ625D(t)μ625D−βQ625F(t)μ625C (23)
maximize −P620C+βQ625E(t)μ625E+βQ625F(t)μ625F (24)
The aforementioned technique applied to nodes 620A-620C in this special situation minimizes the power consumption by nodes 620A-620C. Utilizing this advantageous technique results in an intermediate node not needing to know the power consumption of other nodes and not having to track their own long term power consumption average. In fact, the scenario when all nodes use U(x)=−x is typical when average power consumption is to be minimized at all nodes in a network.
At step 720, a vector of service rates and a corresponding power level from a discrete set of available choices of service rates of actual queues and power levels is selected to maximize the expression. The expression may also be a function of queue lengths of a target queue in a neighboring intermediate node, if any. At step 730, the actual queues of the network node are serviced according to the selected service rates. As a result, the queue lengths of the actual queues are updated. If the intermediate node transmits to a second intermediate node, the network node maintains the queue length of the target queue in the second intermediate node. This transmission can be accomplished utilizing existing communication protocol handshake techniques. At optional step 740, the long term average power consumption of the intermediate node is updated if the derivative of the utility function describing power consumption is not constant.
While the present invention has been disclosed in the context of various aspects of node's control actions performed by network nodes such as selecting generation rates, service rates and power consumption, utilizing virtual commodities and virtual queues, it will be recognized that the invention may be suitably applied to other system control objectives and constraints such as upper and lower bounds of traffic generation rates, and the like. To support all such system objectives and constraints, expressions (2) and ( 4) can be generalized respectively as choosing in a timeslot t a network control action
where k represents a network control action from a discrete set available in slot t, β>0 is a typically small parameter, and X(t) is the vector of the current averages of commodity rates, updated as follows:
Xn(t+1)=Xn(t)+β(bn(k(t))−Xn(t)),nεNu. (26)
In expression (26), u represents a finite set of generated commodity flows. H(X) is a concave utility function of the vector X of average commodity rates. bn(k) is the amount of commodity that is generated by control action k. p represents a finite set of processing nodes having queues. Qn(t) are the queue lengths of processing nodes n. {overscore (ΔQn)}(k) is the expected average increment, or drift, of the queue length Qn at a processing node n ε p caused by control k, calculated under the assumption that all Qn at all processing nodes were large enough for queues to not empty as a result of control k.
Using natural vector notation, and “·” to denote scalar products, expression (25) can be concisely written as follows:
k(t)εargk max ∇H(X(t))·b(k)−βQ(t)·{overscore (ΔQ)}(k) (27)