IP Library Granted Patent US 10,678,601
Granted Patent B2
US 10,678,601 · App. 15/978,454 · Granted Jun 9, 2020

Orchestration service for multi-step recipe composition with flexible, topology-aware, and massive parallel execution

Inventors: Lik Wong (Redwood Shores, CA); Girish Balachandran (Redwood Shores, CA); Shravan Kumar Shivanagari (Hyderabad, IN); Taylor Gautier (Redwood Shores, CA)
Assignee: Oracle International Corporation
G06F9/5072G06F8/60G06F8/65G06F9/4843G06F9/5011G06F9/5027G06F9/5038G06F9/5083G06F11/0721G06F11/0751G06F11/0793H04L41/00H04L41/5025H04L41/5051H04L67/1008H04L67/1034H04L41/5096
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,678,601
App. No.
15/978,454
Granted
Jun 9, 2020
Kind
B2
Abstract

Techniques are described for orchestrating execution of multi-step recipes. In an embodiment, a method comprises receiving a request to execute a recipe specification that defines a sequence of steps to execute for a particular recipe; responsive to receiving the request to execute the recipe specification, instantiating a set of one or more recipe-level processes; wherein each recipe-level process in the set of one or more recipe-level processes manages execution of a respective instance of the particular recipe; triggering, by each recipe-level process for the respective instance of the particular recipe managed by the recipe-level process, execution of the sequence of steps; wherein triggering execution of at least one step in the sequence of steps by a recipe-level process comprises instantiating, by the recipe-level process, a plurality of step-level processes to execute the step on a plurality of target resources in parallel.

Claims (32)

1. A method comprising:

receiving a request to execute a recipe specification that defines a set of steps to execute for a particular recipe;

responsive to receiving the request to execute the recipe specification, instantiating a set of two or more recipe-level processes;

wherein each recipe-level process in the set of two or more recipe-level processes manages parallel execution of a respective instance of the particular recipe;

triggering, by each recipe-level process in the set of two or more recipe-level processes for the respective instance of the particular recipe managed by the recipe-level process, execution of the set of steps;

wherein triggering execution of at least one step in the set of steps by a recipe-level process comprises instantiating, by the recipe-level process, a plurality of step-level processes to attempt execution of different instances of the step in parallel;

wherein at least one of the step-level processes completes execution of an instance of the step.

2. The method of claim 1 , wherein the step-level processes attempt execution of the different instances of the step on different target resources; wherein the different target resources are specially configured to execute step instances of a particular type, and the executed step instance is of the particular type; wherein other different target resources are specially configured to execute step instances of another particular type but not of the particular type.

3. The method of claim 1 , further comprising determining how many recipe-level processes to instantiate based, at least in part, on a set of input parameters associated with the recipe specification.

4. The method of claim 3 , wherein the set of input parameters identify a plurality of systems on which to executed the particular recipe; wherein at least one recipe-level process is instantiated to manage execution of the particular recipe on each system.

5. The method of claim 1 , further comprising determining how many step-level processes to instantiate based, at least in part, on a set of topology metadata associated with a plurality of target resources.

6. The method of claim 5 , wherein the topology metadata identifies which target resources are associated with a particular group; wherein at least one step-level process is instantiated for each target resource that is a member of the particular group.

7. The method of claim 1 , wherein executing at least one step in the set of steps triggers a call to execute a second recipe; wherein a second set of two or more recipe-level processes are instantiate to manage execution of at least one respective instance of the second recipe; wherein a result generated by execution of the at least one respective instance of the second recipe is used as a step result for the step that triggered the call to execute the second recipe.

8. The method of claim 1 , further comprising checking execution status at one or more of the following stages: before instantiating the step-level processes; before a step-level process executes the step on a target resource, after the step-level process executes the step on a target resource and before aggregating outputs from the plurality of step-level process; and after aggregating outputs from the plurality of step-level process; and responsive to detecting a failure, performing one or more compensating actions.

