WikiPatents - Community Patent Review
Create Free Account  |  License or Sell Your Patent  |  WikiPatents Marketplace  |  WikiPatents Blog
Username:  Password:  
    
Advanced Search
Local cache structure for maintaining updated file characteristics in a file sharing system    
United States Patent4897782   
Link to this pagehttp://www.wikipatents.com/4897782.html
Inventor(s)Bennett; Robert B. (Endwell, NY); Catino; Robert J. (Grapevine, TX)
AbstractA file sharing system, comprising a file access processor and a plurality of application support processors; and the file access processor, in turn, includes a central data access system and a storage system is provided to form directories from data in the database, and to change data in that database. Each support processor includes a local cache to acquire and hold directories formed by the data access system; and for each directory acquired by at least one support processor, the data access system further includes a directory gate and a multitude of directory change blocks holding information describing changes in the database that affect the directory. The directory change blocks established for a given directory are arranged in a first chain anchored to the directory gate established for the directory. For each support processor that has acquired at least one directory, the data access system further includes a directory acquired block for each directory acquired by the support processor. Preferably, the directory acquired blocks established for a given directory are arranged in a second chain also anchored to the directory gate established for the given directory.



 Title Information Submit all comments and votes
 
Patent Text Patent PDF Print Page Summary File History
Plain text PDF images Print Summary File History
Inventor     Bennett; Robert B. (Endwell, NY); Catino; Robert J. (Grapevine, TX)
Owner/Assignee     International Business Machines Corporation (Armonk, NY)
Patent assignment
All assignments
Publication Date     January 30, 1990
Application Number     07/110,461
PAIR File History     Application Data   Transaction History
Image File Wrapper   Patent Term   Fees
Litigation
Filing Date     October 19, 1987
US Classification     707/10 707/201
Int'l Classification     G06F 013/00
Examiner     Zache; Raulfe B.
Assistant Examiner    
Attorney/Law Firm     Romney; David S. Sensny; John S. ,
Address
Parent Case    
Priority Data    
USPTO Field of Search     364/200 364/300
Patent Tags     local cache maintaining updated file characteristics a file sharing
   
Enter a comma (,) or semicolon (;) between multiple tag words/phrases.
Describe this patent:
 Amusing   
 Clever   
 Complex   
 Efficient   
 Historic   
 Important   
 Innovative   
 Interesting   
 Practical   
 Simple   
[no votes]
Patent WIKI

Share information and news about this patent, including information and news about the technology, inventors, company, ligation and licensing.

 References Submit all comments and votes
 
*references marked with an asterisk below are user-added references
 U.S. References
 
Add a new US reference:  
ReferenceRelevancyCommentsReferenceRelevancyComments
4641274
Swank
715/531
Feb,1987

[0 after 0 votes]
4507751
Gawlick
707/202
Mar,1985

[0 after 0 votes]
4506326
Shaw
707/4
Mar,1985

[0 after 0 votes]
4498145
Baker
707/202
Feb,1985

[0 after 0 votes]
4480304
Carr
710/200
Oct,1984

[0 after 0 votes]
4432057
Daniell
707/8
Feb,1984

[0 after 0 votes]
4408273
Plow
707/202
Oct,1983

[0 after 0 votes]
4399504
Obermarck
710/200
Aug,1983

[0 after 0 votes]
4086628
Woodrum
707/7
Apr,1978

[0 after 0 votes]
3916387
Woodrum
707/3
Oct,1975

[0 after 0 votes]
 Foreign References
 Other References
 Market Review Submit all comments and votes
   
Market Size
Estimate the gross annual revenues of the relevant market sector:
> $10B
$5B - $10B
$2B - $5B
$500M - $2B
$100M - $500M
$10M - $100M
$1M - $10M
$500K - $1M
$100K - $500K
< $100K
[No votes]
$0
 
$0   $2.5B   $5B   $7.5B   $10B
Market Share
Estimate the percentage of the relevant market sector this invention will capture:
75% - 100%
50% - 74.99%
25% - 49.99%
10 - 24.99%
5 - 9.99%
2 - 4.99%
1 - 1.99%
< 1%
[No votes]
0.0%
 
0%   25%   50%   75%   100%
Reasonable Royalty
What percentage of gross sales should the inventor or assignee be paid?
75% - 100%
50% - 74.99%
25% - 49.99%
10 - 24.99%
5 - 9.99%
2 - 4.99%
1 - 1.99%
< 1%
[No votes]
0.0%
 
