# US 12,118,392 B2 · Techniques for execution orchestration with topological dependency relationships

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

- Number: US 12,118,392 B2
- Document ID: US12118392B2
- Status: Granted
- Kind: B2
- Application number: 18/379,503
- Filed: 2023-10-12
- Published: 2024-02-01
- Granted: 2024-10-15
- Earliest claimed: 2020-12-11
- Assignees: Oracle International Corporation
- Applicants: Oracle International Corporation
- Inventors: Abishek Murali Mohan; Alaa Shaker
- Web page: https://patentgrep.com/patent/US12118392B2

## CPC

- G06F 9/4881: {Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues}
- G06F 9/5005: {to service a request}
- 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 16/2365: {Ensuring data consistency and integrity}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

A method for managing cloud resource dependencies is described. The method may include receiving a resource configuration of a first resource. The method may include identifying a dependency of a first stage of a first resource on a second resource and performing a topological sort of a plurality of resources, based at least in part on the dependency of the first stage of the first resource. The method may include constructing a dependency graph including the plurality of resources, including the first stage of the first resource in a subordinate rank and the second resource in a superior rank, corresponding to the topological sort. The method may include generating an execution queue including the second resource in a priority execution position in the execution queue. The method may include executing the plurality of resources according to the execution queue.

## Claims

### Claim 1

A method, comprising:
receiving, by a computing system, a resource configuration of a first resource;
identifying, by the computing system and from the resource configuration of the first resource, a dependency of a first stage of the first resource on a second resource, the first resource and the second resource being of a plurality of resources;
constructing, by the computing system, a dependency graph comprising the plurality of resources;
generating, by the computing system and in accordance with the dependency graph, an execution queue;
receiving, by the computing system, an event notification indicating the second resource has changed; and
adding, by the computing system, the first stage to the execution queue according to the dependency graph.

### Claim 2 (depends on 1)

The method of claim 1, further comprising:
traversing the dependency graph to identify one or more stages depending on the second resource including the first stage.

### Claim 3 (depends on 2)

The method of claim 2, wherein the first stage is added to the execution queue based at least in part on the identification of the one or more stages depending on the second resource.

### Claim 4 (depends on 1)

The method of claim 1, further comprising:
performing a topological sort of a plurality of resources comprising the first resource and the second resource based at least in part on the dependency of the first stage of the first resource.

### Claim 5 (depends on 4)

The method of claim 4, wherein the dependency graph comprises the first stage of the first resource in a subordinate rank and the second resource in a superior rank, corresponding to the topological sort.

### Claim 6 (depends on 1)

The method of claim 1, wherein the execution queue comprises the second resource in a priority execution position in the execution queue relative to the first stage of the first resource.

### Claim 7 (depends on 1)

The method of claim 1, wherein constructing the dependency graph comprises:
identifying a redundant dependency in the dependency graph; and
removing the redundant dependency from the dependency graph.

### Claim 8 (depends on 1)

The method of claim 1, wherein the first resource comprises a resource configuration, wherein the resource configuration of the first resource comprises a declarative identification of one or more resources upon which the first stage of the first resource depends, and wherein identifying the dependency of the first stage of the first resource comprises identifying the declarative identification.

### Claim 9 (depends on 1)

The method of claim 1, further comprising:
receiving an error notification describing an error in execution of the second resource;
traversing the dependency graph to identify a dependent stage depending on the second resource;
identifying the first stage as the dependent stage; and
modifying a resource status of the first stage to an error status.

### Claim 10 (depends on 1)

The method of claim 1, further comprising initializing the first resource and the second resource, in accordance with the topological sort.

### Claim 11 (depends on 1)

The method of claim 1, wherein the plurality of resources are included in a single environment.

### Claim 12

A computing system, comprising:
one or more processors;
a memory in communication with the one or more processors, the memory configured to store computer-executable instructions, wherein executing the computer-executable instructions causes the one or more processors to perform operations comprising:
receiving, by the computing system, a resource configuration of a first resource;
identifying, by the computing system and from the resource configuration of the first resource, a dependency of a first stage of the first resource on a second resource, the first resource and the second resource being of a plurality of resources;
constructing, by the computing system, a dependency graph comprising the plurality of resources;
generating, by the computing system and in accordance with the dependency graph, an execution queue;
receiving, by the computing system, an event notification indicating the second resource has changed; and
adding, by the computing system, the first stage to the execution queue according to the dependency graph.

### Claim 13 (depends on 12)

The computing system of claim 12, wherein the operations further comprise:
traversing the dependency graph to identify one or more stages depending on the second resource including the first stage.

### Claim 14 (depends on 13)

The computing system of claim 13, wherein the first stage is added to the execution queue based at least in part on the identification of the one or more stages depending on the second resource.

### Claim 15 (depends on 12)

The computing system of claim 12, wherein the operations further comprise:
performing a topological sort of a plurality of resources comprising the first resource and the second resource based at least in part on the dependency of the first stage of the first resource.

### Claim 16 (depends on 15)

The computing system of claim 15, wherein the dependency graph comprises the first stage of the first resource in a subordinate rank and the second resource in a superior rank, corresponding to the topological sort.

### Claim 17

A non-transitory computer-readable medium, storing computer-executable instructions that, when executed by one or more processors of a computing system, cause the one or more processors to perform operations comprising:
receiving, by the computing system, a resource configuration of a first resource;
identifying, by the computing system and from the resource configuration of the first resource, a dependency of a first stage of the first resource on a second resource, the first resource and the second resource being of a plurality of resources;
constructing, by the computing system, a dependency graph comprising the plurality of resources;
generating, by the computing system and in accordance with the dependency graph, an execution queue;
receiving, by the computing system, an event notification indicating the second resource has changed; and
adding, by the computing system, the first stage to the execution queue according to the dependency graph.

### Claim 18 (depends on 17)

The non-transitory computer-readable medium of claim 17, wherein the operations further comprise:
traversing the dependency graph to identify one or more stages depending on the second resource including the first stage, and wherein the first stage is added to the execution queue based at least in part on the identification of the one or more stages depending on the second resource.

### Claim 19 (depends on 17)

The non-transitory computer-readable medium of claim 17, wherein the operations further comprise:
performing a topological sort of a plurality of resources comprising the first resource and the second resource based at least in part on the dependency of the first stage of the first resource, and wherein the dependency graph comprises the first stage of the first resource in a subordinate rank and the second resource in a superior rank, corresponding to the topological sort.

### Claim 20 (depends on 17)

The non-transitory computer-readable medium of claim 17, wherein the execution queue comprises the second resource in a priority execution position in the execution queue relative to the first stage of the first resource.
