Data processing: database and file management or data structures – Database design – Data structure types
Reexamination Certificate
1998-12-23
2003-12-16
Le, Uyen (Department: 2171)
Data processing: database and file management or data structures
Database design
Data structure types
C717S116000
Reexamination Certificate
active
06665688
ABSTRACT:
TECHNICAL FIELD
The present invention relates generally to a computer system for the generating data and, more particularly, to regenerating data on-demand.
BACKGROUND OF THE INVENTION
Computer systems are often used to generate vast amounts of data. Computer programs often input data and generate output data corresponding to that input data. In complex computer systems, many computer programs may be used to generate data based on data generated from other computer programs. These computer programs for generating the data are referred to as “tools” or “services.” A description of such complex computer systems will help illustrate the computational inefficiencies that are often encountered. One such complex computer system may be a management information system (“MIS”) for a large organization. The MIS may collect raw data that is generated at various locations throughout the organization. The MIS may have a variety of report generating tools that input subsets of the raw data and may generate reports. A report itself may be stored as a data set and used as input into another report generating tool. Thus, the reports and the raw data combine to form a hierarchy of data sets. The various reports may be accessible to managers at different levels within the organization. For example, a low-level manager may need access to a detailed report relating to a specific location within the organization, whereas a high-level manager may need a high-level report that summarizes the detailed reports of many locations. When a manager requests that the MIS system generate a report, it may be important that the report is up-to-date. However, it may be very computationally expensive to regenerate all intermediate reports that are used to generate the requested report. It would be desirable to have a technique that would ensure that a requested report is up-to-date, but that would avoid the high computational expense of regenerating all the intermediate reports.
Another such complex computer system is a development environment for computer programs. The development environment allows programs to write, compile, debug, and maintain computer programs. The development environment may use a word processor to generate the source code for the computer program, a parser to generate an intermediate representation of the computer program from the source code, a translator to generate object code from the intermediate representation, an optimizer to generate optimized object code from the object code, and a linker to link optimized object code from different functions into executable code. Large computer programs, such as operating systems, can have thousands of functions which need to be compiled and linked into executable code. The process of compiling and linking such large computer programs can be very computationally intensive. As a result, the compiling and linking of the large computer program can take a very long time and have a significant negative impact on the development of the computer program. For example, if a new executable code is needed because of changes to the source code of the computer program, the source code for each of the functions may need to be parsed, translated, optimized, and linked to generate executable code that is up-to-date. Such generation of executable code may take many hours of computer time, which can significantly slow the development of the computer programs. Some tools for the development system may be able to check the time when an input (e.g., source code) for the tool (e.g., parser) was last written. If all the input that is used to generate an output (e.g., intermediate representation) was not written since the output was last written, then the tool does not need to regenerate the output because it is already up-to-date. If, however, one of the inputs was written after the output was last written, then output may be out-of-date and the tool needs to regenerate the output. Although such tools help to reduce the time needed to generate the executable code, it would be desirable to further reduce that time.
SUMMARY OF THE INVENTION
Embodiments of the present invention provide a replay method and system for monitoring the generating of a data set from input data sets and, when the data set is subsequently accessed, automatically regenerating the data set if the data set is out-of-date. The replay system only regenerates those input data sets that are determined to be out-of-date and only regenerates the output data set if it is determined to be out-of-date. A data set is determined to be out-of-date only when an input data set has actually changed since the data set was last generated.
BRIEF DESCRIPTION OF THE DRAWINGS
FIGS. 1A-1C
illustrate the replaying of a session.
FIG. 2
illustrates a computer system on which the replay system may be executed.
FIG. 3
is a flow diagram illustrating an example implementation of a service.
FIG. 4
is a flow diagram illustrating an example implementation of the needs
13
replay routine of the replay system.
FIG. 5
is a flow diagram of an example implementation of the replay routine.
FIG. 6
illustrates a program library that the development environment uses to store information about a computer program.
FIG. 7
illustrates the data set object and replay object organization for the program library of FIG.
6
.
FIG. 8
is a flow diagram of an example implementation of a routine of a service to translate functions within a module of a program library.
FIG. 9
is a flow diagram of an example implementation of a routine to create a translation session.
REFERENCES:
patent: 4819234 (1989-04-01), Huber
patent: 5168554 (1992-12-01), Luke
patent: 5301325 (1994-04-01), Benson
patent: 5333280 (1994-07-01), Ishikawa et al.
patent: 5450575 (1995-09-01), Sites
patent: 5533192 (1996-07-01), Hawley et al.
patent: 5564051 (1996-10-01), Halliwell et al.
patent: 5581764 (1996-12-01), Fitzgerald et al.
patent: 5598560 (1997-01-01), Benson
patent: 5632032 (1997-05-01), Ault et al.
patent: 5652889 (1997-07-01), Sites
patent: 5754855 (1998-05-01), Miller et al.
patent: 5768591 (1998-06-01), Robinson
patent: 5768592 (1998-06-01), Chang
patent: 5774721 (1998-06-01), Robinson
patent: 5787245 (1998-07-01), You et al.
patent: 5805892 (1998-09-01), Nakajima
patent: 5812811 (1998-09-01), Dubey et al.
patent: 5826265 (1998-10-01), Van Huben et al.
patent: 5854932 (1998-12-01), Mariani et al.
patent: 5867643 (1999-02-01), Sutton
patent: 5877766 (1999-03-01), Bates et al.
patent: 5887166 (1999-03-01), Mallick et al.
patent: 5901315 (1999-05-01), Edwards et al.
patent: 5903730 (1999-05-01), Asai et al.
patent: 5913925 (1999-06-01), Kahle et al.
patent: 5953530 (1999-09-01), Rishi et al.
patent: 5961639 (1999-10-01), Mallick et al.
patent: 5966539 (1999-10-01), Srivastava
patent: 5978902 (1999-11-01), Mann
patent: 6002872 (1999-12-01), Alexander, III et al.
patent: 6002879 (1999-12-01), Radigan et al.
patent: 6009269 (1999-12-01), Burrows et al.
patent: 6029005 (2000-02-01), Radigan
patent: 6049671 (2000-04-01), Slivka et al.
patent: 6058493 (2000-05-01), Talley
patent: 6059840 (2000-05-01), Click, Jr.
patent: 6072952 (2000-06-01), Janakiraman
patent: 6094716 (2000-07-01), Jung
patent: 6101524 (2000-08-01), Choi et al.
patent: 6112293 (2000-08-01), Witt
patent: 6151701 (2000-11-01), Humphreys et al.
patent: 6151704 (2000-11-01), Radigan
patent: 6314559 (2001-11-01), Sollich
patent: 19710252 (1998-02-01), None
Authors: Clovis L. Tondo, Andrew Nathanson and Eden Yount; Title: Mastering Make—A Guide to Building Programs on DOS and Unix Systems; Date:1992; Publisher: PTR Prentice Hall, Inc.; Chapters: 1-5.*
Jack W. Davidson and David B. Whalley, “Reducing the Cost of Branches by Using Registers,” Proceedings of the 17thAnnual Symposium on Computer Architecture, Seattle, Washington, May 28-31, 1990.
Jens Knoop, et al., “The Power of Assignment Motion,” ACM SIGPLAN '95 Conference on Programming Language Design and Implementation, La Jolla, California, Jun. 18-21, 1995.
Hiralal Agrawal, “Dominators, Super Blocks, and Program Coverage,” 21stACM SIGPLAN-SIGACT
Callahan, II Charles David
Koblenz Brian D.
Chen Te Yu
Cray Inc.
Le Uyen
Perkins Coie LLP
LandOfFree
Method and system for automatically regenerating data on-demand does not yet have a rating. At this time, there are no reviews or comments for this patent.
If you have personal experience with Method and system for automatically regenerating data on-demand, we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Method and system for automatically regenerating data on-demand will most certainly appreciate the feedback.
Profile ID: LFUS-PAI-O-3183436