0%   25%   50%   75%   100%
Public's "Guesstimation" of Royalty Value
Market SizeN/A[No votes]
xMarket ShareN/A[No votes]
xReasonable RoyaltyN/A[No votes]

N/A

License Availablity
If you are NOT the owner or assignee, answer here:
Yes, license is available for purchase

No, license is not currently available



[No votes]
License Availablity
If you ARE the owner or assignee, answer here:
Yes, license is available for purchase

No, license is not currently available



[No votes]
Competitive Advantage
Does this invention have a significant competitive advantage over similar technologies?
Yes

No



[No votes]
Most helpful competitive advantage comment
[No comments]

Commercial Alternatives
Are there viable commercial alternatives for this invention?
Yes

No



[No votes]
Most helpful commercial alternative comment
[No comments]

 Technical Review Submit all comments and votes
 Claims Submit all comments and votes
 


We claim:

1. A method of operating a file sharing system including a central data access system, a plurality of application support processors connected to the data access system, and a data storage system also connected to the data access system and holding a data base, the method comprising the steps of:

forming a plurality of directories from data in the data base;

acquiring at least one of the directories in at least one of the application support processors;

for each directory acquired by at least one application support processor, establishing a directory gate block;

for each application support processor that has acquired at least one directory

(i) establishing a local control structure,

(ii) establishing a directory acquired block for each directory acquired by the application support processor, and identifying in each directory acquired block, a location of the directory gate block established for the directory for which the directory acquired block was established,

(iii) arranging in a local chain, directory acquired blocks established for the application support processor,

(iv) identifying a first of the directory acquired blocks in said local chain, in the local control structure, and

(v) identifying each successive directory acquired block in said local chain in a prior directory acquired block in the chain;

using the application support processors to activate the data access system to make changes to the database;

for each directory acquired by at least one application support processor,

(i) storing in the data access system, records of changes to the database that affect the directory,

(ii) arranging records of said changes in a record chain,

(iii) identifying a location of a first of the records in the record chain, in the directory gate block established for the directory, and

(iv) identifying a location of each successive record in the record chain, in a prior record in the chain; and

periodically transmitting to the application support processors, records of changes to the data base that affect the directories acquired by the application support processors to update the acquired directories, the transmitting step including the step of, for each application support processor that has acquired at least one directory,

(i) periodically checking the directory acquired blocks established for the application support processor to identify all the directories acquired by that application support processor, and

(ii) transmitting to the application support processor records of changes to the database that affect the directories acquired by the application support processor.

2. A file sharing system, comprising:

a file access processor for processing requests, and including a central data access system, and a storage access system for accessing a database, the storage access system being connected to the central data access system to transmit data to and to receive data from the central data access system,

the central data access system including

(i) means to form a plurality of directories from data in the database, and

(ii) means to change data in the database;

a plurality of application support processors connected to the central data access system to transmit data to and to receive data from the central data access system, each application support processor including

(i) means to receive input from a user and to transmit the input to the central data access system, and

(ii) a cache to acquire and hold directories formed by the data access system;

for each directory acquired by at least one application support processor, the central data access system further including (iii) a directory gate block;

the central data access system further including (iv) means to form a multitude of directory change request blocks, each formed directory change request block holding information describing a change in the database that affect one of the directories, the formed directory change request blocks holding information describing changes that affect a given directory being grouped in a chain, with a first directory change request block in the chain being identified by the directory gate block established for the given directory, and each subsequent directory change request block in the chain being identified by a prior directory change request block in the chain;

for each application support processor that has acquired at least one directory, the central data access system further including

(v) a local control structure, and

(vi) a directory acquired block for each directory copied by the application support processor, directory acquired blocks being grouped in a local chain, a first directory acquired block in the local chain being identified by the local control structure, each subsequent directory acquired block in the local chain being identified by a prior directory acquired block in the chain, to help identify all the directories copied by the application support processor.

3. A method of maintaining updated file characteristics in a file sharing system wherein a plurality of application support processors each have their own local cache structure for holding copies of all directories which they have acquired, comprising the following steps:

creating a change request block for globally holding updated information identifying and describing a change in a database that applies to a directory;

establishing a directory acquired block in a local structure for each application support processor whenever a directory is acquired by the application support processor to identify each directory which is acquired;

