Application warmup engine

US10489170B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-10489170-B2
Application numberUS-201715626897-A
CountryUS
Kind codeB2
Filing dateJun 19, 2017
Priority dateJun 19, 2017
Publication dateNov 26, 2019
Grant dateNov 26, 2019

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.

Systems, methods, and computer-readable media for increasing program execution time are described. A computer system may implement a warmup engine that may allow defined portions of code to be pre-loaded (“warmed up”) for execution before application startup. The warmup engine may include warmup logic that warms up a defined portion of code. The mechanisms that trigger the warmup logic are called “warmers,” and each warmer may run in a warmer container. The computer system may execute each of the warmers according to a warmer configuration and may also log errors that may occur during warmer execution. In some implementations, an application may not become available during initialization until (or after) the warmup engine executes the warmers and/or warmup logic. Other embodiments may be described and/or claimed.

First claim

Opening claim text (preview).

The invention claimed is: 1. One or more non-transitory computer-readable media (NTCRM) comprising a set of instructions to implement an application warmup engine (AWE), wherein execution of the set of instructions by at least one processing device of a computing system is to cause the computing system to: initialize a container during an initialization process of an application; execute warmup logic within the container according to a configuration, the warmup logic indicating an action of the application to be performed prior to execution of the application, the configuration indicating parameters for executing the warmup logic; and indicate the application as available for execution after the execution of the warmup logic. 2. The one or more NTCRM of claim 1 , wherein execution of the set of instructions is to cause the computing system to: load the configuration prior to initialization of the container. 3. The one or more NTCRM of claim 1 , wherein the configuration comprises a plurality of parameters, the plurality of parameters include a time after the initialization process to execute the warmup logic, a maximum number of timeouts of the warmup logic, a timeout period, a maximum number of iterations of the warmup logic; and environment type for the warmup logic. 4. The one or more NTCRM of claim 3 , wherein, to execute the warmup logic, execution of the set of instructions is to cause the computing system to: execute the warmup logic at the time after the initialization process indicated by the configuration. 5. The one or more NTCRM of claim 3 , wherein execution of the set of instructions is to cause the computing system to: initialize a timer including a value equal to the timeout period; and invoke a timeout of the warmup logic upon expiration of the timer. 6. The one or more NTCRM of claim 5 , wherein execution of the set of instructions is to cause the computing system to: initialize a counter to count a number of the invoked timeouts; increment the counter for each invoked timeout; and terminate execution of the warmup logic when the counter includes a value equal to the maximum number of timeouts. 7. The one or more NTCRM of claim 1 , wherein the action comprises one or more of: prefetching or preloading desired program code of the application for execution before loading other program code of the application for execution; loading heap memory of the memory system or cache memory of the memory system with data at a predetermined location at a predetermined time; sending a request for data items of a database object to a remote database system, and loading the requested data item into a predetermined location of the memory system upon receipt of the requested data item by the network interface; transitioning desired bytecode from an interpreted state to a compiled state before transitioning other bytecode from the interpreted state to the compiled state; and sending a network request to a remote computing system to access one or more network resources. 8. A computing system, comprising: a memory system comprising instructions for operating a warmup engine; and a processor system coupled with the memory system, the processor system to execute the instructions to: obtain an indication indicating an application initialization process; initialize a warmer container during the application initialization process; execute warmup logic within the warmer container according to a warmup configuration, the warmup logic indicating an action of the application to be performed prior to making the application available, the warmup configuration indicating parameters for executing the warmup logic; and indicate the application as available for execution after the execution of the warmup logic. 9. The computing system of claim 8 , wherein the processor system is to execute the instructions to: load the warmup configuration into the memory system prior to initialization of the container. 10. The computing system of claim 8 , wherein the warmup configuration comprises a plurality of parameters, the plurality of parameters include a time after the initialization process to execute the warmup logic, a maximum number of timeouts of the warmup logic, a timeout period for completing execution of the warmup logic, a maximum number of iterations of the warmup logic; and environment type in which to execute the warmup logic. 11. The computing system of claim 10 , wherein, to execute the warmup logic, the processor system is to execute the instructions to: execute the warmup logic at the time after the initialization process indicated by the warmup configuration. 12. The computing system of claim 10 , wherein the processor system is to execute the instructions to: initialize a timer including a value equal to the timeout period; and invoke a timeout of the warmup logic upon expiration of the timer. 13. The computing system of claim 12 , wherein the processor system is to execute the instructions to: initialize a counter to count a number of the invoked timeouts; increment the counter for each invoked timeout; and terminate execution of the warmup logic when the counter includes a value equal to the maximum number of timeouts. 14. The computing system of claim 8 , wherein the computing system further comprises a network interface, and wherein the action comprises one or more of: prefetching or preloading desired program code of the application for execution before loading other program code of the application for execution; loading heap memory of the memory system or cache memory of the memory system with data at a predetermined location at a predetermined time; controlling the network interface to transmit a request for data items of a database object to a remote database system, and loading the requested data item into a predetermined location of the memory system upon receipt of the requested data item by the network interface; transitioning desired bytecode from an interpreted state to a compiled state before transitioning other bytecode from the interpreted state to the compiled state; and controlling the network interface to transmit a network request to a remote computing system to access one or more network resources. 15. A method for application warmup, the method comprising: initializing, by a computer system, a container during an initialization process of an application; executing, by the computer system, warmup logic within the container according to a configuration, the warmup logic indicating an action of the application to be performed prior to execution of the application, the configuration indicating parameters for executing the warmup logic; and indicating, by the computer system, the application as available for execution after the execution of the warmup logic. 16. The method of claim 15 , further comprising: loading, by the computer system, the configuration prior to initialization of the container, wherein the loading comprises, determining, by the computer system, a current runtime context of the environment in which the application is to execute, reading, by the computer system, the configuration into memory, instantiating, by the computer system, the container based on the configuration, and adding, by the computer system, the container to a list of containers. 17. The method of claim 15 , wherein the configuration comprises a plurality of parameters, the plurality of parameters include a time after the initialization process to execute the warmup logic, a maximum number of timeouts of the warmup logic, a timeout period,

Assignees

Inventors

Classifications

  • Preparing or optimising for loading · CPC title

  • Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators · CPC title

  • Configuring for program initiating, e.g. using registry, configuration files · CPC title

  • Prefetch instructions; cache control instructions · 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 US10489170B2 cover?
Systems, methods, and computer-readable media for increasing program execution time are described. A computer system may implement a warmup engine that may allow defined portions of code to be pre-loaded (“warmed up”) for execution before application startup. The warmup engine may include warmup logic that warms up a defined portion of code. The mechanisms that trigger the warmup logic are call…
Who is the assignee on this patent?
Salesforce Com Inc
What technology area does this patent fall under?
Primary CPC classification G06F9/44578. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Nov 26 2019 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 3 related publications on this page (citations in our corpus or others sharing the same primary CPC).