System for file and record locking between nodes in a distributed data processing environment maintaining one copy of each file lock
First Claim
1. A method for locking at least one range of a file residing at a first node of a data processing system, said method comprising:
- maintaining, in memory at said first node, information describing said at least one locked range of said file, said information used to service at least one locking request from at least one process located in at least one second node;
moving, from said first node, said information to reside in memory at one of said at least one second node when each of said at least one process resides at said one of said at least one second node; and
servicing, at said one of said at least one second node, a subsequent lock request, performed by any process residing at the one of said at least one second node, using said moved information.
0 Assignments
0 Petitions
Accused Products
Abstract
A conventional single node operating system is provided with a distributed file management system (DFS) with a plurality of nodes and a plurality of files. The DFS uses the UNIX operating system tree structure employing inodes (data structure containing administrative information for each file) to manage the local files and surrogate inodes (s-- inode) to manage access to files existing on another node. In addition, the DFS uses a lock table to manage the lock status of files. The method which implements the DFS locking of records and files involves the following steps. If the file is a local file, then the UNIX operating system standard file locking is used. However, if a remote file is to be locked, the UNIX operating system LOCKF and FCNTL system calls are intercepted and an remote process call (RPC) DFS-- LOCK-- CONTROL is executed. The server node receives the remote process call and carries out the lock request. The request could entail locking a single record, a set of records or the whole file. The server then acknowledges receipt of the RPC by sending a signal while the client surrogate inode is waiting for a reply from the DFS-- LOCK-- CONTROL RPC. The client confirms the reception of the lock and sends an acknowledgement to the remote server. The server updates the lock table after receiving the acknowledgement from the client surrogate inode. If the server does not confirm the reception of DFS-- LOCK-- CONTROL'"'"'s acknowledgement, then DFS-- LOCK-- CONTROL updates the lock table.
-
Citations
18 Claims
-
1. A method for locking at least one range of a file residing at a first node of a data processing system, said method comprising:
-
maintaining, in memory at said first node, information describing said at least one locked range of said file, said information used to service at least one locking request from at least one process located in at least one second node; moving, from said first node, said information to reside in memory at one of said at least one second node when each of said at least one process resides at said one of said at least one second node; and servicing, at said one of said at least one second node, a subsequent lock request, performed by any process residing at the one of said at least one second node, using said moved information.
-
-
2. A method for locking at least one range of a file residing at a first node of a data processing system, said method comprising:
-
maintaining, in memory at said first node, information describing said at least one locked range of said file, said information used to service at least one locking request from at least one process located in at least one second node; moving, from said first node, said information to reside in memory at one of said at least one second node when each of said at least one process resides at said one of said at least one second node; servicing, at said one of said at least one second node, a subsequent lock request, performed by any process residing at the one of said at least one second node, using said moved information and; moving, from said one of said at least one second node, said moved information to reside in memory at said first node when at least one operation performed at a different node than said one of said at least one second node requires the use of the information describing said at least one locked range of said file.
-
-
3. A method for locking at least one range of a file residing at a first node of a data processing system, said method comprising:
-
creating information that resides in memory at at least one second node and that describes said at least one locked range of said file, said information used to service at least one locking request from at least one process located in at least one second node; and servicing, at said one of said at least one second node, a subsequent lock request, performed by any process residing at the one of said at least one second node, using said information only when each of said at least one process resides at said one of said at least one second node.
-
-
4. A method for locking at least one range of a file residing at a first node of a data processing system, said method comprising:
-
creating information that resides in memory at at least one second node and that describes said at least one locked range of said file, said information used to service at least one locking request from at least one process located in said at least one second node; servicing, at said at least one second node, a subsequent lock request, performed by any process residing at the one of said at least one second node, using said information when each of said at least one process resides at said one of said at least one second node; and storing, in memory at said first node, said information when at least one operation performed at a different node than said one of said at least one second node requires use of said information describing said at least one locked range of said file.
-
-
5. A system, in a data processing system, for locking at least one range of a file residing at a first node of said data processing system, said system comprising:
-
a data structure, at said first node, describing said at least one range of said file, said data structure being used to service at least one locking request from at least one process located in at least one second node; means for moving, from said first node, said data structure to reside at one of said at least one second node when each of said at least one process resides at said one of said at least one second node; and means for servicing, at said one of said at least one second node, a subsequent lock request, performed by any process residing at the one of said at least one second node, using said moved data structure.
-
-
6. A system in a data processing system, for locking at least one range of a file residing at a first node of said data processing system, said system comprising:
-
a data structure, at said first node, describing said at least one locked range of said file, said data structure used to service at least one locking request from at least one process located in at least one second node; first means for moving, from said first node, said data structure to reside at one of said at least one second node when each of said at least one process resides at said one of said at least one second node; means for servicing, at said one of said at least one second node, a subsequent lock request, performed by any process residing at the one of said at least one second node, using said moved data structure; and second means for moving, from said one of said at least one second node, said moved data structure to said first node when at least one operation performed at a different node than said one of said at least one second node requires the use of the data structure describing said at least one locked range of said file.
-
-
7. A system, in a data processing system, for locking at least one range of a file residing at a first node of said data processing system, said system comprising:
-
a data structure, which resides at one of said at least one second node, describing said at least one locked range of said file, said data structure used to service at least one locking request from at least one process located in at least one second node; and means for servicing, at said one of said at least one second node, a subsequent lock request, performed by any process residing at the one of said at least one second node, using said data structure residing at said one of said at least one second node when each of said at least one process resides at said one of said at least one second node.
-
-
8. A system, in a data processing system, for locking at least one range of a file residing at a first node of said data processing system, said system comprising:
-
a data structure, which resides at one of said at least one second node, describing said at least one locked range of said file, said data structure used to service at least one locking request from at least one process located in at least one second node; means for servicing, at said one of said at least one second node, a subsequent lock request, performed by any process residing at the one of said at least one second node, using said data structure when each of said at least one process resides at said one of said at least one second node; and means for storing, in said first node, said data structure when at least one operation performed at a different node than said one of said at least one second node requires the use of the data structure describing said at least one locked range of said file.
-
-
9. A method for locking a range of bytes of a file residing at a first node of a data processing system, said method comprising:
-
sending a message from a second node to the first node requesting a lock on the range of bytes of the file residing in storage at said first node; sending notification from the first node to the second node that the lock is available; and releasing the lock at the first node when a confirmation of said sent notification is not received by said first node from said second node.
-
-
10. A system for locking a range of bytes of a file residing at a first node and accessible by processes located at a least one second node, said system comprising:
-
a first message from the second node to the first node requesting a lock; means for sending notification from the fist node to the second node that the lock is available; and means for releasing the lock at the first node when a confirmation of said sent notification is not received by said first node from said second node.
-
-
11. A method for locking at least one range of a file residing at a first node of a data processing system, said method comprising:
-
intercepting, in one of a at least one second node, any file locking system operation that is being applied to said file from an application running in one of the at least one second node; invoking a remote procedure call in said one of the at least one second node; processing said remote procedure call in said first node; returning to said one of the at least one second node information describing the state of the locks of the file; and using said information, which resides in memory of said one of the at least one second node, to perform said locking system operation in said one of the at least one second node. - View Dependent Claims (12)
-
-
13. A method of providing file locks in a distributed data processing system of the type having a plurality of nodes and a plurality of files physically residing at different ones of said nodes and a distributed file management system with a plurality of inodes comprising administrative information for each of said plurality of files and a plurality of surrogate inodes;
- said plurality of inodes including a server inode, at a server node, including access control means for a local file or a portion of said local file of said plurality of files and said plurality of surrogate inodes including a client surrogate inode, at a client node, corresponding to said server inode providing remote access control means for said local file, said remote access control means including locking means for locking said server inode to secure said local file or said portion of said local file, said method of providing file locks including;
unlocking said surrogate inode at said client node in response to said remote access control means locking said local file or said portion of said local file, sending a remote procedure call for obtaining a lock on said local file or said portion of said local file by means of said remote access control means from said client node to said server node subsequent to said step of unlocking said surrogate inode, and controlling the grant of a lock in response to said remote procedure call. - View Dependent Claims (14, 15, 16, 17, 18)
- said plurality of inodes including a server inode, at a server node, including access control means for a local file or a portion of said local file of said plurality of files and said plurality of surrogate inodes including a client surrogate inode, at a client node, corresponding to said server inode providing remote access control means for said local file, said remote access control means including locking means for locking said server inode to secure said local file or said portion of said local file, said method of providing file locks including;
Specification