Time-value curves to provide dynamic QoS for time sensitive file transfer
View Patent ↗A method and apparatus has been shown and described which allows Quality of Service to be controlled at a temporal granularity. Time-value curves, generated for each task, ensure that mission resources are utilized in a manner which optimizes mission performance. It should be noted, however, that although the present invention has shown and described the use of time-value curves as applied to mission workflow tasks, the present invention is not limited to this application; rather, it can be readily appreciated by one of skill in the art that time-value curves may be used to optimize the delivery of any resource to any consumer by taking into account the dynamic environment of the consumer and resource.
1. A method of allocating a resource to a plurality of resource consumers includes the steps of:
generating, with a network device, a time-value curve defining a temporally dynamic priority of a resource consumer over a time period, wherein the priority is calculated as a function of time; and
using the time-value curve to allocate access to the resource to the consumer over the time period.
2. The method of claim 1 wherein the temporally dynamic priority defines a temporally dynamic quality of service to provide to the resource consumer.
3. The method of claim 1 wherein each of the plurality of resource consumers has an associated time-value curve and wherein at least two of the time-value curves are different.
4. The method of claim 3 wherein the step of using the time-value curve to allocate access to the resource includes the steps of:
sampling time-value curves at periodic intervals to obtain sampled time-values for each of the plurality of resource consumers; and
using the sampled time-values to select one of the plurality of resource consumers as an access consumer for accessing the resource for a periodic interval.
5. The method of claim 4 wherein the time-value curves are differently weighted.
6. The method of claim 4 wherein the time-value curves have different lifetimes.
7. A method of allocating a resource to a plurality of resource tasks in a workflow includes the steps of:
generating, with a network device, a time-value curve for each resource task in the workflow, the time-value curve defining a temporally dynamic quality of service to be provided to the corresponding resource task, wherein the quality of service is calculated as a function of time, and
using the time-value curve to select one of the plurality of resource tasks for resource allocation.
8. The method of claim 7 wherein the time-value curves are associated with dynamic tasks which have a lifetime.
9. The method of claim 8 further including the step of using the time-value curves to identify stalled tasks.
10. The method of claim 9 including the step of aborting stalled tasks to reduce congestion.
11. The method of claim 7 wherein the step of generating a time value-curve for each task includes the steps of:
selecting a generic task profile; and
modifying the generic task profile with task specific information to provide a task specific time-value curve.
12. The method of claim 11 wherein the generic task profile is defined by the below equation I:
P ( T )=Min( mT+b ,Max P ) Equation I:
wherein P is a priority of the task at time T, m is derived through a combination of a value of the task, a lifetime of the task and an execution time of the task, b is determined according to the value of the task and Max (P) represents the highest priority to allocate to the task.
13. The method of claim 7 wherein the time-value curve is used to calculate a quality of service for the task.
14. A device comprising a non-transitory computer readable medium accessible by a resource allocator, the computer readable medium for storing a data structure comprising, for each one of a plurality of enquired tasks associated with the resource, a time value-curve defining a temporal priority to provide to the associated task as a function of time, the time value curve of the data structure being accessed by the resource controller to control access to the resource.