checking periodically to identify all the directories acquired by each application support processor;

keeping track of those change request blocks which relate to a particular directory; and

transmitting the updated information in all of those change request blocks to the local cache structure for every application support processor which has acquired that particular directory.

4. A method according to claim 3 further including the step of periodically removing the records of changes in the change request blocks that affect a particular directory and that have been transmitted to all of the application support processors that have acquired the particular directory.

5. A method according to claim 4, further including the step of storing consecutive control numbers identifying every one of the changes that affect each directory.

6. A method according to claim 5, wherein the removing step includes the steps of:

for each directory acquired by each application support processor, recording a highest numbered record of changes that affect the directory that have been transmitted to the application support processor; and

for each directory, periodically removing the records of changes that affect the directory and that are identified by a control number equal to or less than said highest numbered record.

7. A method according to claim 6, wherein the step of recording the highest numbered record of changes that affect a directory and that have been transmitted to an application support processor includes the step of recording said highest numbered record in the directory acquired block established for the directory and the application support processor.

8. A method according to claim 3, further including the steps of, for each directory acquired by at least one application support processor,

arranging in a participating chain, the directory acquired blocks established for the directory,

identifying a first of the directory acquired blocks in said participating chain, in a directory gate block established for keeping track of change request blocks for the directory; and

identifying each successive directory acquired block in said participating chain, in a prior directory acquired block in the participating chain.

9. A method according to claim 3 further including for each directory the steps of arranging the change request blocks in a record chain, identifying the location of a first change request block in a directory gate block established for the directory, identifying the location of each successive record in the record chain through other records in the chain, and identifying in each directory acquired block a location of the directory gate block established for the same directory.

10. A method according to claim 9, wherein:

for each directory acquired by at least one application support processor, a step of arranging records of changes that affect the directory includes the step of identifying consecutively stored records of changes that affect the directory by consecutive numbers; and

for each directory acquired by each application support processor, the step of maintaining the register of the records of changes that affect the directory and that have been transmitted to the application support processor includes the step of recording a highest numbered record of changes that affect the directory and that have been transmitted to the application support processor.

11. A method according to claim 10, wherein for each directory acquired by each application support processor, the step of recording the highest numbered record of changes that affect the directory and that have been transmitted to the application support processor, includes the step of recording in the directory acquired block established for the directory a control number indicating said highest numbered record transmitted, and

wherein said method further includes the step of keeping in the directory gate block established for the directory a different control number indicating a lowest numbered record awaiting to be transmitted.

12. A method according to claim 3 further including the steps of, for each directory acquired by each application support processor, maintaining a register of the records of changes that affect the directory and that have been transmitted to the application support processor, and transmitting to the application support processor only the records of changes that affect the directory and that were not previously transmitted to the application support processor.

13. A method according to claim 3 wherein said creating step further includes determining the identity of a directory for which updated information in a new change request block has been received, and then searching a directory hash table to locate any other change request blocks having additional updated information for the same directory.

14. A method according to claim 3 wherein the file sharing system includes global and local control structures, and further including latching various control structures to prevent processing on behalf of one application support processor from changing control structures being used on behalf of another application support processor.

15. A file sharing system for maintaining updated file characteristics wherein a plurality of application support processors each have their own local cache structure for holding copies of all directories which they have acquired, comprising:

global control means for creating a change request block holding updated information from a database applicable to a directory;

a local control structure associated with each application support processor and which is connected with said global control means, said local control structure including a directory acquired block for each directory acquired by the application support processor;

monitor means in communication with said global control means and said local control structure for listing all the directories acquired by each application support processor, and for keeping track of all change request blocks relating to a particular directory; and

data transfer path means between said global control means and the application support processors and through said local control structure and activated by said monitor means, for transmitting the updated information in change request blocks to every application support processor which has acquired that particular directory.

16. A file sharing system according to claim 15, wherein:

all of the directory acquired blocks established for a given directory are grouped in a participating chain;

a first of the directory acquired blocks in the participating chain is identified by the directory gate block established for a given directory; and

each subsequent directory acquired block in the participating chain is identified by a prior directory acquired block in the participating chain.

17. A file sharing system according to claim 16, further including means to remove directory change request blocks describing changes that affect a given directory and that have been transmitted to all the application support processors that have acquired the given directory.

18. A file sharing system according to claim 15 wherein each directory acquired block includes means forming a chain with every other such directory acquired blocks for the given directory as well as means identifying the location of a directory gate block established for keeping track of change request blocks for the given directory.

