Thread level application partitioning
First Claim
1. A system, comprising:
- one or more processors; and
memory coupled to the one or more processors and configured to store program instructions executable by the processor to implement;
an application server configured to;
receive a request from an application for a thread for use by the application;
in response to the request, check a main thread pool for a free thread; and
assign, as part of a thread partitioning protocol, the free thread from the main thread pool to the request from an application if a number of threads in an application thread array is less than an application thread partition value for the application;
wherein the application server is operable to disable the thread partitioning protocol, wherein if the thread partitioning protocol is disabled, the threads in the main thread pool are used on a first-come, first served basis, wherein if the thread partitioning protocol is enabled, the thread is assigned according to the thread partitioning protocol.
3 Assignments
0 Petitions
Accused Products
Abstract
A system and method for managing threads and thread requests in an application server. If the application is a thread-partitioned application with a request, the thread manager may determine if an application thread array for the application has less than the maximum number of threads partitioned for the application. If it does, the thread manager may retrieve a thread from the main thread pool, and assign it to the request. If it does not, the thread manager may determine if there are any free threads in an application thread array, and if there are, one of the free threads in the application thread array may be assigned to the request. If there are no free threads available in the application thread array, the request may be added to a ready queue.
-
Citations
28 Claims
-
1. A system, comprising:
-
one or more processors; and memory coupled to the one or more processors and configured to store program instructions executable by the processor to implement; an application server configured to; receive a request from an application for a thread for use by the application; in response to the request, check a main thread pool for a free thread; and assign, as part of a thread partitioning protocol, the free thread from the main thread pool to the request from an application if a number of threads in an application thread array is less than an application thread partition value for the application; wherein the application server is operable to disable the thread partitioning protocol, wherein if the thread partitioning protocol is disabled, the threads in the main thread pool are used on a first-come, first served basis, wherein if the thread partitioning protocol is enabled, the thread is assigned according to the thread partitioning protocol. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
-
-
12. A method, comprising:
-
receiving a request from an application for a thread for use by the application; in response to the reguest, checking a main thread pool for a free thread; determining if an application thread array has less threads than an application thread partition value for the application; if a number of threads assigned to the application is less than the application thread partition value for the application, assigning the free thread from the main thread pool to the request; wherein assigninig the free thread to the request is part of a thread partitioning protocol performed when the thread partitioning protocol enabled; and when the thread partitioning is not enabled, assigning threads from the main thread pool on a first-come, first-serve basis. - View Dependent Claims (13, 14, 15, 16, 17, 18, 19, 20)
-
-
21. A computer accessible storage medium, comprising program instructions, wherein the program instructions are computer-executable to:
-
receive a request from an application for a thread for use by the application; determine if an application thread array has less threads than an application thread partition value for the application; if a number of threads assigned to the application is less than the application thread partition value for the application, assign a thread from a main thread pool to the request; if the number of threads assigned to the application is not less than the application thread partition value for the application; check the application thread array for a free thread; and if the application thread array has the free thread, assign the free thread to the request; wherein the program instructions for determining if the application thread array has less threads than the application thread partition value for the application and assigning a thread from a main thread pool to the request is part of a thread partitioning protocol, wherein the program instructions are further executable to perform the thread partitioning protocol if the thread partitioning protocol is enabled, wherein if the thread partitioning protocol is disabled, the program instructions are executable to assign threads from the main thread pool on a first-come, first-serve basis. - View Dependent Claims (22, 23, 24, 25, 26, 27, 28)
-
Specification