Per-request event detection to improve request-response latency
First Claim
Patent Images
1. A computing system, comprising:
- request receiving logic configured to;
receive a request, assign the request a transaction identifier, and identify a plurality of workflows corresponding to the request, each workflow having a set of tasks to be executed to generate a response to the request; and
interact with a plurality of worker threads to execute the plurality of workflows, wherein each worker thread corresponds to one of the workflows and comprises;
task execution logic, in the worker thread, that activates computing subroutines in the computing system to execute the tasks in the corresponding workflow; and
event raising logic, in the worker thread, that raises a latency event when a latency operation is performed by the task execution logic in executing the tasks in the corresponding workflow;
a memory that stores a runtime stack indicative of the computing subroutines of the computing system that are active; and
a latency detection system that is external to the plurality of worker threads and comprises;
an event detector configured to detect the latency events raised by the plurality of worker threads;
time capture logic configured to capture time stamps corresponding to the detected latency events;
stack trace capture logic;
event processing logic configured to control the stack trace capture logic to capture, for each latency event, a stack trace of the runtime stack, in response to the latency event; and
data aggregation logic configured to aggregate the captured timestamps and captured stack traces across the plurality of different workflows corresponding to the request, based on the transaction identifier.
1 Assignment
0 Petitions
Accused Products
Abstract
Events are raised by a worker thread that is executing a workflow, when the worker thread starts, suspends, resumes and ends execution of the workflow. A latency detection system, that is external to the worker thread, detects when these events are raised and logs a timestamp and a stack trace, corresponding to the workflow and the event that was raised.
10 Citations
19 Claims
-
1. A computing system, comprising:
-
request receiving logic configured to; receive a request, assign the request a transaction identifier, and identify a plurality of workflows corresponding to the request, each workflow having a set of tasks to be executed to generate a response to the request; and interact with a plurality of worker threads to execute the plurality of workflows, wherein each worker thread corresponds to one of the workflows and comprises; task execution logic, in the worker thread, that activates computing subroutines in the computing system to execute the tasks in the corresponding workflow; and event raising logic, in the worker thread, that raises a latency event when a latency operation is performed by the task execution logic in executing the tasks in the corresponding workflow; a memory that stores a runtime stack indicative of the computing subroutines of the computing system that are active; and a latency detection system that is external to the plurality of worker threads and comprises; an event detector configured to detect the latency events raised by the plurality of worker threads; time capture logic configured to capture time stamps corresponding to the detected latency events; stack trace capture logic; event processing logic configured to control the stack trace capture logic to capture, for each latency event, a stack trace of the runtime stack, in response to the latency event; and data aggregation logic configured to aggregate the captured timestamps and captured stack traces across the plurality of different workflows corresponding to the request, based on the transaction identifier. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13)
-
-
14. A computer implemented method, comprising:
-
receiving a service request; assigning the service request a transaction identifier; identifying a plurality of workflows corresponding to the request, each workflow having a set of tasks to be executed to generate a response to the request; activating, with a first worker thread, computing subroutines to execute the tasks in a first workflow of the identified workflows; maintaining a runtime stack indicative of the computing subroutines that are active; raising a suspend event, with the first worker thread, indicative of the computing subroutines suspending execution of the tasks in the first workflow; raising a resume event indicative of the computing subroutines resuming execution of the tasks in the first workflow; detecting, at an event detector that is separate from the first worker thread, the suspend event and the resume event; generating control signals to capture a suspend timestamp based on the suspend event; a suspend stack trace; a resume timestamp based on the resume event; and a resume stack trace; generating a suspended time metric indicative of a time that the first workflow was suspended based on the suspend timestamp and the resume timestamp; controlling a data store to generate a suspend-resume event record including a thread identifier indicative of the first worker thread, the suspend timestamp, the suspend stack trace, the resume timestamp, the resume stack trace, and the suspend time metric in the suspend-resume event record; and aggregating the timestamps and the stack traces across the plurality of different workflows corresponding to the request, based on the transaction identifier to identify an end-to-end latency indicative of a time to respond to the request, based on the aggregated timestamps. - View Dependent Claims (15, 16, 17)
-
-
18. A computing system, comprising:
-
at least one processor; and memory storing instructions executable by the at least one processor, wherein the instructions, when executed, configure the computing system to; assign a received request a transaction identifier and identify a plurality of workflows corresponding to the request, each workflow having a set of tasks to be executed to generate a response to the request; activate, using a first worker thread computing subroutines in the computing system to execute the tasks in a first workflow of the identified workflows; store a runtime stack indicative of the computing subroutines of the computing system that are active; raise a suspend event, with the first worker thread, indicative of the computing subroutines suspending execution of the tasks in the first workflow; capture, in response to the suspend event, a timestamp associated with the suspend event and a stack trace of the runtime stack; generate a suspended time metric indicative of a time that the first workflow was suspended based on the timestamp; generate an event record including a thread identifier indicative of the first worker thread, the timestamp, the stack trace, and the suspend time metric; and aggregate the timestamps and the stack traces across the plurality of different workflows corresponding to the request, based on the transaction identifier and to identify an end-to-end latency indicative of a time to respond to the request, based on the aggregated timestamps. - View Dependent Claims (19)
-
Specification