19. A file sharing system according to claim 17, wherein the means to remove the directory change request blocks includes means to identify the directory change request blocks describing changes that affect a given directory and that have been transmitted to all the application support processors that have acquired the given directory.

20. A file sharing system according to claim 19, wherein:

the directory change request blocks describing changes that affect each acquired directory are numbered consecutively within the chain formed by the directory change request blocks; and

the directory acquired block established for a given directory and a given application support processor includes means identifying the number of the highest numbered directory change request block describing changes that the given directory and that has been transmitted to the given application support processor.

21. A file sharing system according to claim 20, wherein the means to identify the directory change request blocks further includes means to scan the directory acquired blocks established for the given directory for the lowest number of said highest numbered directory change request blocks.

22. A file sharing system according to claim 20, wherein the directory gate block for each acquired directory further includes:

means identifying a lowest numbered directory change request block holding changes that affect the directory; and

means identifying the highest numbered directory change request block holding changes that affect the directory.

23. A file sharing system according to claim 20, wherein each directory change request block holding a change that affects a given directory includes:

means identifying the given directory;

means identifying the change that affect the given directory.

24. A file sharing system according to claim 23, wherein selected directory change request blocks further include means identifying the application support processors authorized to receive data in the selected directory change request blocks.

25. A file sharing system of claim 16 wherein said global control means includes a directory hash table for locating any directory gate block established for a given directory.

26. A file sharing system of claim 15 which further includes latching means coupled to said global control means and said local control structure for preventing one application support processor from interfering with control blocks which are being processed by another application support processor.
 Description Submit all comments and votes
 


BACKGROUND OF THE INVENTION

This invention generally relates to cache management in a file sharing system, and more particularly, to a cache management system especially well-suited to update directories acquired by application support processors of the file sharing system.

A file sharing system includes a central file access processor and a plurality of application support processors. The file access processor manages access to a database, may be used to form directories from data in that database, and allows the support processors to acquire those formed directories. A group of application support processors may operate asynchronously, sharing the set of file resources managed by a file access processor, and the application support processors also maintain local caches in which various acquired directories may be stored. These local caches improve the performance of the application support processors by reducing the need to communicate with the file access processor for information about files in the file access processor.

Generally, a file access processor includes a service system, a data access system, and a storage access system. The service system provides a variety of services for the processor, including the initial receipt of requests, forwarding responses for file access, and dispatching an activation of the data access system. The data access system processes individual requests and maintains a set of catalogues that contain control and descriptive information concerning the set of files managed by the file access processor. These catalogues include data file control, security, integrity, concurrency, inter-relationship, recovery, status, and other control information. The storage access system manages the data blocks that comprise the data files, the set of records that comprise the catalogues, the set of locks that permit concurrency, and the grouping of work items that represent recovery units.

A group of application support processors may each acquire the same directory from the file access processor, and a user at a first of these support processors may make several changes to the directory. It is desirable that these changes themselves be transmitted to the other support processors that have acquired the same directory in order to keep these directory copies current Moreover, it is important that the recording, storing and transmission of directory change data be done in an efficient and effective manner.

SUMMARY OF THE INVENTION

An object of this invention is to provide cache management support for a file sharing system.

Another object of the present invention is to provide methods and systems for updating directories acquired by application support processors serviced by a central file access processor.

A further object of this invention is to store changes made to a directory by an application support processor serviced by a file access processor, and to transmit those changes automatically to other application support processors that have acquired that same directory.

These and other objectives are obtained with a file sharing system including a file access processor and a plurality of application support processors; and the file access processor, in turn, includes a central data access system and a storage access system. The file access processor is provided for processing requests; and the storage access system is provided for accessing a database. The central data access system includes means to form a plurality of directories from data in the database and means to change data in that database. The application support processors are connected to the central data access system to transmit data to and to receive data from the central data access system; and each application support processor includes means to receive input from a user and to transmit the input to the central data access system, and a cache to acquire and hold directories formed by the data access system.

For each directory acquired by at least one application support processor, the central data access system further includes a directory gate block, and a multitude of directory change request blocks. Each directory change request block holds information identifying and describing a change in the database that applies to the directory; and the directory change request blocks are grouped in a chain, with a first directory change request block in the chain being identified by the directory gate block, and each subsequent directory change request block in the chain being identified by a prior directory change request block in the chain.

