Checking for access problems with data stores
First Claim
1. One or more non-transitory computer-readable storage media comprising:
- one or more instructions that, when executed by processing logic, cause the processing logic to;
generate an execution control graph that represents an execution of a model, the execution control graph including;
a plurality of nodes,each node, of the plurality of nodes, corresponding to one or more blocks of the model, anda plurality of edges,each edge, of the plurality of edges, extending between two of the plurality of nodes to indicate an execution relationship between the two of the plurality of nodes;
analyze the plurality of edges and the plurality of nodes in the execution control graph;
determine, based on analyzing the plurality of edges and the plurality of nodes, an existence of a particular pattern associated with accessing a data store during the execution of the model,the one or more instruction that, when executed by the processing logic, cause the processing logic to determine the existence of the particular pattern further causing the processing logic to;
generate an expression based on the execution control graph and a condition,the condition representing the particular pattern;
determine, based on the generated expression, whether the condition is satisfied; and
determine the existence of the particular pattern based on determining whether the condition is satisfied,where the condition is satisfied when at least one of;
the data store is accessed to read first data from the data store prior to the data store being accessed to write second data to the data store, or
the data store is accessed to write the second data to the data store prior to the data store being accessed to read the first data from the data store;
generate a result based on determining the existence of the particular pattern,the generated result including information identifying the particular pattern associated with accessing the data store; and
output the result.
1 Assignment
0 Petitions
Accused Products
Abstract
In an embodiment, a technique that may be used to identify a pattern with respect to accessing a data store in a model. The pattern may be a desirable, undesirable, anomalous or some other type of pattern with respect to accessing the data store. The technique may include generating an execution control graph that represents an execution of the model. The execution control graph may be analyzed to identify the pattern. Analysis may include generating an expression based on the execution control graph and a condition to test for and determining, based on the expression, if the condition is met. If the condition is met, the pattern may be said to exist in the model. A result may generated based on the analysis and the result may be output.
-
Citations
24 Claims
-
1. One or more non-transitory computer-readable storage media comprising:
-
one or more instructions that, when executed by processing logic, cause the processing logic to; generate an execution control graph that represents an execution of a model, the execution control graph including; a plurality of nodes, each node, of the plurality of nodes, corresponding to one or more blocks of the model, and a plurality of edges, each edge, of the plurality of edges, extending between two of the plurality of nodes to indicate an execution relationship between the two of the plurality of nodes; analyze the plurality of edges and the plurality of nodes in the execution control graph; determine, based on analyzing the plurality of edges and the plurality of nodes, an existence of a particular pattern associated with accessing a data store during the execution of the model, the one or more instruction that, when executed by the processing logic, cause the processing logic to determine the existence of the particular pattern further causing the processing logic to; generate an expression based on the execution control graph and a condition, the condition representing the particular pattern; determine, based on the generated expression, whether the condition is satisfied; and determine the existence of the particular pattern based on determining whether the condition is satisfied, where the condition is satisfied when at least one of;
the data store is accessed to read first data from the data store prior to the data store being accessed to write second data to the data store, or
the data store is accessed to write the second data to the data store prior to the data store being accessed to read the first data from the data store;generate a result based on determining the existence of the particular pattern, the generated result including information identifying the particular pattern associated with accessing the data store; and output the result. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
-
-
12. A method comprising:
-
generating, using processing logic, an execution control graph that represents an execution of a model, the execution control graph including; a plurality of nodes, each node, of the plurality of nodes, corresponding to one or more blocks of the model, and a plurality of edges, each edge, of the plurality of edges, extending between two of the plurality of nodes to indicate an execution relationship between the two of the plurality of nodes; analyzing, using the processing logic, the plurality of edges and the plurality of nodes; determine an existence of a particular pattern associated with accessing a data store during the execution of the model based on analyzing the plurality of edges and the plurality of nodes, determining the existence of the particular pattern including; generating, using the processing logic, an expression based on the execution control graph and a condition, the condition representing the particular pattern, determining, based on the generated expression, whether the condition is satisfied; and determining the existence of the particular pattern based on determining whether the condition is satisfied, the condition being satisfied when at least one of;
the data store is accessed to read first data from the data store prior to the data store being accessed to write second data to the data store, or
the data store is accessed to write the second data to the data store prior to the data store being accessed to read the first data from the data store; andgenerating, using the processing logic, a result based on whether the expression is satisfied. - View Dependent Claims (13, 14, 15, 16, 17, 18, 19)
-
-
20. A system comprising:
-
an output device; and a processor to; generate an execution control graph including a plurality of nodes and a plurality of edges, the plurality of nodes corresponding to a plurality of blocks associated with a model, the plurality of edges indicating at least one of; dependencies between blocks in the model or hierarchical relationships between blocks in the model, and the execution control graph representing an execution of the model, analyze the plurality of edges in the execution control graph, determine, based on analyzing the plurality of edges in the graph, an existence of a particular pattern associated with accessing a data store during the execution of the model, when determining the existence of the particular pattern, the processor being to; generate an expression based on the execution control graph and a condition,
the condition representing the particular pattern,determine, based on the generated expression, whether the condition is satisfied, and determine the existence of the particular pattern based on determining whether the condition is satisfied,
where the condition is satisfied when at least one of;
the data store is accessed to read first data from the data store prior to the data store being accessed to write second data to the data store, or
the data store is accessed to write the second data to the data store prior to the data store being accessed to read the first data from the data store,generate a result based on determining the existence of the particular pattern, the generated result including information identifying the particular pattern, and output the result via the output device. - View Dependent Claims (21)
-
-
22. A system comprising:
-
one or more devices including at least one processor to; generate an execution control graph that includes a plurality of nodes and a plurality of edges, the plurality of nodes corresponding to a plurality of blocks associated with a model, the plurality of edges indicating at least one of dependencies between blocks in the model or hierarchical relationships between blocks in the model, and the execution control graph representing an execution of the model; analyze the plurality of edges in the execution control graph, determine an existence of a particular pattern associated with accessing a data store during an execution of the model, when determining the existence of the particular pattern, the processor being to; generate an expression based on the execution control graph and a condition, the condition representing the particular pattern, determine, based on the generated expression, whether the condition is satisfied, and determine the existence of the particular pattern based on determining whether the condition is satisfied, wherein the condition is satisfied when at least one of;
the data store is accessed to read first data from the data store prior to the data store being accessed to write second data to the data store, or
the data store is accessed to write the second data to the data store prior to the data store being accessed to read the first data from the data store; andtransform a graphical display of the model to indicate one or more portions of the model associated with the identified pattern.
-
-
23. One or more non-transitory computer-readable storage media storing instructions, the instructions comprising:
one or more instructions that when executed by one or more processors, cause the one or more processors to; generate an execution control graph that represents an execution of a model; the execution control graph including a plurality of nodes and a plurality of edges, the plurality of nodes corresponding to a plurality of blocks associated with a model, and the plurality of edges indicating at least one of; dependencies between blocks in the model, or hierarchical relationships between blocks in the model, and the execution control graph representing an execution of the model; analyze the plurality of edges in the execution control graph; determine, based on analyzing the plurality of edges in the execution control graph, an existence of a particular pattern associated with accessing a data store during the execution of the model, when determining the existence of the particular pattern, the processor being to; generate an expression based on; the execution control graph, and a condition,
the condition representing a pattern with respect to accessing a data store during an execution of the model,
the condition being at least one of;
whether the data store is accessed to read first data from the data store prior to the data store being accessed to write second data to the data store, or
whether the data store is accessed to write the second data to the data store prior to the data store being accessed to read the first data from the data store,determine whether the expression is satisifiable, the expression being satisfiable when;
the data store is accessed to read the first data from the data store prior to the data store being accessed to write the second data to the data store, or
the data store is accessed to write the second data to the data store prior to the data store being accessed to read the first data from the data store.- View Dependent Claims (24)
Specification