Thread pool management

US10061619B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-10061619-B2
Application numberUS-201514725078-A
CountryUS
Kind codeB2
Filing dateMay 29, 2015
Priority dateMay 29, 2015
Publication dateAug 28, 2018
Grant dateAug 28, 2018

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, a first task of the plurality of tasks to a first thread pool of a plurality of thread pools for execution, wherein the first task of the plurality of tasks is assigned to the first thread pool of the plurality of thread pools in view of a previous execution time associated with the first task of the plurality of tasks that is less than or equal to a threshold execution time; designating a second thread pool of the plurality of thread pools to execute one or more of the plurality of tasks having an execution time that exceeds the threshold execution time; determining a first execution time associated with the first task of the plurality of tasks exceeds the threshold execution time; storing a first state of the first task of the plurality of tasks at an execution check-point associated with the first task of the plurality of tasks; and in response to the storing of the first state of the first task of the plurality of tasks, reassigning, by the processing device, the first task of the plurality of tasks to the second thread pool of the plurality of thread pools in view of the determining that the first execution time associated with the first task of the plurality of tasks exceeds the threshold execution time. 2. The method of claim 1 , wherein the action comprises provisioning a machine. 3. The method of claim 1 , wherein the first thread pool of the plurality of thread pools is designated to execute one or more of the plurality of tasks having an execution time that is less than or equal to the threshold execution time. 4. The method of claim 1 , wherein the first task of the plurality of tasks is assigned to the first thread pool of the plurality of thread pools in view of a comparison of the previous execution time associated with the first task of the plurality of tasks and the threshold execution time. 5. The method of claim 1 , further comprising determining a size of an object associated with the first task of the plurality of tasks. 6. The method of claim 1 , wherein each of the plurality of thread pools comprises at least one of a thread or a worker. 7. A system comprising: a memory to store instructions; and a processing device, operatively coupled to the memory, the processing device to execute the instructions 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 a first task of the plurality of tasks to a first thread pool of a plurality of thread pools for execution, wherein the first task of the plurality of tasks is assigned to the first thread pool of the plurality of thread pools in view of a previous execution time associated with the first task of the plurality of tasks that is less than or equal to a threshold execution time; designate a second thread pool of the plurality of thread pools to execute one or more of the plurality of tasks having an execution time that exceeds the threshold execution time; determine a first execution time associated with the first task of the plurality of tasks exceeds the threshold execution time; store a first state of the first task of the plurality of tasks at an execution check-point associated with the first task of the plurality of tasks; and in response to the first state of the first task of the plurality of tasks being stored, reassign the first task of the plurality of tasks to the second thread pool of the plurality of thread pools in view of the first execution time associated with the first task of the plurality of tasks exceeding the threshold execution time. 8. The system of claim 7 , wherein the action comprises provisioning a machine. 9. The system of claim 7 , wherein the first thread pool of the plurality of thread pools is designated to execute one or more of the plurality of tasks having an execution time that is less than or equal to the threshold execution time. 10. The system of claim 7 , wherein the first task of the plurality of tasks is assigned to the first thread pool of the plurality of thread pools in view of a comparison of the previous execution time associated with the first task of the plurality of tasks and the threshold execution time. 11. The system of claim 7 , wherein the processing device is to further execute the instructions to determine a size of an object associated with the first task of the plurality of tasks. 12. The system of claim 7 , wherein each of the plurality of thread pools comprises at least one of a thread or a worker. 13. A non-transitory machine-readable storage medium storing 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 a first task of the plurality of tasks to a first thread pool of a plurality of thread pools for execution, wherein the first task of the plurality of tasks is assigned to the first thread pool of the plurality of thread pools in view of a previous execution time associated with the first task of the plurality of tasks that is less than or equal to a threshold execution time; designate a second thread pool of the plurality of thread pools to execute one or more of the plurality of tasks having an execution time that exceeds the threshold execution time; determine a first execution time associated with the first task of the plurality of tasks exceeds the threshold execution time; store a first state of the first task of the plurality of tasks at an execution check-point associated with the first task of the plurality of tasks; and in response to the first state of the first task of the plurality of tasks being stored, reassign the first task of the plurality of tasks to the second thread pool of the plurality of thread pools in view of the first execution time associated with the first task of the plurality of tasks exceeding the threshold execution time. 14. The non-transitory machine-readable storage medium of claim 13 , wherein the processing device is further to determine a size of an object associated with the first task of the plurality of tasks. 15. The non-transitory machine-readable storage medium of claim 13 , wherein the first thread pool of the plurality of thread pools is designated to execute one or more of the plurality of tasks having an execution time that is less than or equal to the threshold execution time. 16. The non-transitory machine-readable storage medium of claim 13 , wherein the first task of the plurality of tasks is assigned to the first thread pool of the plurality of thread pools in view of a comparison of the previous execution time associated with the first task of the plurality of tasks and the threshold execution time.

Assignees

Inventors

Classifications

  • Thread allocation · CPC title

  • considering the load · CPC title

  • G06F9/46Primary

    Multiprogramming arrangements · CPC title

  • 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

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 US10061619B2 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/46. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Aug 28 2018 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 1 related publication on this page (citations in our corpus or others sharing the same primary CPC).