Equitable sharing of system resources in workflow execution

US9800519B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9800519-B2
Application numberUS-201414465646-A
CountryUS
Kind codeB2
Filing dateAug 21, 2014
Priority dateAug 21, 2014
Publication dateOct 24, 2017
Grant dateOct 24, 2017

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

A method may be practiced in a distributed computing environment that provides computing resources to a plurality tenants. The method includes acts for allocating a limited set of system resources to the tenants. The method includes identifying a resource slice. The method further includes identifying an executing tenant workload. Checkpoint characteristics are identified for the executing tenant workload. Based on the checkpoint characteristics and the resource slice, a task eviction event is identified.

First claim

Opening claim text (preview).

What is claimed is: 1. A method for efficiently allocating a limited set of resources of a computer system to perform work on one or more workloads, the method being performed by one or more processors of the computer system, the method comprising: after identifying the computer system's resources, slicing the computer system's resources to generate one or more resource slices, the one or more resource slices being usable to complete assigned workloads; receiving a workload at the computer system; assigning the workload to a resource slice for execution, wherein a queue is associated with the resource slice, and wherein the workload is placed in the queue while waiting to be executed; after determining that the workload includes one or more checkpoints, determining a proximity between at least one of the workload's checkpoints and an end portion of the resource slice; based on (1) the proximity between the at least one of the workload's checkpoints and the end portion of the resource slice and (2) one or more characteristics of the resource slice, determining an eviction time to evict the workload from the resource slice; after determining that the proximity between the at least one of the workload's checkpoints and the end portion of the resource slice satisfies a proximity requirement, causing the resource slice to execute the workload beyond the eviction time; and after the eviction time has elapsed, causing the workload to be evicted from the resource slice. 2. The method of claim 1 , wherein the one or more resource slices are one or more of a timed amount of processor usage. 3. The method of claim 1 , wherein causing the workload to be evicted from the resource slice comprises: evicting the workload from the resource slice within a predetermined extension beyond the eviction time. 4. The method of claim 1 , wherein the resource slice comprises one or more of: a time slice, a number of commands, an amount of processor resources, an amount of network resources, an amount of storage resources, an amount of sandbox execution environment resources, an amount of memory, or an amount of I/O. 5. The method of claim 1 , wherein the resource slice is dynamically configurable. 6. The method of claim 1 , wherein the method further comprises: determining that the workload has previously been evicted from the resource slice without being fully executed; and in response to the determination that the workload has not been fully executed, performing a corrective function. 7. The method of claim 6 , wherein the corrective function comprises terminating the workload. 8. The method of claim 6 , wherein the corrective function comprises extending the resource slice. 9. The method of claim 1 , wherein the method further comprises: identifying that a different queue of a different resource slice is empty; and in response to identifying that the different resource slice does not have any queued workloads, extending the eviction time. 10. The method of claim 1 , wherein the method further comprises: notifying a user of constructive treatment of the workload based on the plurality of checkpoints. 11. One or more computer-readable hardware storage devices having stored thereon computer-executable instructions, the computer-executable instructions being executable by one or more processors of a computer system to cause the computer system to efficiently allocate a limited set of resources of the computer system to perform work on one or more workloads by causing the computer system to: after identifying the computer system'sresources, slice the computer system's resources to generate one or resource slices, the one or more resource slices being usable to complete assigned workloads; receive a workload at the computer system; assign the workload to a resource slice for execution, wherein a queue is associated with the resource slice, and wherein the workload is placed in the queue while waiting to be executed; after determining that the workload includes one or more checkpoints, determine a proximity between at least one of the workload's checkpoints and an end portion of the resource slice; based on (1) the proximity between the at least one of the workload's checkpoints and the end portion of the resource slice and (2) one or more characteristics of the resource slice, determine an eviction time to evict the workload from the resource slice; after determining that the proximity between the at least one of the workload's checkpoints and the end portion of the resource slice satisfies a proximity requirement, cause the resource slice to execute the workload beyond the eviction time; and after the eviction time has elapsed, cause the workload to be evicted from the resource slice. 12. The computer readable media of claim 11 , wherein execution of the computer-executable instructions further causes the computer system to: identify that a different queue of a different resource slice is empty; and extend the eviction time. 13. The computer readable media of claim 11 , wherein execution of the computer-executable instructions further causes the computer system to extend the resource slice. 14. The computer readable media of claim 11 , wherein execution of the computer-executable instructions further causes the computer system to: terminate the workload when a predetermined number of task evictions are performed. 15. A computer system comprising: one or more processors; and one or more computer-readable hardware storage devices having stored thereon computer-executable instructions, the computer-executable instructions being executable by the one or more processors to cause the computer system to efficiently allocate resources of the computer system to perform work on one or more workloads by causing the computer system to: after identifying the computer system's resource, slices the computer system's resources to generate one or more resource slices, the one or more resource slices being usable to complete assigned workloads; receive a workload the computer system; assign the workload to a resource slice for execution, wherein a queue is associated with the resource slice, and wherein the workload is placed in the queue while waiting to be executed; after determining that the workload includes one or more checkpoints, determine a proximity between at least one of the workload's checkpoints and an end portion of the resource slice; based at least partially on the proximity between the at least one of the workload's checkpoints and the end portion of the resource slice, determine an eviction time to evict the workload from the resource slice; after determining that the proximity between the at least one of the workload's checkpoints and the end portion of the resource slice satisfies a proximity requirement, cause the resource slice to execute the workload beyond the eviction time; and after the eviction time has elapsed, cause the workload to be evicted from the resource slice. 16. The computer system of claim 15 , wherein the eviction time is extendable upon payment of a premium. 17. The computer system of claim 15 , wherein execution of the computer-executable instructions further causes the computer system to: determine where each of the one or more checkpoints is located in a workflow of the workload. 18. The computer system of claim 15 , wherein execution of the computer-executable instructions further causes the computer system to: determine whether the workload has failed to be fully executed by the resource slice; and upon dete

Assignees

Inventors

Classifications

  • Multiprogramming arrangements · CPC title

  • Suspend and resume; Hibernate and awake · CPC title

  • G06F9/485Primary

    Task life-cycle, e.g. stopping, restarting, resuming execution (G06F9/4881 takes precedence) · CPC title

  • Techniques for rebalancing the load in a distributed system · CPC title

  • H04L47/783Primary

    Distributed allocation of resources, e.g. bandwidth brokers · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US9800519B2 cover?
A method may be practiced in a distributed computing environment that provides computing resources to a plurality tenants. The method includes acts for allocating a limited set of system resources to the tenants. The method includes identifying a resource slice. The method further includes identifying an executing tenant workload. Checkpoint characteristics are identified for the executing tena…
Who is the assignee on this patent?
Microsoft Technology Licensing Llc
What technology area does this patent fall under?
Primary CPC classification G06F9/485. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Oct 24 2017 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).