Scaling past the java virtual machine thread limit

US9727356B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9727356-B2
Application numberUS-201514833181-A
CountryUS
Kind codeB2
Filing dateAug 24, 2015
Priority dateAug 24, 2015
Publication dateAug 8, 2017
Grant dateAug 8, 2017

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.

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.

First claim

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.

Assignees

Inventors

Classifications

  • 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

  • G06F9/4552Primary

    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

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 US9727356B2 cover?
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 or…
Who is the assignee on this patent?
IBM
What technology area does this patent fall under?
Primary CPC classification G06F9/4552. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Aug 08 2017 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 2 related publications on this page (citations in our corpus or others sharing the same primary CPC).