Data source currency tracking and currency based execution
AssigneeOracle International Corporation
InventorsMichael Grossman, John Rees
Life of this patent
Estimating the term…
Abstract
A method and system for determining currency of data in a data processing system. The processing steps along a dependency chain used to populate a data reporting program are back tracked recursively through each processing step until a first originating set of processing steps are reached. The currency of each data source for the programs is identified and it is determined whether the program has run since that time. If any one of the sources for the program of the processing step is more recent than a last run time of the program associated with the processing step, the program is re-run and outputs updated. The same process is executed moving forward along the dependency chain, to each other processing step.
Claims15
A non-transitory computer-readable medium storing computer executable instructions that when executed by a computer cause the computer to perform a method, the method comprising:
- upon detecting a request for a report,
- recursively identifying backchain programs along a chain of programs that are involved in producing the report until reaching source programs of the chain of programs, where a source program is a program without a predecessor program or with a predecessor program that does not support backchaining, where the backchain programs are accessible to the computer, and where the backchain programs support executing based on whether inputs of the backchain program have been updated since the backchain program was last run;
- and
- beginning with the source programs from the chain of programs, progressively running selective programs in the chain of programs, whose inputs have updated since the report was previously generated, until data from the report is verified as current.
A method comprising:
- determining data currency in a processing chain prior to generating an output report by:
- backtracking along each source chain in the processing chain until a first processing application is reached;
- determining if an earlier execution time of a program associated with the first processing application is later in time than a last update time of each data input to the first processing application;
- re-executing the program if one of the data inputs to the first processing application has an update time that is more recent that the last execution time of the first processing application;
- progressing along each remaining source chain in the processing chain until a first, unevaluated processing application is reached;
- comparing a last run time of each program of each such processing application with a time stamp of each source of data to the respective processing application, and automatically re-executing the program if the time stamp of one of the source of data is more current that the last run time of the program;
- and
- continuing progressing until the processing steps have been evaluated.
A system comprising:
- a non-transitory computer readable medium comprising a data currency tracking logic configured to record a last time of any data change for each source of data in a processing chain and a time of modification of data in any target data modified by the data processing step in the processing chain;
- and
- a backchain system configured to:
- determine the processing steps along a dependency chain used to populate data sources for an initiating data reporting or processing program recursively back through each processing step in the dependency chain that populates a source processing step until one or more source processing steps are reached that has a data source whose processing steps do not support execution via a backchain, has sources that are external to the processing system or does not have any data sources;
- determine whether a program associated with each such processing step has run since each source of data for the processing step was last modified;
- and
- if any one of the sources for the program of such processing step is more recent than a last run time of the program associated with the processing step, running the program and updating target data and creating report outputs of the processing step and recording tracking information identifying the currency of each source used as input for the processing step.
A non-transitory computer-readable medium storing computer executable instructions that when executed by a computer cause the computer to perform a method, the method comprising:
- receiving a request for a report;
- determining a dependency chain of programs accessible to the computer that are run to produce the report;
- controlling execution of a source program at a beginning of the dependency chain upon determining the source program has not run since an input of the source program was last updated, where executing the source program modifies a first data source;
- and
- controlling execution of a result program at an end of the dependency chain upon determining the result program has not run since an input to the result program was last modified, where an input to the result program is based on data in the first data source, and where executing the result program produces the report.
Dependencies are inferred from the claim text.