# US 10,481,918 B1 · Execution path determination in a distributed environment

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 10,481,918 B1
- Document ID: US10481918B1
- Status: Granted
- Kind: B1
- Application number: 13/630,966
- Filed: 2012-09-28
- Granted: 2019-11-19
- Earliest claimed: 2012-09-28
- Assignees: EMC Corporation
- Applicants: EMC Corporation
- Inventors: Vinod Kumar
- Web page: https://patentgrep.com/patent/US10481918B1

## CPC

- G06F 9/445: Program loading or initiating (bootstrapping G06F9/4401; security arrangements for program loading or initiating G06F21/57)
- G06F 9/5038: {considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration (scheduling strategies G06F9/4881 and subgroups)}
- G06F 9/50: Allocation of resources, e.g. of the central processing unit [CPU]
- G06F 9/455: Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F 11/3466: {Performance evaluation by tracing or monitoring}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Techniques to determine an execution path in a distributed environment are disclosed. A call to a method or function of a component of the distributed system is received, in connection with a request from a user of the distributed system. A unique correlation identifier that includes data that identifies the component, the request, and the method of function called is generated for the call.

## Claims

### Claim 1

A method of processing a request in a distributed system, comprising:
receiving, by one or more processors associated with a first component of the distributed system, in connection with a request from a user of the distributed system, a first call to a method or function of the first component;
generating, by the one or more processors associated with the first component of the distributed system, a unique correlation identifier for the first call, the unique correlation identifier comprising data that identifies: the first component associated with the request, a request counter identifier that identifies the request in relation to another request received by the distributed system, a method counter identifier indicating a sequential place of the first call within a sequence of calls associated with the request, and an identifier of a method of the first component or a function of the first component that is called; and
providing, by the one or more processors associated with the first component of the distributed system, the unique correlation identifier to a second component, wherein the unique correlation identifier is provided to the second component of the distributed system in connection with a second call by the first component to the second component in connection with the request from the user,
wherein the first component corresponds to one of a plurality of components of the distributed system.

### Claim 2 (depends on 1)

The method of claim 1, wherein the distributed system comprises a plurality of products integrated to provide the distributed system and the first component includes one or more of the products.

### Claim 3 (depends on 1)

The method of claim 1, further comprising storing the unique correlation identifier.

### Claim 4 (depends on 1)

The method of claim 1, further comprising providing the unique correlation identifier as output.

### Claim 5 (depends on 1)

The method of claim 1, further comprising using the unique correlation identifier to analyze a failure associated with the request.

### Claim 6 (depends on 1)

The method of claim 1, further comprising using the unique correlation identifier to analyze a system performance issue associated with the request.

### Claim 7 (depends on 1)

The method of claim 1, further comprising parsing the unique correlation identifier to determine at least in part programmatically an execution path or portion thereof associated with the request.

### Claim 8 (depends on 1)

The method of claim 1, wherein the second call is received from another component of the distributed system.

### Claim 9 (depends on 8)

The method of claim 8, wherein receiving the second call includes receiving in connection with the second call a latest correlation identifier of the component from which the second call is received.

### Claim 10 (depends on 9)

The method of claim 9, further comprising using the latest correlation identifier of the component from which the second call is received to generate the unique correlation identifier for the second call.

### Claim 11 (depends on 9)

The method of claim 9, further comprising including at least a portion of the latest correlation identifier of the component from which the second call is received in the unique correlation identifier for the second call.

### Claim 12 (depends on 1)

The method of claim 1, wherein the first call is received from a calling method or function of the first component but external to a called library with which the called method or function is associated.

### Claim 13 (depends on 12)

The method of claim 12, wherein receiving the first call includes receiving in connection with the first call a calling party correlation identifier associated with the first call into the calling method or function.

### Claim 14 (depends on 1)

The method of claim 1, wherein the request counter identifier corresponds to an integer n, which indicates that the request received at the first component corresponds to an nth request received by the first component.

### Claim 15 (depends on 1)

