Claims
- 1. A distributed system having data in a file residing at a server data processing system, said file data being accessible by a plurality of processes in at least one client data processing system and said server data processing system, said server data processing system and said at least one client data processing system connected by a communication means, said distributed system comprising:
- a first lock means, in said server data processing system, for serializing access to the data in the file by processes at the servor data processing system;
- a second lock means, in said client data processing system, for serializing access to data in a cache in the client data processing system corresponding to said data in said file by processes at the client data processing system;
- a third lock means in said server data processing system for serializing access to a file access structure list containing descriptions of locks granted by said first lock means at said server data processing system; and
- means for using said third lock means, to lock said file access structure list in said server data processing system, instead of using said first lock means to lock said data in said file, by an operation which is capable of causing a remote procedure call to be generated between the server data processing system and the client data processing system, said remote procedure call requiring access to the data in the cache at the client data processing system and to the data in the file at the server data processing system, thereby avoiding a lock simultaneously existing on both said first lock means and said second lock means during a remote procedure call.
- 2. The distributed system of claim 1 wherein said third lock means serializes use of said first lock means when one of said plurality of processes closes said file.
- 3. The distributed system of claim 1 wherein said third lock means serializes use of said first lock means when one of said plurality of processes opens said file.
- 4. The distributed system of claim 1 wherein said third lock means serializes use of said first lock means when a list of processes having current access to said file is interrogated.
- 5. The distributed system of claim 1 wherein said third lock means serializes use of said first lock means during a write to said file when said file is open for write access in more than one of a plurality of data processing systems.
- 6. The distributed system of claim 1 wherein said first lock means for serializing access to said data in said file at said server data processing system is locked by a process during an operation to said file in said server data processing system.
- 7. The distributed system of claim 1 wherein said first lock means for serializing access to said data in said file at said server data processing system is locked by a process during a read operation to said data in said file at said server data processing system.
- 8. The distributed system of claim 1 wherein said first lock means for serializing access to said data in said file at said server data processing system is locked by a process during a write operation to said data in said file at said server data processing system.
- 9. The distributed system of claim 1 wherein said first lock means for serializing access to said data in said file at said server data processing system is unlocked by a process before said remote procedure call is sent to said client data processing system from said server data processing system if the remote procedure call requires a lock on said second lock means for serializing access to said data in said cache in said client data processing system.
- 10. The distributed system of claim 1 wherein said first lock means for serializing access to said data in said file is unlocked by a process at said server data processing system when said server data processing system originates said remote procedure call to the client data processing system, thereby allowing the server data processing system to accept read and write requests after said remote procedure call is sent.
- 11. The distributed system of claim 1 wherein said second lock means for serializing access to said data in said cache at said client data processing system is locked by a process during an operation at said client data processing system requiring access to said data in said cache in said client data processing system.
- 12. The distributed system of claim 1 wherein said second lock means for serializing access to said data in said cache at said client data processing system is unlocked by a process if an operation at said client data processing system requires a lock on said third lock means.
- 13. The distributed system of claim 1 wherein said second lock means for serializing access to said data in said cache at said client data processing system is locked by a process during an operation at said client data processing system requiring access to said data in said cache until said remote procedure call is sent from client data processing system to said server data processing system.
- 14. The distributed system of claim 1 wherein said second lock means for serializing access to said data in said cache is unlocked at one of a plurality of client data processing systems by a process when said remote procedure call is sent to said server data processing system from said one of said plurality of client data processing systems.
- 15. A method, in a data processing system, of preventing a deadlock between a first lock that serializes access to data in a file at a server data processing system and a second lock that serializes file access within a client process in a client data processing system, said method comprising:
- locking a third lock for serializing access to a list of data corresponding to at least said first lock, representing client data processing systems having current access to said file;
- locking said first lock for serializing access to said data in said file at said server data processing system; and
- unlocking said first lock at said server data processing system before sending, by said server data processing system, a remote procedure call to said client data processing system to lock said second lock, by an operation executing at said client data processing system requiring access to the file.
- 16. A method, in a data processing system, of preventing a deadlock between a first lock that serializes access to data in a file at a server data processing system and a second lock that serializes file access in a cache in a client data processing system, said method comprising:
- locking said second lock at said client data processing system by an operation executing at said client data processing system and accessing data in said cache corresponding to said file;
- unlocking said second lock by an operation at said client data processing system before a remote procedure call request is sent from said client data processing system to said server data processing system;
- locking a third lock in said server data processing system, by said remote procedure call request, for serializing access to a list of client data processing systems having current access to said file;
- locking said first lock by an operation executing at said server data processing system and requiring access to said file at said server data processing system; and
- unlocking said first lock by said server data processing system while maintaining said third lock before sending said remote procedure call to said client data processing system if said remote procedure call requires a lock on said second lock, thereby allowing said server data processing system to accept read and write operations requiring a lock on said first lock after said remote procedure call is sent.
- 17. A method, in a data processing system, of preventing a deadlock between a first lock that serializes access to data in a file at a server data processing system and a second lock that serializes access to data, corresponding to said file, in a cache in a client data processing system, said method comprising:
- locking said first lock by an operation executing at said server data processing system and requiring access to said file at said server data processing system;
- locking said second lock by an operation executing at the client data processing system requiring access to said data in said cache;
- unlocking said second lock by an operation at said client data processing system if said operation generates a remote procedure call from said client data processing system to said server data processing system; and
- a locking a third lock for serializing access to a list of files representing client accesses to said files in said server data processing system by a second operation executing in said server data processing system in response to said remote procedure call received by said server data processing system from said client data processing system, thereby avoiding locking of both said first lock and said second lock during said remote procedure call.
- 18. A method of preventing deadlocks in a distributed data processing system of the type having at least one server data processing system having at least one file physically residing at the server data processing system and having a first data structure representing said file at said server data processing system, and at least one client data processing system having access to data from said file by a communications link between said server data processing system and said client data processing system, said client data processing system having access to said data from said file from a cache at the client data processing system, said client data processing system further having a second data structure representing said cached data at said client data processing system, said method of preventing deadlocks in a distributed processing system comprising:
- locking said first data structure during execution of an operation from a process, at said server data processing system, requiring access to at least a portion of said file at said server data processing system;
- locking said second data structure during execution of an operation from a process, at said client data processing system, requiring access to at least a portion of said file in the cache at said client data processing system; and
- unlocking said second data structure before controlling access to at least a portion of said file residing at said server data processing system by locking a third data structure, in said server data processing system, instead of locking said first data structure by said at least one client data processing system, thereby maintaining the control of the locking of said first data structure by said server data processing system and eliminating said first data structure as a critical locking resource between said client data processing system and said server data processing system.
Parent Case Info
This is a continuation of application Ser. No. 014,900 filed Feb. 13, 1987, now abandoned.
US Referenced Citations (5)
Number |
Name |
Date |
Kind |
4104718 |
Poublan et al. |
Aug 1978 |
|
4224664 |
Trinchieri |
Sep 1980 |
|
4414624 |
Summer, Jr. et al. |
Nov 1983 |
|
4527237 |
Frieder et al. |
Jul 1985 |
|
4819159 |
Shipley et al. |
Apr 1989 |
|
Non-Patent Literature Citations (1)
Entry |
Rifkin et al., "RFS Architectual Overview", pp. 1-12. |
Continuations (1)
|
Number |
Date |
Country |
Parent |
14900 |
Feb 1987 |
|