Combining batch and queueable technologies in a salesforce platform for large volume parallel processing
US-2017372246-A1 · Dec 28, 2017 · US
US10397309B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-10397309-B2 |
| Application number | US-201514711485-A |
| Country | US |
| Kind code | B2 |
| Filing date | May 13, 2015 |
| Priority date | May 13, 2015 |
| Publication date | Aug 27, 2019 |
| Grant date | Aug 27, 2019 |
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.
The technology disclosed describes systems and methods for implementing global profiling to track resource usage and performance for multiple threads across multiple servers for a cloud-based system. This disclosed technology provides global profiling to track resource usage across any part of a transaction as it passes between layers of a computing stack regardless of the language being executed, on logically different virtual machines across multiple servers. After data collection stops, the disclosed technology combines the results into a configurable profile view that accurately represents the order of execution of applications and methods, as though they ran on one machine. The disclosed technology builds multiple formats of the data files for different display visualizations.
Opening claim text (preview).
What is claimed is: 1. A method comprising: setting filters to control a scope of tracking at least one of service entry data and service exit data, across multiple services running on multiple hardware instances, wherein the setting the filters comprises configuring transaction invocations to invoke cascading service invocations of the multiple services; running an interpreter, configured to be run as an instance on the multiple hardware instances, to specify a profiled service, profiled method, or profiled class, corresponding to the service entry data or the service exit data for tracking as set in the filters, to receive a transaction ID among the multiple services, and to spawn an autonomous log unit upon entry or exit of any of the multiple services that correspond to the profiled service, profiled method, or profiled class, at an event boundary corresponding to the entrance or the exit; applying the filters so that the autonomous log unit records at least one of the entry and exit of the multiple services corresponding to the profiled service, profiled method, or profiled class, wherein, as a result of a given transaction invocation of the transaction invocations, the data captured by the autonomous log unit comprises: a transaction ID configured to span services and classes invoked following the given transaction invocation, a URI for the given transaction invocation, an identifier for the service or class entered or exited, a time stamp of a given service entry of the service entries or a given service exit of the service exits; and a CPU time corresponding to the given transaction invocation; analyzing performance of at least some of the transaction invocations by organizing the data captured by the autonomous log unit across the multiple services, organizing the autonomous log unit into nested service invocations by corresponding transaction IDs of the transaction invocations, and generating a single profile view of performance metrics of the cascading service invocations; persisting results of the analyzing; implementing service protection process that comprises determining, based on the single profile view, that the CPU time corresponding to the given transaction invocation exceeds a maximum CPU time corresponding to the given transaction; and upon the determining that the CPU time corresponding to the given transaction invocation exceeds a maximum CPU time corresponding to the given transaction invocation, enforcing the governor limit for the given transaction invocation via the interpreter, wherein the maximum CPU time is determined based at least in part on whether the given transaction invocation corresponds to a synchronous process or to an asynchronous process. 2. The method of claim 1 , wherein service invocation wrappers invoke the autonomous log unit for the multiple services. 3. The method of claim 1 , further comprising receiving a selection of a test profile and setting the filters with values from the test profile. 4. The method of claim 1 , wherein the maximum CPU time corresponding to the given transaction invocation is a predetermined value depending on whether the given transaction invocation corresponds to a synchronous process or an asynchronous process. 5. The method of claim 1 , wherein setting the filters further includes setting a selected user ID, and wherein the captured data for each service entered further includes the selected user ID. 6. The method of claim 1 , wherein setting the filters further includes setting a selected organization ID, and the captured data for each service entered further includes the selected organization ID. 7. The method of claim 1 , wherein the captured data for each service entered further includes an identifier for a calling service that invoked the service entered. 8. The method of claim 1 , wherein the captured data for each service entered further includes a URI for the service entered. 9. The method of claim 1 , wherein the filters include a minimum elapsed time threshold to be met before invoking the autonomous log unit. 10. The method of claim 1 , wherein the filters include a set of server IDs for servers from which the multiple services are configured to capture data. 11. The method of claim 1 , wherein a scope of profile reporting is limited by an option to mark a service or class as a terminal profiling level, whereby child services or classes invoked by the marked service or class are hidden when reporting the results of analyzing the performance. 12. A computer implemented system applied to tracking resource usage of a cloud based system, the computer implemented system including: a processor; and memory coupled to the processor, wherein the processor is configured to perform operations comprising: setting filters to control a scope of tracking at least one of service entry data and service exit data across multiple services running on multiple hardware instances, wherein the setting the filters comprises configuring transaction invocations to invoke cascading service invocations of the multiple services; running an interpreter, configured to be run as an instance on the multiple hardware instances, to specify a profiled service, profiled method, or profiled class, corresponding to the service entry data or the service exit data for tracking as set in the filters, to receive a transaction ID among the multiple services, and to spawn an autonomous log unit upon entry or exit of any of the multiple services that correspond to the profiled service, profiled method, or profiled class, at an event boundary corresponding to the entrance or the exit; applying the filters so that the autonomous log unit records at least one of the entry and exit of the multiple services corresponding to the profiled service, profiled method, or profiled class, wherein, as a result of a given transaction invocation of the transaction invocations, the data captured by the autonomous log unit comprises: a transaction ID configured to span services and classes invoked following the given transaction invocation, a URI for the given transaction invocation, an identifier for the service or class entered or exited, a time stamp of a given service entry of the service entries or a given service exit of the service exits; and a CPU time corresponding to the given transaction invocation; analyzing performance of at least some of the transaction invocations, by organizing the data captured by the autonomous log unit across the multiple services, organizing the autonomous log unit into nested service invocations by corresponding transaction IDs of the transaction invocations, and generating a single profile view of performance metrics of the cascading service invocations; persisting results of the analyzing; implementing service protection process that comprises determining, based on the single profile view, that the CPU time corresponding to the given transaction invocation exceeds a maximum CPU time corresponding to the given transaction; and upon the determining that the CPU time corresponding to the given transaction invocation exceeds a maximum CPU time corresponding to the given transaction invocation, enforcing the governor limit for the given transaction invocation via the interpreter, wherein the maximum CPU time is determined based at least in part on whether the given transaction invocation corresponds to a synchronous process or to an asynchronous process. 13. The computer implemented system of claim 12 , wherein service invocation wrappers invoke the autonomous log unit for the multiple services. 14. The computer implemented system of claim 12 , where
comprising specially adapted graphical user interfaces [GUI] · CPC title
wherein the managed service relates to distributed or central networked applications · CPC title
in which an application is distributed across nodes in the network (software deployment G06F8/60; multiprogramming arrangements G06F9/46) · CPC title
Electricity · mapped topic
Measuring contribution of individual network components to actual service level · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.