Scaling past the java virtual machine thread limit
US-9513940-B1 · Dec 6, 2016 · US
US9727356B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-9727356-B2 |
| Application number | US-201514833181-A |
| Country | US |
| Kind code | B2 |
| Filing date | Aug 24, 2015 |
| Priority date | Aug 24, 2015 |
| Publication date | Aug 8, 2017 |
| Grant date | Aug 8, 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.
Embodiments of the present invention provide efficient systems and methods for scaling past the Java Virtual Machine (JVM) thread limit in a Java Virtual Machine. Embodiments of the present invention can be used to ensure that a received workload is executed, even if the workload is greater than a JVM thread limit of the system, by spawning a reduced number of threads from a main process, in order to provide enough resources for the effective execution of a received workload.
Opening claim text (preview).
What is claimed is: 1. A method comprising: receiving, by a first Java Virtual Machine (JVM) process, a workload for an application; detecting, by the first JVM process, a threading limit, based on by querying the properties of the JVM; determining, by the first JVM process, whether the workload for the application is above the threading limit; responsive to determining that the workload for the application is above the threading limit, determining a quantity of at least one sub-processes from the first JVM process based on the size of the workload, wherein the at least one sub-process from the first JVM process comprises a 32-bit JVM; spawning, by the first JVM process, one or more new sub-processes, each with a reduced number of threads based on the determined quantity of the at least one sub-process; coordinating, by the first JVM process, the received workload for the application, using inter-process communication (IPC); and executing, by the one or more new sub-processes, the received workload for the application. 2. The method of claim 1 , further comprising: responsive to determining that the workload for the application is not above the threading limit, running, by the first JVM process, the received workload for the application. 3. The method of claim 1 , wherein a number of the determined at least one sub-processes from the first JVM process is based in part on the workload for the application. 4. The method of claim 1 , wherein the first JVM process comprises a 32-bit JVM. 5. The method of claim 1 , further comprising: spawning, by the first JVM process, the determined at least one sub-process from the first JVM process, based on the workload for the application. 6. The method of claim 1 , wherein each of the at least one sub-processes is configured to communicate with the first JVM process. 7. The method of claim 1 , further comprising: responsive to determining that the workload for the application is not above the threading limit, spawning, by the first JVM process, a single JVM instance to run the expected workload. 8. A computer program product comprising: a computer readable storage medium and program instructions stored on the computer readable storage medium, the program instructions comprising: program instructions to receive, by a first Java Virtual Machine (JVM) process, a workload for an application; program instructions to detect, by the first JVM process, a threading limit, based on by querying the properties of the JVM; program instructions to determine, by the first JVM process, whether the workload for the application is above the threading limit; program instructions to, responsive to determining that the workload for the application is above the threading limit, determine a quantity of at least one sub-processes from the first JVM process based on the size of the workload, wherein the at least one sub-process from the first JVM process comprises a 32-bit JVM; program instructions to spawn, by the first JVM process, one or more new sub-processes, each with a reduced number of threads based on the determined quantity of the at least one sub-process; program instructions to coordinate, by the first JVM process, the received workload for the application, using inter-process communication (IPC); and program instructions to execute, by the one or more new sub-processes, the received workload for the application. 9. The computer program product of claim 8 , further comprising: program instructions to, responsive to determining that the workload for the application is not above the threading limit, run, by the first JVM process, the received workload for the application. 10. The computer program product of claim 8 , wherein a number of the determined at least one sub-processes from the first JVM process is based in part on the workload for the application. 11. The computer program product of claim 8 , wherein the first JVM process comprises a 32-bit JVM. 12. The computer program product of claim 8 , further comprising: program instructions to spawn, by the first JVM process, the determined at least one sub-process from the first JVM process, based on the workload for the application. 13. The computer program product of claim 8 , further comprising: responsive to determining that the workload for the application is not above the threading limit, spawning, by the first JVM process, a single JVM instance to run the expected workload. 14. A computer system comprising: one or more computer processors; one or more computer readable storage media; program instructions stored on the one or more computer readable storage media for execution by at least one of the one or more processors, the program instructions comprising: program instructions to receive, by a first Java Virtual Machine (JVM) process, a workload for an application; program instructions to detect, by the first JVM process, a threading limit, based on by querying the properties of the JVM; program instructions to determine, by the first JVM process, whether the workload for the application is above the threading limit; program instructions to, responsive to determining that the workload for the application is above the threading limit, determine a quantity of at least one sub-processes from the first JVM process based on the size of the workload, wherein the at least one sub-process from the first JVM process comprises a 32-bit JVM; program instructions to detect spawn, by the first JVM process, one or more new sub-processes, each with a reduced number of threads based on the determined quantity of the at least one sub-process; program instructions to detect coordinate, by the first JVM process, the received workload for the application, using inter-process communication (IPC); and program instructions to detect execute, by the one or more new sub-processes, the received workload for the application. 15. The computer system of claim 14 , further comprising: program instructions to, responsive to determining that the workload for the application is not above the threading limit, run, by the first JVM process, the received workload for the application. 16. The computer system of claim 14 , wherein a number of the determined at least one sub-processes from the first JVM process is based in part on the workload for the application. 17. The computer system of claim 14 , wherein the first JVM process comprises a 32-bit JVM. 18. The computer system of claim 14 , further comprising: program instructions to spawn, by the first JVM process, the determined at least one sub-process from the first JVM process, based on the workload for the application. 19. The computer system of claim 14 , wherein each of the at least one sub-processes is configured to communicate with the first JVM process. 20. The computer system of claim 14 , further comprising: responsive to determining that the workload for the application is not above the threading limit, spawning, by the first JVM process, a single JVM instance to run the expected workload.
considering the load · CPC title
Creating, deleting, cloning virtual machine instances · CPC title
the resource being a machine, e.g. CPUs, Servers, Terminals · CPC title
Involving translation to a different instruction set architecture, e.g. just-in-time translation in a JVM · CPC title
Hypervisor-specific management and integration aspects · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.