IP Library › Granted Patent US 11,086,696
Granted Patent B2
US 11,086,696 · App. 16/528,863 · Granted Aug 10, 2021

Parallel cloned workflow execution

Inventors: Sunay Vaishnav (Seattle, WA); Eldon Cornelio (Sammamish, WA)
Assignee: MICROSOFT TECHNOLOGY LICENSING, LLC
G06F9/542G06F9/38G06F11/3688
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 11,086,696
App. No.
16/528,863
Granted
Aug 10, 2021
Kind
B2
Abstract

Provided is a system and method which enables a workflow to be tested while keeping the workflow active by cloning a copy of an underlying job and executing the cloned job in parallel with the underlying job. In one example, the method may include executing an original job on data in a production environment, where the original job comprises machine-readable code of a predefined flow, in response to receiving a simulation request, creating a clone of the original job which comprises an independent execution state from the original job, executing the cloned job for a limited number of runs on one or more events, and storing the processing results of the cloned job.

Claims (31)

1. A computing system comprising:

a processor configured to

execute an original job on newly-received data in a production environment, where the original job comprises machine-readable code of a predefined flow,

in response to receiving a request to simulate the original job, create a clone of the original job which comprises an independent execution state from the original job, modifying the cloned job, where the modified cloned job is different from the original job; and

while continuing to execute the original job on newly-received data in the production environment, execute the modified cloned job on historical data in the production environment; and

a storage configured to store the processing results of execution of the modified cloned job.

2. The computing system of claim 1 , wherein the processor is configured to execute the modified cloned job on data in the production environment that is received subsequent to creating the clone of the original job.

3. The computing system of claim 1 , wherein the processor is further configured to terminate the modified cloned job after executing a limited number of runs of the modified cloned job.

4. The computing system of claim 1 , wherein the modified cloned job comprises the original job with one or more steps of the predefined flow omitted.

5. The computing system of claim 1 , wherein the processor is configured to execute the modified cloned job on historical data previously marked as seen by the original job, and process the historical data to generate different processing results.

6. The computing system of claim 1 , wherein the original job comprises a collection of application programming interface (API) calls.

7. The computing system of claim 1 , wherein the processor is configured to execute the modified cloned job just once in the production environment and terminate the modified cloned job after one execution.

8. A method comprising:

executing an original job on newly-received data in a production environment, where the original job comprises machine-readable code of a predefined flow;

in response to receiving a request to simulate the original job, creating a clone of the original job which comprises an independent execution state from the original job;

modifying the cloned job, where the modified cloned job is different from the original job;

while continuing to execute the original job on newly-received data in the production environment, executing the modified cloned job on historical data in the production environment; and

storing processing results of execution of the modified cloned job.

9. The method of claim 8 , further comprising executing the modified cloned job on newly-received data in the production environment that is received subsequent to modifying the cloned job.

10. The method of claim 8 , further comprising terminating the modified cloned job after executing a limited number of runs of the modified cloned job on the historical data.

11. The method of claim 8 , wherein the modified cloned job comprises the original job with one or more steps of the predefined flow omitted.

12. The method of claim 8 , wherein the executing the modified cloned job comprises executing the modified cloned job historical data previously marked as seen by the original job, and processing the historical data to generate different processing results.

13. The method of claim 8 , wherein the original job comprises a collection of application programming interface (API) calls.

14. The method of claim 8 , wherein the executing the modified cloned job comprises executing the modified cloned job just once in the production environment and terminating the modified cloned job after one execution.

15. A computing system comprising:

a processor configured to create a clone of an active job which comprises machine-readable code corresponding to a predefined flow and to modify the cloned job, where the modified cloned job is different from the active job, where the processor comprises:

a past event processing component configured to trigger the processor to run the modified cloned job on historical data in a production environment while continuing to execute the active job on newly-received data in the production environment; and

a storage configured to store processing results of execution of the modified cloned job.

16. The computing system of claim 15 , wherein the processor is configured to run the modified cloned job just once and terminate the modified cloned job thereafter.

17. The computing system of claim 15 , wherein the modified cloned job comprises the active job with one or more steps from the predefined flow omitted.

18. The computing system of claim 17 , further comprising displaying a user interface which enables the user to select the one or more steps of the predefined flow to omit.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 1, 2019
From: VAISHNAV, SUNAY; CORNELIO, ELDON
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 049929/0673 →
Continuity (1)
Related Publication 20210034439A1 · Feb 4, 2021