For each application support processor that has acquired at least one directory, the central data access system further includes a local control structure established for the support processor, and a directory acquired block for each directory acquired by the application support processor. The directory acquired blocks are grouped in a local chain, with a first directory acquired block in this chain being identified by the local control structure established for the application support processor, and each subsequent directory access block in the local chain being identified by a prior directory acquired block in the chain. Preferably, all of the directory acquired blocks established for a given directory are grouped in a participating chain. A first of the directory acquired blocks in the participating chain is identified by the directory gate block established for the given directory, and each subsequent directory acquired block in this chain is identified by a prior directory acquired block in the participating chain.

Periodically, records of changes to the database that apply to acquired directories, are transmitted to the application support processors that have acquired those directories to update these directory copies. More specifically, the data acquired blocks established for each application support processor are periodically checked to identify all the directories acquired by the application support processor, and records of changes that apply to those directories are then transmitted to that processor.

Further benefits and advantages of the invention will become apparent from a consideration of the following detailed description given with reference to the accompanying drawings, which specify and show preferred embodiments of the invention.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram generally outlining a file access processor, several systems thereof, and its relationship to a group of application support processors.

FIG. 2 is a block diagram showing the transmission of certain data from the file access processor to a pair of application support processors.

FIG. 3 is a block diagram illustrating cache data flow in a data access system.

FIG. 4 is a block diagram showing cache control structures of this invention, and in particular, showing a multitude of Directory Gate Blocks chained to a Directory Hash Table.

FIG. 5 also shows cache control structures, and in particular, illustrates a multitude of Directory Change Request Blocks, Directory Gate Blocks, and Directory Acquired Blocks.

FIG. 6 illustrates the contents of several cache control structures.

FIGS. 7 and 8 are flow charts showing the ACQUIRE and NOTIFY operations, respectively, of the cache control system of this invention.

FIGS. 9 and 10 illustrate the RETRIEVE operation of the cache control system.

FIGS. 11 and 12 are flow charts illustrating the CLEAN-UP and RELEASE operations, respectively, of the cache control system of this invention.

FIG. 13 depicts the PURGE operation of the cache control system.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

FIG. 1 illustrates file sharing system 10 comprising a central file access processor 12 and a multitude of application support processors 14. The file access processor includes service system 16, data access system 18 and storage access system 20. A File Access Processor 12 services requests from a set of Application Support Processors 14 which can exist in a global network, with each Application Support Processor sharing access to data in files stored by and managed by one or more File Access Processors 12. Each Application Support Processor 14 also maintains an internal cache of file information to improve performance by reducing communications with the File Access Processor 12 for information about files.

File Access Processor 12 manages access to a set of data files and information about files held in file directories. File directories allow for grouping and managing file collections, relate to each other hierarchically, and may be shared. The File Access Processor also maintains therein a set of catalogs, which are repositories of internal information in the File Access Processor for its own internal use, and which are not directly available and accessible to Application Support Processors, as are the data files and directories.

The Service System 16 provides environmentally dependent services for the processor 12, including the initial receipt of requests, forwarding requests for file access, and dispatching an activation of the Data Access System 18. The Data Access System 18 processes individual requests, and maintains a set of catalogs that contain control and descriptive information concerning the set of directories and files managed by the File Access Processor 12. The Storage Access System 20 manages the data blocks that comprise the data files, which may form a database stored in an external data storage medium 22. The Storage Access System also manages the set of records that comprise the catalogs, the set of locks that permit concurrency, and the grouping of work items that represent recovery units.

The Data Access System has a number of subcomponents including the Session Management Subcomponent 24, the Request Management Subcomponent 26, the Space Management Subcomponent 30, the Catalog Management Subcomponent 32, and the Cache Management Subcomponent 34. The Session Management Subcomponent receives requests through the Service System and it is the focal point of control and includes a set of fundamental services for response formulation. Session Management determines which Request Management Subcomponent routine should be invoked to service a request and passes control to Request Management; and at the end of request processing, Request Management passes control back to the Session Management Subcomponent to finish request processing and to forward the requested response.

Session Management Subcomponent includes a number of service routines. A start-up routine 36 is used to initialize Data Access System control structures, and a storage Pool routine 40 is used to maintain and dispense working storage for control structures. A response routine 42 is employed to assist Request Management Subcomponent routines build response messages, and to assemble the response and cache update information into a properly formatted response message. A work routine 44 is utilized to coordinate and initiate processing required when a logical group of requests are "committed" or "rolled back", i.e. manage activities at designated points of recovery.

