Distributed stream processing
US-2016044081-A1 · Feb 11, 2016 · US
US10747645B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-10747645-B2 |
| Application number | US-201815965026-A |
| Country | US |
| Kind code | B2 |
| Filing date | Apr 27, 2018 |
| Priority date | Apr 27, 2018 |
| Publication date | Aug 18, 2020 |
| Grant date | Aug 18, 2020 |
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.
Expressly turning tracing on and off at each juncture between code that a developer wants to have traced and other code may reduce trace file size but adds computational cost. Described technologies support selectively tracing a process's execution, with some extra tracing done beyond the code the developer wanted traced, but with significantly reduced computational cost, by reducing the number of trace enablement and disablement operations. A trace controller uses a tracing disablement distance variable whose values indicate the computational distance from trace disablement. A distance variable modifier automatically moves the distance variable closer to a stop-tracing value as the process executes. The amount of extra tracing is balanced against the reduction in trace enablement/disablement operations by tuning thresholds, based on information about routine size and computational cost. Operation of the trace controller is illustrated by sample APIs, a tracing state diagram, and a side-by-side comparison, among other items.
Opening claim text (preview).
What is claimed is: 1. A selective execution tracing system, comprising: at least one processor; a digital memory in operable communication with the processor; an executable code which is configured to, upon execution, perform a computer-implemented process, the executable code having one or more first portions which are designated for tracing, and one or more second portions which are not designated for tracing; an execution tracer that traces executing code when tracing is enabled; a trace disabler which is configured to, upon execution, disable tracing by the execution tracer; a trace enabler which is configured to, upon execution, enable tracing by the execution tracer; a trace controller including a distance variable representing a maximum number of instructions of the executable code to trace prior to invoking the trace disabler, the trace controller configured to, upon execution, invoke the trace disabler in conjunction with the distance variable reaching a stop-tracing value and to subsequently invoke the trace enabler in conjunction with the distance variable not having the stop-tracing value; and a distance variable modifier configured to (i) incrementally move the distance variable closer to the stop-tracing value when the one or more second portions of the executable code executes, and (ii) move the distance variable away from the stop-tracing value when the one or more first portions of the executable code executes, wherein, during execution of at least a subset of the one or more second portions, a value of the distance variable results in the execution tracer tracing the at least a subset of the one or more second portions. 2. The selective execution tracing system of claim 1 , wherein the system is further characterized in that a cost-with-distance-variable of the system is less than a cost-without-distance-variable of the system, where: the cost-with-distance-variable is a total computational cost of executing the executable code configured with the trace controller, comprising executing an initial invocation of the trace enabler, executing modifications of the distance variable, executing one or more invocations of the trace disabler when the distance variable reaches a stop-tracing value and executing any subsequent invocations of the trace enabler, and including the computational cost of tracing when tracing is enabled; and the cost-without-distance-variable is a total computational cost of executing a variation of the executable code that is configured without the trace controller, in which the distance variable is not used, in which the trace enabler is invoked with each entry to an executable code portion which is designated for tracing, and the trace disabler is invoked with each exit from an executable code portion which is designated for tracing, and including the computational cost of tracing when tracing is enabled; wherein the computational costs are measured by at least one of the following: total number of instructions executed, total number of processor cycles performed, total system clock time elapsed, or number of trace entries. 3. The selective execution tracing system of claim 1 , wherein the one or more first portions of the executable code which are designated for tracing comprise managed code, namely, code that is configured to run under the control of a runtime which implements at least one of memory garbage collection or code compilation. 4. The selective execution tracing system of claim 1 , wherein at least one first portion of the executable code which is designated for tracing consists of native code, namely, code that is configured to run without a runtime. 5. The selective execution tracing system of claim 1 , wherein the trace controller comprises: a set-N routine which has a local-n parameter and which is configured to, upon execution, set a thread local variable, denoted here as N, to the value of the parameter local-n; a get-N routine which is configured to, upon execution, return the current value of the thread local variable N; a set-DV routine which has a tracing-max parameter and which is configured to, upon execution, set the distance variable to the value of the parameter tracing-max; a get-DV routine which is configured to, upon execution, return the current value of the distance variable; and a try-to-trace routine which is configured to, upon execution, enable tracing of a current thread by the execution tracer, if tracing is not already enabled. 6. The selective execution tracing system of claim 1 , wherein: the distance variable modifier is configured to move the distance variable closer to the stop-tracing value when the one or more second portions of the executable code executes by decrementing the distance variable when the executable code executes; and the trace controller is configured to, upon execution, invoke the trace disabler in conjunction with the distance variable reaching zero as the stop-tracing value and to subsequently invoke the trace enabler in conjunction with the distance variable being positive, the executable code configured to, upon execution, perform at least one of the following to ensure that the distance variable does not equal the stop-tracing value upon entry to any of the one or more first portions of the executable code which are designated for tracing: confirm that the distance variable is nonzero, or set the distance variable to a positive high-count threshold. 7. The selective execution tracing system of claim 6 , wherein the high-count threshold satisfies at least one of the following criteria: the high-count threshold indicates logical infinity; the high-count threshold exceeds a first number of instructions in any code unit of the one or more first portions of the executable code which are designated for tracing; the high-count threshold exceeds a second number of instructions in any routine of the one or more first portions of the executable code which are designated for tracing; the high-count threshold exceeds a third number of instructions in ninety percent of routines of the executable code; or the high-count threshold exceeds an average number of instructions in the routines of the executable code. 8. The selective execution tracing system of claim 6 , wherein the trace controller comprises: an outer high-count-ensuring code in the executable code at an entry point of a code unit, the high-count-ensuring code configured to, upon execution, set the distance variable to a value which is not less than the high-count threshold, wherein the code unit includes at least one of the following: a thread, a function, a routine, a coroutine, an exception handler, or an interrupt handler; a low-count-ensuring code in the executable code prior to a call made to a virtual method within the code unit, the low-count-ensuring code configured to, upon execution, set the distance variable to a nonzero value which is not greater than a nonzero low-count threshold, the low-count threshold being less than the high-count threshold; and an inner high-count-ensuring code in the executable code in a first implementation of the virtual method, configured to, upon execution, set the distance variable to a value which is not less than the high-count threshold; and wherein a second implementation of the virtual method is free of any code setting the distance variable. 9. The selective execution tracing system of claim 6 , wherein the trace controller comprises a high-count-ensuring code in an exception handler, the high-count-ensuring code configured to, upon execution, set the distance variable to a value which is not less than the high-count threshold. 10. A computer-implemented selective execution tracing method
Monitoring of software · CPC title
Configuration details thereof, e.g. installation, enabling, spatial arrangement of the probes · CPC title
by runtime analysis (performance monitoring G06F11/3466) · CPC title
Performance evaluation by tracing or monitoring · CPC title
where the computing system component is a software system · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.