Dynamic thread pool management

US2016350157A1 · US · A1

Patent metadata
FieldValue
Publication numberUS-2016350157-A1
Application numberUS-201514725078-A
CountryUS
Kind codeA1
Filing dateMay 29, 2015
Priority dateMay 29, 2015
Publication dateDec 1, 2016
Grant date

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.

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.

First claim

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.

Assignees

Inventors

Classifications

  • the resource being a machine, e.g. CPUs, Servers, Terminals · CPC title

  • G06F9/5038Primary

    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

  • G06F9/46Primary

    Multiprogramming arrangements · CPC title

  • Thread allocation · CPC title

  • considering the load · 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 US2016350157A1 cover?
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 …
Who is the assignee on this patent?
Red Hat Inc
What technology area does this patent fall under?
Primary CPC classification G06F9/5038. Mapped technology areas include Physics.
When was this patent published?
Publication date Thu Dec 01 2016 00:00:00 GMT+0000 (Coordinated Universal Time) (A1). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 1 related publication on this page (citations in our corpus or others sharing the same primary CPC).