WikiPatents - Community Patent Review
Create Free Account  |  License or Sell Your Patent  |  WikiPatents Marketplace  |  WikiPatents Blog
Username:  Password:  
    
Advanced Search
System for file and record locking between nodes in a distributed data processing environment maintaining one copy of each file lock    
United States Patent5202971   
Link to this pagehttp://www.wikipatents.com/5202971.html
Inventor(s)Henson; Larry W. (Austin, TX); Shaheen-Gouda; Amal A. (Austin, TX); Smith; Todd A. (Austin, TX)
AbstractA 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.sub.-- 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.sub.-- LOCK.sub.-- 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.sub.-- LOCK.sub.-- 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.sub.-- LOCK.sub.-- CONTROL's acknowledgement, then DFS.sub.-- LOCK.sub.-- CONTROL updates the lock table.



 Title Information Submit all comments and votes
 
Patent Text Patent PDF Print Page Summary File History
Plain text PDF images Print Summary File History
Drawing from US Patent 5202971
System for file and record locking between nodes in a distributed data

     processing environment maintaining one copy of each file lock - US Patent 5202971 Drawing
System for file and record locking between nodes in a distributed data processing environment maintaining one copy of each file lock
Inventor     Henson; Larry W. (Austin, TX); Shaheen-Gouda; Amal A. (Austin, TX); Smith; Todd A. (Austin, TX)
Owner/Assignee     International Business Machines Corporation (Armonk, NY)
Patent assignment
All assignments
Publication Date     April 13, 1993
Application Number     07/629,073
PAIR File History     Application Data   Transaction History
Image File Wrapper   Patent Term   Fees
Litigation
Filing Date     December 17, 1990
US Classification     707/8 710/200
Int'l Classification     G06F 012/14
Examiner     Lee; Thomas C.
Assistant Examiner     Coleman; Eric
Attorney/Law Firm     Whitham; C. Lamont
Address
Parent Case     This is a continuation of Ser. No. 07/014,891, filed Feb. 13, 1987, now abandoned.
Priority Data    
USPTO Field of Search     364/200 364/900 395/600 395/425 395/725
Patent Tags     file record locking between nodes distributed data processing environment maintaining one copy each file lock
   
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
4887204
Johnson
707/10
Dec,1989

[0 after 0 votes]
4868866
Williams, Jr.
707/9
Sep,1989

[0 after 0 votes]
4858116
Gillett, Jr.
711/155
Aug,1989

[0 after 0 votes]
4819159
Shipley
714/19
Apr,1989

[0 after 0 votes]
4805106
Pfeifer
710/200
Feb,1989

[0 after 0 votes]
4751702
Beier
714/13
Jun,1988

[0 after 0 votes]
4742450
Duvall
719/310
May,1988

[0 after 0 votes]
4720784
Radhakrishnan
710/107
Jan,1988

[0 after 0 votes]
4719569
Ludemann
710/241
Jan,1988

[0 after 0 votes]
4716528
Crus
710/200
Dec,1987

[0 after 0 votes]
4714992
Gladney
707/206
Dec,1987

[0 after 0 votes]
4698752
Goldstein
707/8
Oct,1987

[0 after 0 votes]
4663748
Karbowiak
370/224
May,1987

[0 after 0 votes]
4633392
Vincent
710/104
Dec,1986

[0 after 0 votes]
4621321
Boebert
707/8
Nov,1986

[0 after 0 votes]
4590468
Stieglitz
340/825.5
May,1986

[0 after 0 votes]
4577272
Ballew
714/15
Mar,1986

[0 after 0 votes]
4574350
Starr
710/200
Mar,1986

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

[0 after 0 votes]
4476528
Matsumoto
707/1
Oct,1984

[0 after 0 votes]
4439830
Chueh
711/164
Mar,1984

[0 after 0 votes]
4400771
Suzuki
711/151
Aug,1983

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

[0 after 0 votes]
4358823
McDonald
714/11
Nov,1982

[0 after 0 votes]
4313161
Hardin
711/151
Jan,1982

[0 after 0 votes]
4214304
Shimizu
711/152
Jul,1980

