Method and apparatus to use DRAM as a cache for slow byte-addressible memory for efficient cloud applications
US-12174739-B2 · Dec 24, 2024 · US
US9800519B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-9800519-B2 |
| Application number | US-201414465646-A |
| Country | US |
| Kind code | B2 |
| Filing date | Aug 21, 2014 |
| Priority date | Aug 21, 2014 |
| Publication date | Oct 24, 2017 |
| Grant date | Oct 24, 2017 |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
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.
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
Multiprogramming arrangements · CPC title
Suspend and resume; Hibernate and awake · CPC title
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
Distributed allocation of resources, e.g. bandwidth brokers · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.