US 12,093,165 B2
Automated root cause identification using data flow analysis of plural execution traces
Jordi Mola, Bellevue, WA (US)
Assigned to Microsoft Technology Licensing, LLC, Redmond, WA (US)
Appl. No. 18/557,425
Filed by Microsoft Technology Licensing, LLC, Redmond, WA (US)
PCT Filed May 2, 2022, PCT No. PCT/US2022/072038
§ 371(c)(1), (2) Date Oct. 26, 2023,
PCT Pub. No. WO2022/236243, PCT Pub. Date Nov. 10, 2022.
Claims priority of application No. LU500132 (LU), filed on May 6, 2021.
Prior Publication US 2024/0220397 A1, Jul. 4, 2024
Int. Cl. G06F 9/44 (2018.01); G06F 11/36 (2006.01)
CPC G06F 11/3636 (2013.01) [G06F 11/3644 (2013.01)] 15 Claims
OG exemplary drawing
 
1. A method, implemented at a computer system that includes a processor, for automated root cause identification using data flow analysis of plural execution traces, the method comprising:
based on accessing a first execution trace that records execution of an entity, (i) generating a first data flow dependency graph that at least represents a first data flow from a first set of one or more entity inputs to a first set of one or more entity outputs through a first set of one or more activities, each entity input in the first set of entity inputs and each entity output in the first set of entity outputs having a corresponding value and a corresponding label; and (ii) generating a first topological sorting for the first data flow dependency graph;
based on accessing a second execution trace that records execution of the entity, (i) generating a second data flow dependency graph that at least represents a second data flow from a second set of one or more entity inputs to a second set of one or more entity outputs through a second set of one or more activities, each entity input in the second set of entity inputs and each entity output in the second set of entity outputs having a corresponding value and a corresponding label; and (ii) generating a second topological sorting for the second data flow dependency graph;
identifying a set of one or more entity output pairings, each entity output pairing in the set comprising (i) a corresponding first entity output from the first set of entity outputs, and (ii) a corresponding second entity output from the second set of entity outputs, and in which the corresponding first entity output and the corresponding second entity output in each entity output pairing have a common label and a common topological correspondence, wherein the topological correspondence is based on the generated topological sortings;
identifying a set of one or more mismatched entity output pairings from the set of entity output pairings, each mismatched entity output pairing in the set being mismatched due at least to a corresponding first value of its corresponding first entity output differing from a corresponding second value of its corresponding second entity output;
for at least one mismatched entity output pairing, traversing each of the first data flow dependency graph and the second data flow dependency graph toward a root of each data flow dependency graph, in order to identify a set of one or more entity input pairings as a topological root to the least one mismatched entity output pairing that is causal to the mismatch of the least one mismatched entity output pairing, each entity input pairing in the set comprising (i) a corresponding first entity input from the first set of entity inputs, and (ii) a corresponding second entity inputs from the second set of entity inputs, and in which the corresponding first entity inputs and the corresponding second entity inputs in each entity inputs pairing have (i) a common label, a (ii) common topological correspondence, and mismatched values; and
returning the set of entity input pairings as a root cause for at least one difference between first execution trace and the second execution trace.