[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 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.

12. The method of claim 11 further comprising the step of intercepting, in one of the at least one second node, at least one subsequent file locking system call that is being applied to said file from an application running in said one of the at least one second node, and using said information, which resides in said one of the at least one second node, to perform said at least one subsequent file locking system call in said one of the at least one second node.

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.

14. The method for locking said local files from a local node in a distributed data processing system as recited in claim 13 further including the steps of:

requesting an unlock of said local file from said server node; and

unlocking said local file.

15. The method for locking said local files from a local node in a distributed data processing system as recited in claim 13 wherein said step of controlling the grant of a lock further includes

locking said local file of said portion of said local file by means of said remote access control means, wherein said method further includes the step of:

locking said inode of said server node subsequent to said step of locking said local file of said portion of said local file by means of said remote access control means.

16. The method of providing file locks in a distributed data processing system as recited in claim 13 further including locking said local files from said server node including the steps of:

requesting a lock on said local file from said server node, and

locking said local file by means of said remote access control means.

17. The method of providing file locks in a distributed data processing system as recited in claim 16, wherein said step of requesting a lock further includes

intercepting a remote procedure call from said server node to said client node of said distributed data processing system, and

transmitting said remote procedure call to said client node subsequent to said step of locking said local file by means of said remote access control means.

18. The method for locking said local files from a local node in a distributed data processing system as recited in claim 17, wherein said step of controlling the grant of a lock further includes

locking said local file of said portion of said local file by means of said remote access control means, wherein said method further comprising the step of:

locking said inode of said server node subsequent to said step of locking said local file of said portion of said local file by means of said remote access control means.
 Description Submit all comments and votes
 


CROSS REFERENCE TO RELATED APPLICATIONS

This application is related in subject matter to the following applications filed concurrently herewith and assigned to a common assignee:

Application Ser. No. 07/014,899, now U.S. Pat. No. 4,897,781, filed by A. Chang, G. H. Neuman, A. A. Shaheen-Gouda, and T. A. Smith for A System And Method For Using Cached Data At A Local Node After Re-opening A File At A Remote Node In A Distributed Networking Environment.

Application Ser. No. 07/014,884, now abandoned filed by D. W. Johnson, L. W. Henson, A. A. Shaheen-Gouda, and T. A. Smith for Negotiating Communication Conventions Between Nodes In A Network.

Application Ser. No. 07/014,897, now U.S. Pat. No. 4,887,204, filed by D. W. Johnson, G. H. Neuman, C. H. Sauer, A. A. Shaheen-Gouda, and T. A. Smith for A System and Method For Accessing Remote Files In A Distributed Networking Environment.

Application Ser. No. 07/014,900, now U.S. Pat. No. 5,175,892, filed by D. W. Johnson, A. A. Shaheen-Gouda, T. A. Smith for Distributed File Access Structure Lock.

Application Ser. No. 07/014,892, now U.S. Pat. No. 5,001,628, filed by D. W Johnson, L. K. Loucks, C. H. Sauer, and T. A. Smith for Single System Image Uniquely Defining An Environment for Each User In A Data Processing System.

Application Ser. No. 07/014,888, now U.S. Pat. No. 5,133,053, filed by D. W. Johnson, L. K. Loucks, A. A. Shaheen-Gouda for Interprocess Communication Queue Location Transparency.

Application Ser. No. 07/014,889, now U.S. Pat. No. 5,151,989, filed by D. W. Johnson, A. A. Shaheen-Gouda, and T. A. Smith for Directory Cache Management In A Distributed Data Processing System.

The disclosures of the foregoing co-pending applications are incorporated herein by reference.

DESCRIPTION

1. Field of the Invention

This invention generally relates to improvements in operating systems for a distributed data processing system and, more particularly, to an operating system for a multi-processor system interconnected by a local area network (LAN) or a wide area network (WAN). IBM's System Network Architecture (SNA) may be used to construct the LAN or WAN. The operating system according to the invention permits the accessing of files by processors in the system, no matter where those files are located in the system. The preferred embodiment of the invention is disclosed in terms of a preferred embodiment which is implemented in a version of the UNIX.sup.1 operating system; however, the invention could be implemented in other and different operating systems.

.sup.1 Developed and licensed by AT&T. UNIX is a registered trademark of AT&T in the U.S.A. and other countries.

2. Background of the Invention

Virtual machine operating systems are known in the prior art which make a single real machine appear to be several machines. These machines can be very similar to the real machine on which they are run or they can be very different. While many virtual machine operating systems have been developed, perhaps the most widely used is VM/370 which runs on the IBM System/370. The VM/370 operating system creates the illusion that each of several users operating from terminals has a complete System/370 with varying amounts of disk and memory capacity.

The physical disk devices are managed by the VM/370 operating system. The physical volumes residing on disk are divided into virtual volumes of various sizes and assigned and accessed by users carrying out a process called mounting. Mounting defines and attaches physical volumes to a VM/370 operating system and defines the virtual characteristics of the volumes such as size, security and ownership.

Moreover, under VM/370 a user can access and use any of the other operating systems running under VM/370 either locally on the same processor or remotely on another processor. A user in Austin can use a function of VM/370 called "passthru" to access another VM/370 or MVS/370 operating system on the same processor or, for example, a processor connected into the same SNA network and located in Paris, France. Once the user has employed this function, the files attached to the other operating system are available for processing by the user.

There are some significant drawbacks to this approach. First, when the user employs the "passthru" function to access another operating system either locally or remotely, the files and operating environment that were previously being used are no longer available until the new session has been terminated. The only way to process files from the other session is to send the files to the other operating system and effectively make duplicate copies on both disks. Second, the user must have a separate "logon" on all the systems that are to be accessed. This provides the security necessary to protect the integrity of the system, but it also creates a tremendous burden on the user. For further background, the reader is referred to the text book by Harvey M. Deitel entitled An Introduction to Operating Systems, published by Addison-Wesley (1984), and in particular to Chapter 22 entitled "VM: A Virtual Machine Operating System". A more in depth discussion may be had by referring to the text book by Harold Lorin and Harvey M. Deitel entitled Operating Systems, published by Addison-Wesley (1981), and in particular to Chapter 16 entitled "Virtual Machines".

The invention to be described hereinafter was implemented in a version of the UNIX operating system but may be used in other operating systems having characteristics similar to the UNIX operating system. The UNIX operating system was developed by Bell Telephone Laboratories, Inc., for use on a Digital Equipment Corporation (DEC) minicomputer but has become a popular operating system for a wide range of minicomputers and, more recently, microcomputers. One reason for this popularity is that the UNIX operating system is written in the C programming language, also developed at Bell Telephone Laboratories, rather than in assembly language so that it is not processor specific. Thus, compilers written for various machines to give them C capability make it possible to transport the UNIX operating system from one machine to another. Therefore, application programs written for the UNIX operating system environment are also portable from one machine to another. For more information on the UNIX operating system, the reader is referred to UNIX.sup.TM System, User's Manual, System V, published by Western Electric Co., January, 1983. A good overview of the UNIX operating system is provided by Brian W. Kernighan and Rob Pike in their book entitled The Unix Programming Environment, published by Prentice-Hall (1984). A more detailed description of the design of the UNIX operating system is to be found in a book by Maurice J. Bach, Design of the Unix Operating System, published by Prentice-Hall (1986).

AT&T Bell Labs has licensed a number of parties to use the UNIX operating system, and there are now several versions available. The most current version from AT&T is version 5.2. Another version known as the Berkeley version of the UNIX operating system was developed by the University of California at Berkeley. Microsoft, the publisher of the popular MS-DOS and PC-DOS operating systems for personal computers, has a version known under their trademark as XENIX. With the announcement of the IBM RT PC.sup.2 (RISC (reduced instruction set computer) Technology Personal Computer) in 1985, IBM Corp. released a new operating system called AIX.sup.3 (Advanced Interactive Executive) which is compatible at the application interface level with AT&T's UNIX operating system, version 5.2, and includes extensions to the UNIX operating system, version 5.2. For more description of the AIX operating system, the reader is referred to AIX Operating System Technical Reference, published by IBM Corp., First Edition (November, 1985).

.sup.2 RT and RT PC are registered trademarks of IBM Corporation.

.sup.3 AIX is a trademark of IBM Corporation.

The invention is specifically concerned with distributed data processing systems characterized by a plurality of processors interconnected in a network. As actually implemented, the invention runs on a plurality of IBM RT PCs interconnected by IBM's Systems Network Architecture (SNA), and more specifically SNA LU 6.2 Advanced Program to Program Communication (APPC). SNA uses as its link level Ethernet.sup.4, a local area network (LAN) developed by Xerox Corp., or SDLC (Synchronous Data Link Control). A simplified description of local area networks including the Ethernet local area network may be found in a book by Larry E. Jordan and Bruce Churchill entitled Communications and Networking for the IBM PC, published by Robert J. Brady (a Prentice-Hall company) (1983). A more definitive description of communications systems for computers, particularly of SNA and SDLC, is to be found in a book by R. J. Cypser entitled Communications Architecture for Distributed Systems, published by Addison-Wesley (1978). It will, however, be understood that the invention may be implemented using other and different computers than the IBM RT PC interconnected by other networks than the Ethernet local area network or IBM's SNA.

.sup.4 Ethernet is a trademark of Xerox Corporation.

As mentioned, the invention to be described hereinafter is directed to a distributed data processing system in a communication network. In this environment, each