Incremental workflow execution

US10409651B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-10409651-B2
Application numberUS-201715706225-A
CountryUS
Kind codeB2
Filing dateSep 15, 2017
Priority dateSep 15, 2017
Publication dateSep 10, 2019
Grant dateSep 10, 2019

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

Techniques for incremental workflow execution are provided. In one technique, a computing job in a workflow identifies an input path that indicates a first location from which the computing job is to read input data. The computing job identifies an output path that indicates a second location to which the computing job is to write output data. The computing job performs a comparison between the input path and the output path. Based on the comparison, the computing job determines whether to read the input data from the first location. If the input path does not correspond to the output path, then the computing job reads the input data from the first location, generates particular output data based on the input data, and writes the particular output data to the second location. The computing job ceases to execute if the input path corresponds to the output path.

First claim

Opening claim text (preview).

What is claimed is: 1. A system comprising: one or more processors; one or more storage media storing instructions which, when executed by the one or more processors, cause: identifying an input path that indicates a first location from which a first computing job is to read input data; identifying an output path that indicates a second location to which the first computing job is to write output data; performing a first comparison between the output path and the input path; based on the first comparison, determining whether the first computing job will process the input data from the first location; determining a first timestamp that indicates when an input file in a third location has been updated; determining a second timestamp that indicates when an output file has been created; performing a second comparison between the first timestamp and the second timestamp; based on the second comparison, determining whether the first computing job will read the input file from the third location. 2. The system of claim 1 , wherein the instructions, when executed by the one or more processors, further cause: in response to determining that the first timestamp indicates a time period that is after a time period indicated by the second timestamp, reading the input file from the first location and processing data within the input file. 3. The system of claim 2 , wherein the instructions, when executed by the one or more processors, further cause: reading the input data from the first location and processing the input data in addition to the data within the input file. 4. The system of claim 1 , wherein the instructions, when executed by the one or more processors, further cause: identifying a plurality of versions of the input file; wherein each version of the plurality of versions is associated with a different creation time; wherein the first timestamp is of the most recent version of the plurality of versions. 5. The system of claim 1 , wherein the input path specifies a first particular time period and the output path specifies a second particular time period. 6. The system of claim 1 , wherein the instructions, when executed by the one or more processors, further cause: based on the first comparison, determining to not complete execution of the first computing job with respect to the input data. 7. The system of claim 1 , wherein the instructions, when executed by the one or more processors, further cause: identifying a plurality of input paths, wherein each input path in the plurality of input paths indicates an input location from which a second computing job is to read certain input data; identifying a plurality of output paths, wherein each output path in the plurality of output paths indicates an output location to which the second computing job is to write certain output data; wherein each input path in the plurality of input paths corresponds to a different output path in the plurality of output paths; for each input path in the plurality of input paths: determining an input timestamp that indicates when a particular input file in a location indicated by said each input path was updated; determining an output timestamp that indicates when a particular output file in a location indicated by an output path that corresponds to said each input path was created; performing a particular comparison between the input timestamp and the output timestamp; based on the particular comparison, determining whether to add said each input path to a set of updated input paths; for each input path in the set of updated input paths, executing the second computing job with respect to input data that is stored at the input location indicated by said each input path. 8. A system comprising: one or more processors; one or more storage media storing instructions which, when executed by the one or more processors, cause: identifying an input path that indicates a first location from which a first computing job is to read input data; identifying an output path that indicates a second location to which the first computing job is to write output data; performing a comparison between the input path and the output path; based on the comparison, determining whether to read the input data from the first location; if the input path does not correspond to the output path, then the first computing job: reading the input data from the first location, generating particular output data based on the input data; writing the particular output data to the second location; wherein the first computing job ceases to execute if the input path corresponds to the output path. 9. The system of claim 8 , wherein the input path corresponds to the output path if the input path indicates a time period that is within or is the same as a time period indicated by the output path. 10. The system of claim 9 , wherein the input path specifies a first particular time period and the output path specifies a second particular time period. 11. The system of claim 8 , wherein: the first computing job is one of a plurality of computing jobs in a workflow; a second computing job in the plurality of computing jobs is configured to read output generated by the first computing job. 12. The system of claim 8 , wherein the instructions, when executed by the one or more processors, further cause: identifying a plurality of input paths, wherein each input path in the plurality of input paths indicates an input location from which the first computing job is to read certain input data; identifying a plurality of output paths, wherein each output path in the plurality of output paths indicates an output location to which the first computing job is to write certain output data; wherein each input path in the plurality of input paths corresponds to a different output path in the plurality of output paths; for each input path in the plurality of input paths: determining an input timestamp that indicates when a particular input file in a location indicated by said each input path was updated; determining an output timestamp that indicates when a particular output file in a location indicated by an output path that corresponds to said each input path was created; performing a particular comparison between the input timestamp and the output timestamp; based on the particular comparison, determining whether to add said each input path to a set of updated input paths; for each input path in the set of updated input paths, executing the first computing job with respect to input data that is stored at the input location indicated by said each input path. 13. A method comprising: identifying an input path that indicates a first location from which a first computing job is to read input data; identifying an output path that indicates a second location to which the first computing job is to write output data; performing a first comparison between the output path and the input path; based on the first comparison, determining whether the first computing job will process the input data from the first location; determining a first timestamp that indicates when an input file in a third location has been updated; determining a second timestamp that indicates when an output file has been created; performing a second comparison between the first timestamp and the second timestamp; based on the second comparison, determining whether the first computing job will read the input file from the third location; wherein the method is performed by one or more computing devices. 14. The method of claim 13 , further comprising: in response to determi

Assignees

Inventors

Classifications

  • Allocation of resources, e.g. of the central processing unit [CPU] · CPC title

  • using timestamps · CPC title

  • G06F9/5088Primary

    involving task migration · CPC title

  • Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling · CPC title

  • G06Q10/04Primary

    Forecasting or optimisation specially adapted for administrative or management purposes, e.g. linear programming or "cutting stock problem" (market predictions or forecasting for commercial activities G06Q30/0202) · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US10409651B2 cover?
Techniques for incremental workflow execution are provided. In one technique, a computing job in a workflow identifies an input path that indicates a first location from which the computing job is to read input data. The computing job identifies an output path that indicates a second location to which the computing job is to write output data. The computing job performs a comparison between the…
Who is the assignee on this patent?
Microsoft Technology Licensing Llc
What technology area does this patent fall under?
Primary CPC classification G06F9/5088. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Sep 10 2019 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).