Back to results
US 2019/0317836 A1Published application
Per-request event detection to improve request-response latency
AssigneeMicrosoft Technology Licensing, LLC
InventorsMatthew Christopher Kuzior, Harsh Satyanarayan Dangayach, Alexander Lawrence Wilkins, Matthew John Smith
Life of this patent
Estimating the term…
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.
Claims20
A computing system, comprising:
- request receiving logic that receives a request, assigns the request a transaction identifier and identifies 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;
- task execution logic, in a first worker thread, that activates computing subroutines in the computing system to execute the tasks in a first workflow of the identified workflows;
- a memory that stores a runtime stack indicative of the computing subroutines of the computing system that are active;
- event raising logic that raises a latency event when a latency operation is performed by the task execution logic in executing the tasks in the first workflow;
- time capture logic that captures a time stamp;
- stack trace capture logic that captures a stack trace of the runtime stack;
- event processing logic, external to the first worker thread, that detects the latency event and generates control signals to control the time capture logic to capture a timestamp and to control the stack trace capture logic to capture a stack trace of the runtime stack, in response to the latency event;
- and
- data aggregation logic that aggregates captured timestamps and captured stack traces across the plurality of different workflows corresponding to the request, based on the transaction identifier.
6 more elements
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 latency event, with the first worker thread, when a latency operation is performed in executing the tasks in the first workflow;
- detecting the latency event at an event detector that is separate from the first worker thread;
- generating control signals to capture a timestamp and to capture a stack trace of the runtime stack, in response to the latency event;
- and
- aggregating captured timestamps and captured 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.
7 more elements
A computing system, comprising:
- request receiving logic that receives a request, assigns the request a transaction identifier and identifies 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;
- task execution logic, in a first worker thread, that activates computing subroutines in the computing system to execute the tasks in a first workflow of the identified workflows;
- a memory that stores a runtime stack indicative of the computing subroutines of the computing system that are active;
- event raising logic that raises a latency event when a latency operation is performed by the task execution logic in executing the tasks in the first workflow;
- time capture logic that captures a time stamp;
- stack trace capture logic that captures a stack trace of the runtime stack;
- event processing logic, external to the first worker thread, that detects the latency event and generates control signals to control the time capture logic to capture a timestamp and to control the stack trace capture logic to capture a stack trace of the runtime stack, in response to the latency event;
- and
- data aggregation logic that aggregates captured timestamps and captured 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.
6 more elements
Dependencies are inferred from the claim text.