The Work routine invokes the Catalog Management Subcomponent to accomplish catalog updates based upon Work Request Blocks (WRBs) built by Request Management, and the Work routine invokes the Space Management Subcomponent to coordinate the update of the Space Catalog. The Work routine also invokes the Storage Access System to commit changes to file blocks and catalogs, and invokes the Cache Management Subcomponent 34 to store cache notification information.

The Session Management Subcomponent further includes a Terminate routine 46 to clean up control structures at the conclusion of an activation of the Data Access System, and a WRB Condense routine 50, which supports reduction of multiple changes to the same catalog entry into a single change. The Data Access System utilizes several catalogs for managing file and directory information, and each entry in the Object Catalog, for example, contains descriptive and control information about a particular file. Work Request Blocks (WRBs) are used to save catalog change information from the time of file request processing until the time that the work unit is committed. When multiple WRBs exist for the same catalog entry, they are condensed into a single WRB.

The Request Management Subcomponent 26 includes routines for each type of request the Data Access System is designed to process As illustrated is FIG. 1, Request Management includes nine routines R1 through R9, although a typical Request Management subsystem has thirty to forty routines. Request Management utilizes the Catalog Management Subcomponent to access catalogs, uses the Space Management Subcomponent 30 to manage logical space, and employs the Cache Management Subcomponent for cache control processing. In addition, Request Management builds and maintains WRBs (Work Request Blocks), which go the the Work routine at commit time----that is, at the successful completion of a work unit----to drive catalog and cache updates. The Request Management Subcomponent 26 utilizes the Storage Access System 20 directly to engage or disengage one or more logical locks that represent commitments against files and catalogs; and Request Management invokes the Storage Access System to add, delete, and update data blocks associated with particular files according to the requirements of the current request.

The Catalog Management Subcomponent assembles the control structures required to invoke the Storage Access System 20 to access the set of catalogs that the Data Access System 18 utilizes for control information for its set of directories and files. The Space Management Subcomponent manages the logical space for an Application Support Processor represented by a FSCB (File Space Control Block), a local representation of the Space Catalog entry for the Application Support Processor. Requests that affect logical space consumption due to changes in the storage consumed by files accomplish space accounting though the Space Management Subcomponent. The Space Management Subcomponent also uses the Catalog Management Subcomponent 32 to access the Space Catalog. The Cache Management Subcomponent is invoked by the Work routine of the Session Management Subcomponent at the successful completion of a work unit to update the cached data maintained by the Data Access System 20, using information in WRBs built by the Request Management Subcomponent.

A Cache Management System which provides a local cache structure for maintaining updated file characteristics in a file sharing system is described in detail below. Other features of such a file sharing system are disclosed in the following related copending applications which are owned by the assignee of the subject application and were all filed on the same Oct. 19, 1987 filing data: Ser. No. 110,463 relates to space management; Ser. No. 110,362 relates to a locking protocol; and Ser. No. 110,370 relates to the data access system managing requests for shared access to data files. All three of the above-identified applications are incorporated herein by reference.

The purpose of the Cache Management is to collect a set, or cache, of directory change information, representing changes to file descriptions and characteristics, and periodically to distribute that change information to the Application Support Processors to update their local caches. This cache management improves the performance of the File Sharing System by reducing the need of the Application Support Processors to go to the File Access Processor for file information.

The Application Support Processors permit directories to be acquired in their local caches, and a local cache is kept for a particular directory whenever an Application Support Processor acquires that directory. When acquiring a directory, an Application Support Processor obtains all information about that directory and its files from the File Access Processor, and this information is used initially to load the Application Support Processor's local cache. Concurrently, the File Access Processor is notified that the Application Support Processor requires notification of all future changes that affect the acquired directory, and this change notification requirement remains in effect until the acquired directory is explicitly released from the local cache of the Application Support Processor.

Preferably, information for updating the local cache of an Application Support Processor is transmitted to that Processor along with normal response information that is transmitted to the Application Support Processor in response to an activation of the File Access Processor by the Application Support Processor----that is, in response to a request or inquiry from the Support Processor. Information for updating the local caches includes such items as changes to file names, file lengths, file status, and authorization to access a file. The cache change information is transmitted to the Application Support Processors in the form of individual records called Cache Notification Records (CNRs). This is illustrated in FIG. 2.

