Data processing: database and file management or data structures – Database design – Data structure types
Reexamination Certificate
1997-11-26
2001-01-23
Amsbury, Wayne (Department: 2771)
Data processing: database and file management or data structures
Database design
Data structure types
C707S793000, C707S793000, C707S793000
Reexamination Certificate
active
06178429
ABSTRACT:
BACKGROUND OF THE INVENTION
1. Technical Field
The present invention relates generally to software development and more particularly to software con figuration management databases.
2. Discussion of Prior Art
Software products are often developed by hundreds or thousands of people. To manage this increasingly complex process, software development is handled by project teams. In addition to the team working on the current product, there may be a team that handles support for a previously released product, a team working on specialized versions of a product for specific customers, and a team handling future releases. Each of these teams may also be currently building numerous versions.
This has necessitated a distributed approach to development. Rather than incorporating all of the code for a software system into a single file, developers create smaller files that handle smaller parts of an overall system. Thus, one file may depend on a number of different files or objects. Therefore, changes to one file may affect the operation of other files in a product build. Changes to these interrelated files collected in a repository are called a “change set” and together they represent the progress of a program from one coherent state to another.
This complexity has necessitated the use of project databases called software configuration management (SCM) systems. Commercial SCM software is used to manage these databases and to help insure that a change set is updated and committed to the database all at once. In order to accomplish this task, SCM software usually provides version control, workspace management, build management, and process control.
Although SCM software is helpful, some problems are not addressed. Of particular concern is the duration of multi-part operations, which is the time between the initiation of a change to a set of files (start boundary) and the time it is completed (end boundary). During that time, some of the change set files have been updated while others have not. Thus, the repository is in an incoherent state and should not be used to build a working product. In order to prevent accidental reads or writes during an update, most SCM software employs a file-locking mechanism.
One prior art solution places write file locks (wfl) on each directory that will be modified during an update. Although this prevents incoherence during and after an update, there is no guarantee that files read just prior to the update will be consistent with other files read after the update. Although it is unlikely, if an update reads one directory before a commit places a wfl on that directory, and then, after a commit places a wfl on a second directory, the update attempts to read the second list, then when the update logic encounters the wfl, the update logic waits for the wfl to clear and then reads that part of the change into the updated workspace. This results in an incoherence that may or may not be detected when the workspace is used to build the product. This incoherence problem is exacerbated when the user or programmer is working on a project at a remote site, in which case he or she must retrieve the entire change set. Remote retrieval is slower and therefore opens a longer time window of opportunity for an incoherent set.
In addition to the locking method described above, some SCM software locks individual element versions during a write operation. Although protecting a transaction at the element version level guarantees either complete success or complete failure as to an individual file, it is possible for a multi-part transaction to write only some of the files involved. This leaves the repository incoherent. While reading an incoherent file of a file set is problematic, having an incoherent file set stored in the repository is potentially disastrous.
There remains, therefore, a need for a mechanism to guarantee coherent views of a repository at the beginning and ending boundaries of multi-part operations. Additionally, a method is needed for detecting and recovering from repository inconsistencies caused by system failures during multi-part operations.
SUMMARY OF THE INVENTION
The present invention provides a mechanism for guaranteeing a coherent view of a repository being updated. The invention also detects and corrects stalled file operations caused by system failures. The system of the invention creates a list of files that are currently being committed or updated to a shared repository. Other users are then prevented from accessing any of the protected files on the list until the operation has been completed. The invention also identifies failed operations and restores committed files to their original state.
In the preferred embodiment, a directory is created that contains a list of files that are protected. When an operating request involving shared files is sent to the repository, the files requested are compared to the files in the protected files list to see if any of the files being requested is currently being processed by another request. Comparing the files can include comparing the name, version information, or any other relevant file properties. If the files are not being protected, then the requested operation on the shared files completes. Since the current contents of the protected files list are examined before submitting an operation, no two operations can act on the same protected file.
Additionally, to prevent a stalled update operation from leaving a file in protected status indefinitely, an alarm mechanism regularly scans the protected files list and flags operations that have taken an unusually long time. If the alarm mechanism locates a stalled operation, it initiates a system agent and gives it information about the stalled operation. The information about the stalled operation might include the time the files were placed in protected status, information about the user that initiated the request, and the status of the update before the failure. Therefore if the operation failed after updating some of the files in a change set, the system agent can recover by the original files and re-establish coherence before others use the partially updated set. The operation can then be restarted without risking further inconsistencies in the repository.
REFERENCES:
patent: 5093912 (1992-03-01), Dong et al.
patent: 5163147 (1992-11-01), Orita
patent: 5305448 (1994-04-01), Insalaco et al.
patent: 5421012 (1995-05-01), Khoyi et al.
patent: 5452448 (1995-09-01), Sakuraba et al.
patent: 5463754 (1995-10-01), Beausoleil et al.
patent: 5513351 (1996-04-01), Grantz
patent: 5564051 (1996-10-01), Halliwell et al.
patent: 5584023 (1996-12-01), Hsu
patent: 5604900 (1997-02-01), Iwamoto et al.
patent: 5608898 (1997-03-01), Turpin et al.
patent: 5619691 (1997-04-01), Katada et al.
patent: 5623662 (1997-04-01), McIntosh
patent: 5692194 (1997-11-01), Nguyen et al.
patent: 5701457 (1997-12-01), Fujiwara
patent: 5708780 (1998-01-01), Levergood et al.
patent: 5727206 (1998-03-01), Fish et al.
patent: 5742830 (1998-04-01), Elko et al.
patent: 5749077 (1998-05-01), Campbell
patent: 5778365 (1998-07-01), Nishiyama
patent: 5799141 (1998-08-01), Galipeau et al.
patent: 5826253 (1998-10-01), Bredenberg
patent: 5832512 (1998-11-01), Mastors et al.
patent: 5832522 (1998-11-01), Blickenstaff et al.
patent: 5835601 (1998-11-01), Shimbo et al.
patent: 5835911 (1998-11-01), Nakagawa et al.
patent: 5873103 (1999-02-01), Trede et al.
patent: 5895461 (1999-04-01), De La Huerga et al.
patent: 5924098 (1999-07-01), Kluge
patent: 6021415 (2000-02-01), Cannon et al.
Amsbury Wayne
Cisco Technology Inc.
D'Alessandro & Ritchie
Pardo Thuy
LandOfFree
Mechanism for ensuring SCM database consistency on... does not yet have a rating. At this time, there are no reviews or comments for this patent.
If you have personal experience with Mechanism for ensuring SCM database consistency on..., we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Mechanism for ensuring SCM database consistency on... will most certainly appreciate the feedback.
Profile ID: LFUS-PAI-O-2553001