The method of claim 1, wherein in the event that the second call is made to a function within the same product or component but in a different library than a most recently called function, the latest correlation identifier is passed to the called library.

### Claim 16 (depends on 1)

The method of claim 1, wherein in the event that the second call is made to a different function within the same product or component and within the same library, the method counter identifier is incremented.

### Claim 17 (depends on 1)

The method of claim 1, wherein the unique identifier for the first call to the method or function of the first component is serialized with additional information to form an inter-product correlation identifier, such additional information identifying: the second component to which the second call is made by the first component, a method of the second component subject to the second call made by the first component, and a method counter identifier that identifies the method associated with the second component that is called in connection with the request in relation to other methods of the second component called in connection with the request.

### Claim 18 (depends on 1)

The method of claim 1, wherein the unique correlation identifier is associated with a runtime context with which the request is associated.

### Claim 19 (depends on 1)

The method of claim 1, wherein the request identifier further identifies the request in relation to another request for the first component received.

### Claim 20 (depends on 1)

The method of claim 1, further comprising:
receiving, at the second component, the unique correlation identifier in connection with the second call from the first component;
determining a local correlation identifier in connection with a third call to be made by the second component to a third component of the plurality of components in the distributed system; and
generating a combined correlation identifier, wherein the combined correlation identifier includes the local correlation identifier and at least a part of the unique correlation identifier.

### Claim 21 (depends on 20)

The method of claim 20, wherein the generating the combined correlation identifier comprises serializing the local correlation identifier with the unique correlation identifier.

### Claim 22 (depends on 1)

The method of claim 1, wherein the unique correlation identifier is stored in a manner that associates the unique correlation identifier with a runtime context with which the unique correlation identifier is associated.

### Claim 23 (depends on 1)

The method of claim 1, wherein the identifier of the method of the first component or the function of the first component that is called comprises the name of the method or the function.

### Claim 24

A distributed system, comprising:
a processor configured to:
receive at a first component of the distributed system, in connection with a request from a user of the distributed system, a first call to a method or function of the first component;
generate for the first call a unique correlation identifier that includes data that identifies the first component associated with the request, a request counter identifier that identifies the request in relation to another request received by the distributed system, a method counter identifier indicating a sequential place of the first call within a sequence of calls associated with the request, and a method of the first component or a function of the first component that is called; and
provide the unique correlation identifier to a second component, wherein the unique correlation identifier is provided to the second component of the distributed system in connection with a second call by the first component to the second component in connection with the request from the user; and
a memory or other storage device coupled to the processor and configured to store the unique correlation identifier;
wherein the first component corresponds to one of a plurality of components of the distributed system.

### Claim 25 (depends on 24)

The distributed system of claim 24, further comprising a plurality of products integrated to provide the distributed system and the first component includes one or more of the products.

### Claim 26 (depends on 24)

The distributed system of claim 24, wherein the second call is received from another component of the distributed system; and wherein the processor is further configured to receive in connection with the second call a latest correlation identifier of the component from which the second call is received.

### Claim 27 (depends on 26)

The distributed system of claim 26, wherein the processor is further configured to use the latest correlation identifier of the component from which the second call is received to generate the unique correlation identifier for the second call.

### Claim 28

A computer program product embodied in a tangible, non-transitory computer readable storage medium and comprising computer instructions for:
receiving, by one or more processors associated with a first component of a distributed system, in connection with a request from a user of the distributed system, a first call to a method or function of the first component;
generating, by the one or more processors associated with the first component of the distributed system, a unique correlation identifier for the first call, the unique correlation identifier comprising data that identifies the first component associated with the request, a request counter identifier that identifies the request in relation to another request received by the distributed system, a method counter identifier indicating a sequential place of the first call within a sequence of calls associated with the request, and a method of the first component or a function of the first component that is called; and
providing, by the one or more processors associated with the first component of the distributed system, the unique correlation identifier to a second component, wherein the unique correlation identifier is provided to the second component of the distributed system in connection with a second call by the first component to the second component in connection with the request from the user,
wherein the first component corresponds to one of a plurality of components of the distributed system.