9. The method of claim 8 , wherein the one or more compensating actions include at least one of a rollback operation, an abort operation, a retry operation, or a cleanup operation.

10. The method of claim 1 , further comprising aggregating results for step-level workers associated with same instance of the particular recipe.

11. One or more non-transitory computer-readable media storing instructions, which when executed by one or more processors, cause operations comprising:

receiving a request to execute a recipe specification that defines a set of steps to execute for a particular recipe;

responsive to receiving the request to execute the recipe specification, instantiating a set of two or more recipe-level processes;

wherein each recipe-level process in the set of two or more recipe-level processes manages parallel execution of a respective instance of the particular recipe;

triggering, by each recipe-level process in the set of two or more recipe-level processes for the respective instance of the particular recipe managed by the recipe-level process, execution of the set of steps;

wherein triggering execution of at least one step in the set of steps by a recipe-level process comprises instantiating, by the recipe-level process, a plurality of step-level processes to attempt execution of different instances of the step in parallel;

wherein at least one of the step-level processes completes execution of an instance of the step.

12. The one or more non-transitory computer-readable media of claim 11 , wherein the step-level processes attempt execution of the different instances of the step on different target resources; wherein the different target resources are specially configured to execute step instances of a particular type, and the executed step instance is of the particular type; wherein other different target resources are specially configured to execute step instances of another particular type but not of the particular type.

13. The one or more non-transitory computer-readable media of claim 11 , the operations further comprising determining how many recipe-level processes to instantiate based, at least in part, on a set of input parameters associated with the recipe specification.

14. The one or more non-transitory computer-readable media of claim 13 , wherein the set of input parameters identify a plurality of systems on which to executed the particular recipe; wherein at least one recipe-level process is instantiated to manage execution of the particular recipe on each system.

15. The one or more non-transitory computer-readable media of claim 11 , the operations further comprising determining how many step-level processes to instantiate based, at least in part, on a set of topology metadata associated with a plurality of target resources.

16. The one or more non-transitory computer-readable media of claim 15 , wherein the topology metadata identifies which target resources are associated with a particular group; wherein at least one step-level process is instantiated for each target resource that is a member of the particular group.

17. The one or more non-transitory computer-readable media of claim 11 , wherein executing at least one step in the set of steps triggers a call to execute a second recipe; wherein a second set of two or more recipe-level processes are instantiate to manage execution of at least one respective instance of the second recipe; wherein a result generated by execution of the at least one respective instance of the second recipe is used as a step result for the step that triggered the call to execute the second recipe.

18. The one or more non-transitory computer-readable media of claim 11 , the operations further comprising checking execution status at one or more of the following stages: before instantiating the step-level processes; before a step-level process executes the step on a target resource, after the step-level process executes the step on a target resource and before aggregating outputs from the plurality of step-level process; and after aggregating outputs from the plurality of step-level process; and responsive to detecting a failure, performing one or more compensating actions.

19. The one or more non-transitory computer-readable media of claim 18 , wherein the one or more compensating actions include at least one of a rollback operation, an abort operation, a retry operation, or a cleanup operation.

20. The one or more non-transitory computer-readable media of claim 11 , the operations further comprising aggregating results for step-level workers associated with same instance of the particular recipe.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 11, 2018
From: WONG, LIK; BALACHANDRAN, GIRISH; SHIVANAGARI, SHRAVAN KUMAR; GAUTIER, TAYLOR
To: ORACLE INTERNATIONAL CORPORTAION
Reel/Frame 046048/0121 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 16, 2018
From: WONG, LIK; BALACHANDRAN, GIRISH; SHIVANAGARI, SHRAVAN KUMAR; GAUTIER, TAYLOR
To: ORACLE INTERNATIONAL CORPORATION
Reel/Frame 045825/0371 →
Continuity (2)
Provisional Application 62553108 · Aug 31, 2017
Related Publication 20190065241A1 · Feb 28, 2019
Cited By (2)
US 12,223,530 US 12,367,023