US5881229A
Expired / Lapsed
US
⏱️ 0.0 years remaining
Method and product for enchancing performance of computer networks including shared storage objects
Assignee: Intel Corp
•
Filing: 1996-04-26
•
Granted: 1999-03-09
•
Expires: 2016-04-26
Abstract
Abstract An installable performance accelerator for computer network distributed file systems is provided. A cache subsystem is added onto, or plugged into, an existing distributed file system with no source code modifications to the operating system. The cache subsystem manages a cache on the client computer side which traps or intercepts file system calls to cached files in order to obtain an immediate and substantial performance increase in distributed file system performance. Additionally, a refresh agent may be installed on the server side to further speed up cache accesses.
Inventors
- 👤 Jagdeep Singh
- 👤 Chandrashekhar W. Bhide
Bibliographic Details
Application Number
—
Jurisdiction
US
Data Source
google_patents
Last Synchronized
2026-10-30 13:33
CPC Classifications
G; G06; G06F; G06F12/00; G06F12/02; G06F12/08; G06F12/0802; G06F12/0875; G06F12/0806; G06F12/0813; G06F16/00; G06F16/10; G06F16/17; G06F16/172; G06F16/18; G06F16/182
Claims Analysis
Total Claims: 39
Claim 1
Independent Claim
170 words
In a computer network providing a distributed storage system, the computer network including a server computer and a client computer where objects stored on the server computer are accessible by the client computer via a network link, a method of enhancing performance of the client computer comprising the steps of: an application on the client computer issuing a system call to be sent to the server computer over the network link; a cache subsystem on the client computer intercepting the system call on the client computer before the system call is sent over the network link, the cache subsystem being separate from an operating system of the client computer; the cache subsystem analyzing past system calls in order to determine if the system call is capable of being serviced locally by utilizing a cache on the client computer; servicing the system call on the client computer if the system call is serviceable locally; and sending the system call to the server computer if the system call is not serviceable locally.
Claim 2
Dependent Claim
170 words
In a computer network providing a distributed storage system, the computer network including a server computer and a client computer where objects stored on the server computer are accessible by the client computer via a network link, a method of enhancing performance of the client computer comprising the steps of: an application on the client computer issuing a system call to be sent to the server computer over the network link; a cache subsystem on the client computer intercepting the system call on the client computer before the system call is sent over the network link, the cache subsystem being separate from an operating system of the client computer; the cache subsystem analyzing past system calls in order to determine if the system call is capable of being serviced locally by utilizing a cache on the client computer; servicing the system call on the client computer if the system call is serviceable locally; and sending the system call to the server computer if the system call is not serviceable locally.
Claim 3
Dependent Claim
15 words
The method of claim 1, wherein the analyzing step includes determining a plurality of optimizations.
Claim 4
Dependent Claim
25 words
The method of claim 2, wherein an optimization includes the step of deferring system calls that specify a write so that writes may be combined.
Claim 5
Dependent Claim
48 words
The method of claim 3, wherein the step of deferring includes: maintaining a list of system calls that specify a write of data; if at least two system calls specify overlapping regions, combining the at least two writes; and otherwise, sending the system calls after a predetermined time.
Claim 6
Dependent Claim
50 words
The method of claim 2, wherein an optimization includes if a system call specifying a write of data to a location is followed by a system call specifying a read of at least a portion of the data that was written, then the read is capable of being serviced locally.
Claim 7
Dependent Claim
64 words
The method of claim 2, wherein an optimization includes if a system call specifying a first read of data at a location is followed by a system call specifying a second read of at least a portion of the data that was read in the first read without any intervening contaminating file system calls, then the second read is capable of being serviced locally.
Claim 8
Dependent Claim
81 words
The method of claim 2, wherein an optimization includes if a system call specifying a first read of data at a location in a timestamp based file is followed by a system call specifying a second read of at least a portion of the data that was read in the first read and the timestamps associated with the timestamp based file is the same for both the first and second reads, then the second read is capable of being serviced locally.
Claim 9
Dependent Claim
60 words
The method of claim 2, wherein an optimization includes if a system call specifying a first file open of a file is followed by a system call specifying a second file open of the file without any intervening file system calls that close the file, then the second open is capable of being serviced locally by using a same handle.
Claim 10
Dependent Claim
32 words
The method of claim 2, wherein an optimization includes if a system call specifying a read of data less than a predetermined amount, the system call is sent to the server computer.
Claim 11
Dependent Claim
87 words
The method of claim 1, further comprising the step of validating data in the cache on the client computer including the steps of: generating a first checksum for the data in the cache on the client computer; sending the first checksum to a refresh agent on the server computer over the network link; the refresh agent generating a second checksum for corresponding data on the server computer, the refresh agent being separate from an operating system of the server computer; and comparing the first and second checksums.
Claim 12
Dependent Claim
33 words
The method of claim 10, further comprising the step of sending a signal to the client computer indicating the data in the cache is valid if the first and second checksums are equal.
Claim 13
Dependent Claim
12 words
The method of claim 1, wherein the system call requests directory information.
Claim 14
Dependent Claim
37 words
The method of claim 10, wherein the step of validating is not performed if the system call specifies a read of a small amount of data so that the system call may be sent to the server.
Claim 15
Dependent Claim
17 words
The method of claim 1, wherein the intercepting step is performed by setting up a shadow drive.
Claim 16
Dependent Claim
33 words
The method of claim 1, wherein the system call is a file system call or non-file system call and wherein the analyzing step is further based on a type of the system call.
Claim 17
Dependent Claim
20 words
The method of claim 1, wherein the system call is a database call or a network application programming interfaces call.
Claim 18
Dependent Claim
227 words
In a computer network providing a distributed storage system, the computer network including a server computer and a client computer where objects stored on the server computer are accessible by the client computer via a network link, a method of enhancing performance on the client computer comprising the steps of: an application on the client computer issuing a system call to be sent to the server computer over the network link; a cache subsystem on the client computer intercepting the system call on the client computer before the system call is sent over the network link, the cache subsystem being separate from an operating system of the client computer; the cache subsystem determining if the system call is capable of being serviced locally utilizing a cache on the client computer; servicing the system call on the client computer if the system call is serviceable locally, the servicing step including validating data in the cache on the client computer by generating a first checksum for the data in the cache on the client computer, sending the first checksum to a refresh agent on the server computer over the network link, the refresh agent generating a second checksum for corresponding data on the server computer, and comparing the first and second checksums; and sending the system call to the server computer if the system call is not serviceable locally.
Claim 19
Dependent Claim
227 words
In a computer network providing a distributed storage system, the computer network including a server computer and a client computer where objects stored on the server computer are accessible by the client computer via a network link, a method of enhancing performance on the client computer comprising the steps of: an application on the client computer issuing a system call to be sent to the server computer over the network link; a cache subsystem on the client computer intercepting the system call on the client computer before the system call is sent over the network link, the cache subsystem being separate from an operating system of the client computer; the cache subsystem determining if the system call is capable of being serviced locally utilizing a cache on the client computer; servicing the system call on the client computer if the system call is serviceable locally, the servicing step including validating data in the cache on the client computer by generating a first checksum for the data in the cache on the client computer, sending the first checksum to a refresh agent on the server computer over the network link, the refresh agent generating a second checksum for corresponding data on the server computer, and comparing the first and second checksums; and sending the system call to the server computer if the system call is not serviceable locally.
Claim 20
Dependent Claim
33 words
The method of claim 17, further comprising the step of sending a signal to the client computer indicating the data in the cache is valid if the first and second checksums are equal.
Claim 21
Dependent Claim
12 words
The method of claim 17, wherein the system call requests directory information.
Claim 22
Dependent Claim
38 words
The method of claim 17, wherein the step of validating is not performed if the system call specifies a read of a small amount of data so that the system call may be sent to the server computer.
Claim 23
Dependent Claim
33 words
The method of claim 17, wherein the system call is a file system call or non-file system call and wherein the determining step is further based on a type of the system call.
Claim 24
Dependent Claim
22 words
The method of claim 17, wherein the system call is one of a database call and a network application programming interfaces call.
Claim 25
Dependent Claim
186 words
In a computer network providing a distributed file system, the computer network including a server computer and a client computer where files stored on the server computer are accessible by the client computer via a network link, a method of providing caching on the client computer comprising the steps of: installing a storage system on the client computer; a cache subsystem maintaining a cache on the client computer for selected files, the cache subsystem being separate from an operating system of the client computer; the cache subsystem intercepting a file system call specifying a read operation of a selected file; installing a refresh agent on the server computer, the refresh agent being separate from an operating system of the server computer; the refresh agent indicating to the cache subsystem whether data in the cache is valid; if the file system call requests data in the cache and the data is valid, accessing the data in the cache; and if the file system call requests data in the cache but the data is invalid, sending the file system call to the server computer over the network link.
Claim 26
Dependent Claim
186 words
In a computer network providing a distributed file system, the computer network including a server computer and a client computer where files stored on the server computer are accessible by the client computer via a network link, a method of providing caching on the client computer comprising the steps of: installing a storage system on the client computer; a cache subsystem maintaining a cache on the client computer for selected files, the cache subsystem being separate from an operating system of the client computer; the cache subsystem intercepting a file system call specifying a read operation of a selected file; installing a refresh agent on the server computer, the refresh agent being separate from an operating system of the server computer; the refresh agent indicating to the cache subsystem whether data in the cache is valid; if the file system call requests data in the cache and the data is valid, accessing the data in the cache; and if the file system call requests data in the cache but the data is invalid, sending the file system call to the server computer over the network link.
Claim 27
Dependent Claim
76 words
The method of claim 23, further comprising the step of validating data in the cache comprising the steps of: the cache subsystem generating a first checksum for the data in the cache on the client computer; the cache subsystem sending the first checksum to the refresh agent on the server computer over the network link; the refresh agent generating a second checksum for corresponding data on the server computer; and comparing the first and second checksums.
Claim 28
Dependent Claim
33 words
The method of claim 23, further comprising the step of sending a signal to the client computer indicating the data in the cache is valid if the first and second checksums are equal.
Claim 29
Dependent Claim
168 words
In a computer network providing a distributed storage system, the computer network including a server computer and a client computer where objects stored on the server computer are accessible by the client computer via a network link, a computer program product for enhancing performance of the client computer comprising: code for intercepting a system call issued by an application on the client computer before the system call is sent to the server over the network link; code for analyzing current and past system calls in order to determine if the system call is capable of being serviced locally by utilizing a cache on the client computer; code for servicing the system call on the client computer if the system call is serviceable locally; code for sending the system call to the server computer if the system call is not serviceable locally; and a computer-readable medium for storing the codes; wherein the code resides on the client computer and is separate from an operating system of the client computer.
Claim 30
Dependent Claim
168 words
In a computer network providing a distributed storage system, the computer network including a server computer and a client computer where objects stored on the server computer are accessible by the client computer via a network link, a computer program product for enhancing performance of the client computer comprising: code for intercepting a system call issued by an application on the client computer before the system call is sent to the server over the network link; code for analyzing current and past system calls in order to determine if the system call is capable of being serviced locally by utilizing a cache on the client computer; code for servicing the system call on the client computer if the system call is serviceable locally; code for sending the system call to the server computer if the system call is not serviceable locally; and a computer-readable medium for storing the codes; wherein the code resides on the client computer and is separate from an operating system of the client computer.
Claim 31
Dependent Claim
18 words
The method of claim 26, wherein the code for analyzing includes code for determining a plurality of optimizations.
Claim 32
Dependent Claim
18 words
The method of claim 26 further comprising: code for validating data in the cache on the client computer.
Claim 33
Dependent Claim
69 words
The method of claim 28 wherein the code for validating data comprises: code for generating a first checksum for the data in the cache on the client computer; and code for sending the first checksum to a refresh agent on the server computer over the network link; wherein the refresh agent generates a second checksum for corresponding data on the server computer and compares the first and second checksums.
Claim 34
Dependent Claim
172 words
In a computer network providing a distributed storage system, the computer network including a server computer and a client computer where objects stored on the server computer are accessible by the client computer via a network link, a method of enhancing performance of the client computer comprising the steps of: intercepting, at a cache subsystem, selective ones of system calls issued from an operating system and intended for transmission over the network link to the server computer, the operating system being separate from the cache subsystem; analyzing, for each intercepted operating system call, current and selective ones of past operating system calls to determine whether the current intercepted operating system call can be serviced locally by utilizing a cache on the client computer; and if the intercepted operating system call is serviceable locally, generating an enhanced system operation responsive to the intercepted operating system call, and performing the enhanced system operation; or if the intercepted operating system call is not serviceable locally, sending the intercepted operating system call to the server computer.
Claim 35
Dependent Claim
172 words
In a computer network providing a distributed storage system, the computer network including a server computer and a client computer where objects stored on the server computer are accessible by the client computer via a network link, a method of enhancing performance of the client computer comprising the steps of: intercepting, at a cache subsystem, selective ones of system calls issued from an operating system and intended for transmission over the network link to the server computer, the operating system being separate from the cache subsystem; analyzing, for each intercepted operating system call, current and selective ones of past operating system calls to determine whether the current intercepted operating system call can be serviced locally by utilizing a cache on the client computer; and if the intercepted operating system call is serviceable locally, generating an enhanced system operation responsive to the intercepted operating system call, and performing the enhanced system operation; or if the intercepted operating system call is not serviceable locally, sending the intercepted operating system call to the server computer.
Claim 36
Dependent Claim
119 words
The method of claim 30 further comprising: intercepting, at the cache subsystem, selective ones of system calls issued from an application and intended for transmission over the network link to the server computer; analyzing, for each intercepted application system call, current and selective ones of past application system calls to determine whether the current intercepted application system call can be serviced locally by utilizing the cache on the client computer; and if the intercepted application system call is serviceable locally, generating an enhanced application operation responsive to the intercepted application system call, and performing the enhanced application operation; or if the intercepted application system call is not serviceable locally, sending the intercepted application system call to the server computer.
Claim 37
Dependent Claim
15 words
The method of claim 30, wherein the analyzing step includes determining a plurality of optimizations.
Claim 38
Dependent Claim
19 words
The method of claim 30 wherein the performing step comprises: validating data in the cache on the client computer.
Claim 39
Dependent Claim
62 words
The method of claim 33 wherein the validating step comprises: generating a first checksum for the data in the cache on the client computer; sending the first checksum to a refresh agent on the server computer over the network link; generating, at the refresh agent, a second checksum for corresponding data on the server computer; and comparing the first and second checksums.
References Cited (Backward Citations)
US4941084A
Cited
US5109515A
Cited
US5046027A
Cited
US5222224A
Cited
US5287504A
Cited
US5218699A
Cited
US5321816A
Cited
US5224095A
Cited
WO1993019420A1
Cited
US5491780A
Cited
US5497463A
Cited
US5452447A
Cited
US5493667A
Cited
US5453979A
Cited
USPTO Annuity & Maintenance Windows
| Annuity Stage | Window Opens | Payment Deadline | Surcharge Period Until | Estimated Fee | Status |
|---|---|---|---|---|---|
| 3.5 Years (Year 4) | 2002-03-08 | 2002-09-07 | 2003-03-09 | $2000.00 | Window Closed / Lapsed |
| 7.5 Years (Year 8) | 2006-03-08 | 2006-09-07 | 2007-03-09 | $3760.00 | Window Closed / Lapsed |
| 11.5 Years (Year 12) | 2010-03-08 | 2010-09-07 | 2011-03-09 | $7700.00 | Window Closed / Lapsed |