Systems and methods for allocating work for various types of services among nodes in a distributed computing system
US-2015281114-A1 · Oct 1, 2015 · US
US2016350157A1 · US · A1
| Field | Value |
|---|---|
| Publication number | US-2016350157-A1 |
| Application number | US-201514725078-A |
| Country | US |
| Kind code | A1 |
| Filing date | May 29, 2015 |
| Priority date | May 29, 2015 |
| Publication date | Dec 1, 2016 |
| Grant date | — |
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.
Aspects of the disclosure provide for mechanisms for dynamically managing thread pools in a computer system. A method of the disclosure includes receiving a user request to perform an action in a computer system; determining an execution plan for the user request, wherein the execution plan comprises a plurality of tasks; assigning, by a processing device, each of the plurality of tasks to one of a plurality of thread pools for execution; monitoring executions of the plurality of tasks in the thread pools; and reassigning, by the processing device, a first task of the plurality of tasks to a new thread pool in view of the monitoring.
Opening claim text (preview).
What is claimed is: 1 . A method, comprising: receiving a user request to perform an action in a computer system; determining an execution plan for the user request, wherein the execution plan comprises a plurality of tasks; assigning, by a processing device, each of the plurality of tasks to one of a plurality of thread pools for execution; monitoring executions of the plurality of tasks in the thread pools; and reassigning, by the processing device, a first task of the plurality of tasks to a new thread pool in view of the monitoring. 2 . The method of claim 1 , wherein the action comprises provisioning a machine. 3 . The method of claim 1 , wherein assigning each of the plurality of tasks to one of the plurality of thread pools for execution comprises assigning the tasks to one of the thread pools that is associated with a predetermined threshold execution time. 4 . The method of claim 1 , wherein assigning each of the plurality of tasks to one of a plurality of thread pools for execution comprises assigning the first task to a first thread pool associated with a first threshold execution time. 5 . The method of claim 4 , further comprising: determining an execution time for the first task in view of information related to previous execution of the task; and assigning the first task to the first thread pool in view of the determined execution time. 6 . The method of claim 4 , further comprising: determining a size of an object associated with the first task; and assigning the first task to the first thread pool in view of the size of the object. 7 . The method of claim 4 , wherein reassigning the first task to a new thread pool in view of the monitoring comprises reassigning the first task to a second thread pool of the plurality of thread pools in response to determining that the first task has been executed in the first thread pool for a predetermined time period. 8 . The method of claim 7 , wherein the second thread pool is associated with a second threshold execution time that is greater than the first threshold execution time. 9 . The method of claim 1 , wherein each of the plurality of thread pools comprises at least one of a thread or a worker. 10 . A system, comprising: a memory; and a processing device, communicably coupled to the memory, to: receive a user request to perform an action in a computer system; determine an execution plan for the user request, wherein the execution plan comprises a plurality of tasks; assign each of the plurality of tasks to one of a plurality of thread pools for execution; monitor executions of the plurality of tasks in the thread pools; and reassign a first task of the plurality of tasks to a new thread pool in view of the monitoring. 11 . The system of claim 10 , wherein the action comprises provisioning a machine. 12 . The system of claim 10 , wherein, to assign each of the plurality of tasks to one of the plurality of thread pools for execution, the processing device is further to assign the tasks to one of the thread pools that is associated with a predetermined threshold execution time. 13 . The system of claim 10 , wherein, to assign each of the plurality of tasks to one of the plurality of thread pools for execution, the processing device is further to assign the first task to a first thread pool associated with a first threshold execution time. 14 . The system of claim 13 , wherein the processing device is further to: determine an execution time for the first task in view of information related to previous execution of the task; and assign the first task to the first thread pool in view of the determined execution time. 15 . The system of claim 13 , wherein the processing device is further to: determine a size of an object associated with the first task; and assign the first task to the first thread pool in view of the size of the object. 16 . The system of claim 13 , wherein, to reassign the first task to a new thread pool in view of the monitoring, the processing device is further to reassign the first task to a second thread pool of the plurality of thread pools in response to determining that the first task has been executed in the first thread pool for a predetermined time period. 17 . The system of claim 16 , wherein the second thread pool is associated with a second threshold execution time that is greater than the first threshold execution time. 18 . The system of claim 10 , wherein each of the plurality of thread pools comprises at least one of a thread or a worker. 19 . A non-transitory machine-readable storage medium including instructions that, when accessed by a processing device, cause the processing device to: receive a user request to perform an action in a computer system; determine an execution plan for the user request, wherein the execution plan comprises a plurality of tasks; assign, by the processing device, each of the plurality of tasks to one of a plurality of thread pools for execution, wherein the processing device is further to assign the first task to a first thread pool associated with a threshold time period; monitor executions of the plurality of tasks in the thread pools; and reassign, by the processing device, a first task of the plurality of tasks to a new thread pool in view of the monitoring in response to determining that the first task has been executed in the first thread pool for the threshold time period. 20 . The non-transitory machine-readable storage medium of claim 19 , wherein the processing device is further to: determine a size of an object associated with the first task; and assign the first task to the first thread pool in view of the size of the object.
the resource being a machine, e.g. CPUs, Servers, Terminals · CPC title
considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration (scheduling strategies G06F9/4881 and subgroups) · CPC title
Multiprogramming arrangements · CPC title
Thread allocation · CPC title
considering the load · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.