Compression techniques for encoding stack trace information
First Claim
1. A computer-implemented method comprising:
- receiving, by a computer, a first stack trace including a first sequence of stack frames;
generating, based at least in part on the first sequence of stack frames, a first trace signature that represents the first sequence of stack frames;
receiving, by the computer, one or more subsequent stack traces; and
for at least one of the one or more subsequent stack traces;
determining whether a subsequent trace signature has been generated to represent a subsequent sequence of stack frames included by the at least one of the one or more subsequent stack traces; and
based at least in part on determining that the subsequent trace signature has not been generated;
determining, from at least one of the one or more subsequent stack traces, a second stack trace signature including a second sequence of stack frames;
determining that the first sequence of stack frames and the second sequence of stack frames share a matching sequence of stack frames;
determining a second trace signature based at least in part of the matching sequence of stack frames; and
generating, based at least in part on the second trace signature and other subsequent trace signatures that were generated based at least in part on the second trace signature, the subsequent trace signature to represent the subsequent sequence of stack frames.
1 Assignment
0 Petitions
Accused Products
Abstract
Embodiments provide a thread classification method that represents stack traces in a compact form using classification signatures. Some embodiments can receive a stack trace that includes a sequence of stack frames. Some embodiments may generate, based on the sequence of stack frames, a trace signature that represents the set. Some embodiments may receive one or more subsequent stack traces. For each of the one or more subsequent stack traces, some embodiments may determine whether a subsequent trace signature has been generated to represent the sequence of stack frames included within the subsequent stack trace. If not, some embodiments may generate, based on the trace signature and other subsequent trace signatures that were generated based on the trace signature, the subsequent trace signature to represent the subsequent sequence of stack frames.
-
Citations
20 Claims
-
1. A computer-implemented method comprising:
-
receiving, by a computer, a first stack trace including a first sequence of stack frames; generating, based at least in part on the first sequence of stack frames, a first trace signature that represents the first sequence of stack frames; receiving, by the computer, one or more subsequent stack traces; and for at least one of the one or more subsequent stack traces; determining whether a subsequent trace signature has been generated to represent a subsequent sequence of stack frames included by the at least one of the one or more subsequent stack traces; and based at least in part on determining that the subsequent trace signature has not been generated; determining, from at least one of the one or more subsequent stack traces, a second stack trace signature including a second sequence of stack frames; determining that the first sequence of stack frames and the second sequence of stack frames share a matching sequence of stack frames; determining a second trace signature based at least in part of the matching sequence of stack frames; and generating, based at least in part on the second trace signature and other subsequent trace signatures that were generated based at least in part on the second trace signature, the subsequent trace signature to represent the subsequent sequence of stack frames. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A system comprising:
-
one or more processors; and a memory accessible to the one or more processors, the memory storing one or more instructions that, upon execution by the one or more processors, causes the one or more processors to; receive a first stack trace including a first sequence of stack frames; generate, based at least in part on the first sequence of stack frames, a first trace signature that represents the first sequence of stack frames, wherein the first trace signature corresponds to a first tuple, wherein the first tuple includes a first binary tree that includes a first node as a root node of the first binary tree, wherein the first node represents the first sequence of stack frames; receive one or more subsequent stack traces including a second stack trace, the second stack trace including a second sequence of stack frames; and for at least one of the one or more subsequent stack traces; determine whether a subsequent trace signature has been generated to represent a subsequent sequence of stack frames included by the at least one of the one or more subsequent stack traces; and based at least in part on determining that the subsequent trace signature has not been generated; determine, based at least in part on the at least one of the one or more subsequent stack traces, a second stack trace signature including a second sequence of stack frames; generate a second node based at least in part on comparing the first sequence of stack frames against the second sequence of stack frames; generate a second tuple including a second binary tree, wherein the second binary tree includes the second node; generate a second trace signature representing the second sequence of stack frames, the second trace signature corresponding to the second tuple; and generate, based at least in part on the first trace signature and other subsequent trace signatures that were generated based at least in part on the first trace signature, the subsequent trace signature to represent the subsequent sequence of stack frames. - View Dependent Claims (12, 13, 14)
-
-
15. A non-transitory computer-readable medium storing one or more instructions that, upon execution by one or more processors, cause the one or more processors to:
-
receive a first stack trace including a first sequence of stack frames; generate, based at least in part on the first sequence of stack frames, a first trace signature that represents the first sequence of stack frames, wherein the first trace signature corresponds to a first tuple, wherein the first tuple includes a first binary tree that includes a first node as a root node of the first binary tree, wherein the first node represents the first sequence of stack frames; receive, by the computer, one or more subsequent stack traces including a second stack trace, the second stack trace including a second sequence of stack frames; and for at least one of the one or more subsequent stack traces; determine whether a subsequent trace signature has been generated to represent a subsequent sequence of stack frames included by the at least one of the one or more subsequent stack traces; and based at least in part on determining that the subsequent trace signature has not been generated; determine, based at least in part on the at least one of the one or more subsequent stack traces, a second stack trace signature including a second sequence of stack frames; generate a second node based at least in part on comparing the first sequence of stack frames against the second sequence of stack frames; generate a second tuple including a second binary tree, wherein the second binary tree includes the second node; generate a second trace signature representing the second sequence of stack frames, the second trace signature corresponding to the second tuple; and generate, based at least in part on the second trace signature and other subsequent trace signatures that were generated based at least in part on the second trace signature, the subsequent trace signature to represent the subsequent sequence of stack frames. - View Dependent Claims (16, 17, 18, 19, 20)
-
Specification