In order to manage cache notification information for Application Support Processors, the Data Access System performs several functions. First, Data Access System records which directories have been acquired by particular Application Support Processors, and this is done by means of an ACQUIRE operation, discussed in detail below. Second, as part of a NOTIFY operation, also discussed in detail below, the Data Access System recognizes changes in directory and file data that affect the central cache, records these directory changes, and accumulates the change information until the appropriate time for sending it to the interested Application Support Processors to update their local caches. Third, in a RETRIEVE operation, the Data Access System sends the change information, in the form of CNRs 56, to the interested Application Support Processors; and in a CLEAN-UP operation, the Data Access System periodically removes from its own memory the records of change information that all interested Application Support Processors have received. Both the RETRIEVE and CLEAN-UP operations are described in detail below. Fourth, if an Application Support Processor releases a previously acquired directory, the Data Access System automatically invokes a RELEASE operation and terminates the requirement that this Application Support Processor receive notification of future changes to this directory.

The Request Management Subcomponent of the Data Access System processes individual requests from the Application Support Processors. More specifically, the Request Management Subcomponent recognizes particular requests that cause a directory to be acquired by an Application Support Processor and invokes Cache Management to put that Application Support Processor on the list of those to be notified of future changes to that directory. The Request Management Subcomponent also recognizes particular requests that affect directories that were acquired by any application support processor; and generally, these requests also cause changes to various system catalogs such as the Directory Catalog, the Object Catalog, and the Authorization Catalog.

In addition, the Request Management Subcomponent builds a Work Request Block (WRB) 58 identifying and describing the catalog change and adds to the WRB additional information for Cache Management. The Work Request Blocks are used to hold this information until the end of the group of requests that comprises a work unit, whereupon the catalogues are updated and Cache Management is invoked to accumulate and store information identifying and describing the changes.

FIG. 3 summarizes this flow of information within the Data Access System as indicated by processing steps (1) to (9). The Request Management Subcomponent builds WRBs; and at the completion of the work unit, the Work Routine of Session Management gains control of the Data Access System for managing the sequence of operations that are necessary for proper processing of the work unit.

To elaborate, the Work Routine routes the WRBs to Catalog Management, which in turn transmits the change information to the Storage Access System to update the catalogues. The Work Routine also routes the WRBs to Cache Management so that the change information in the WRBs may be saved for later transmission to the Application Support Processors. If the information in a WRB describing a change to a directory is to be saved, Cache Management creates a Directory Change Request Block (DCRB) using information from the WRB, and the DCRB holds data identifying and describing a directory change until all Application Support Processors that have acquired that directory have been notified of the change. At the conclusion of processing each normal request from an Application Support Processor, Cache Management is invoked to retrieve and to transmit to that Application Support Processor, records of changes to all the directories that have been acquired by that Support Processor.

The retrieval of the records of the directory changes is accomplished by processing DCRBs that pertain to directories that have been acquired by a subject Application Support Processor. The DCRBs that are retrieved include not only those that were built as a result of the current work unit, but also those built as a result of other, prior activations of the Data Access System by other Application Support Processors. Thus, the set of DCRBs is global to all the Application Support Processors that share the File Access Processor. Once the set of DCRBs that apply to the subject Application Support Processor is determined, Cache Notification Records (CNRs) are built to hold information identifying and describing the directory changes, and these CNRs are packaged with the current request response information for transmission to the Application Support Processor.

The DCRBs pertaining to each directory are periodically checked to determine which of these DCRBs have been transmitted to all of the Application Support Processors that have acquired the directory. Those DCRBs that have been transmitted to all of these application support processors are removed from the Data Access System and this is accomplished through a periodic Cache Management operation called CLEAN-UP.

When a particular Application Support Processor is no longer interested in being notified of changes to a particular directory, the Application Support Processor is removed from a list maintained by Cache Management for that directory. This occurs explicitly when a Cache Release request is processed by the Request Management Subcomponent, and this can be done by a RELEASE operation, which is discussed in greater detail below. In addition, if a particular Application Support Processor is terminated for any reason, that Processor is removed, by means of a PURGE operation, from all the lists of Application Support Processors that receive change records.

Cache Management is further described below in terms of the control structures utilized to record directory changes and to control the transmission of those records to the Application Support Processors, and