IP Library Granted Patent US 9,489,456
Granted Patent B1
US 9,489,456 · App. 11/561,123 · Granted Nov 8, 2016

Previewing file information over a network

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,489,456
App. No.
11/561,123
Granted
Nov 8, 2016
Kind
B1
Abstract

A process for opening and reading a file over a network, including a WAN. An edge file gateway receives a request from an application to open a file cached with the edge file gateway at one point on a network and stored on a file server connected to a central server at another point on the network. The edge file gateway forwards the request to open the file to the central server, along with any offsets and lengths stored from any previous requests to read the file. The central server responds by sending any file data described in the offsets and lengths to the edge file gateway. When the edge file gateway receives a read request, the edge file gateway stores the offset and length for the request, if a predefined storage limit is not exceeded, and attempts to satisfy the request from cached file data.

Claims (54)

1. A computer-implemented method, comprising:

receiving, at a network device, a request from a remote client application to open a file stored on a file server, wherein the network device and the file server are connected by a network;

accessing, in response to the request, a cache to select one or more data segments of the file to pre-fetch from the file server, wherein each of the one or more data segments are identified by an offset position in the file and a length of the data segment;

conditionally pre-fetching the selected data segments from the file on the file server, wherein:

the selected data segments that are pre-fetched are based on previous requests to read identified data segments of the file, one or more offset positions and lengths of which are stored in the cache in association with a cached version of the file; and

the pre-fetched, selected data segments only include data segments described by the one or more offset positions and lengths of previous requests to read identified data segments of the file;

storing the pre-fetched, selected data segments into the cache;

after pre-fetching and caching the selected data segments, receiving, from the remote client application, a request to read data from the file, wherein the request comprises an offset position in the file and a length of the data segment to be read;

accessing the requested data segment in the cache if the cache contains the data segment described in the one or more parameters;

fetching the requested data segment from the file on the file server, if the cache does not contain the data segment described in the parameters;

providing the requested data segment to the remote client application in response to the read request; and

conditionally storing, in the cache, the offset position in the file and the length of the data segment of the request to read the data segment from the file in association with the cached version of the file based one or more predefined storage limits.

2. The method of claim 1 , wherein the conditional pre-fetching does not occur if the network device has a lease on the file stored on the file server or if the file data in the cache is known to be current with the file server's file.

3. The method of claim 1 , wherein the entire file is fetched from the file server if the request to read would cause a predefined file limit to be exceeded.

4. The method of claim 3 , wherein the predefined file limit would be exceeded if a specified percentage of the entire file's length would be exceeded by the sum of the read request's offset position and length and all previously stored offset positions and lengths for the file.

5. The method of claim 3 , wherein the predefined file limit would be exceeded if a specified percentage of the entire file's length would be exceeded by the read request's length.

6. The method of claim 1 , wherein the predefined storage limit would be exceeded if a specified number of bytes would be exceeded by the sum of the bytes used to store the read request's offset position and length and the bytes used to store all previously stored offset positions and lengths for the file.

7. The method of claim 1 , wherein the network is a wide area network.

8. An apparatus comprising logic encoded in one or more tangible storage media for execution and when executed configured to:

receive, at a network device, a request from a remote client application to open a file stored on a file server, wherein the network device and the file server are connected by a network;

access a cache to select one or more data segments of the file to pre-fetch from the file server, wherein each of the one or more data segments are identified by an offset position in the file and a length of the data segment;

conditionally pre-fetch the selected data segments from the file on the file server, wherein:

the selected data segments that are pre-fetched are based on previous requests to read identified data segments of the file, one or more offset positions and lengths of which are stored in the cache in association with a cached version of the file; and

the pre-fetched, selected data segments only include data segments described by the one or more offset positions and lengths of previous requests to read identified data segments of the file;

store the pre-fetched, selected data segments into the cache;

after pre-fetching and caching the selected data segments, receive, from the remote client application, a request to read data from the file, wherein the request comprises an offset position in the file and a length of the data segment to be read;

access the requested data segment in the cache if the cache contains the data segment described in the one or more parameters;

fetch the requested data segment from the file on the file server, if the cache does not contain the data segment described in the parameters;

provide the requested data segment to the remote client application in response to the read request; and

conditionally store, in the cache, the offset position in the file and the length of the data segment of the request to read the data segment from the file in association with the cached version of the file based one or more predefined storage limits.

9. The apparatus of claim 8 , wherein the conditional pre-fetching does not occur if the network device has a lease on the file stored on the file server or if the file data in the cache is known to be current with the file server's file.

10. The apparatus of claim 8 , wherein the entire file is fetched from the file server if the request to read would cause a predefined file limit to be exceeded.

11. The apparatus of claim 10 , wherein the predefined file limit would be exceeded if a specified percentage of the entire file's length would be exceeded by the sum of the read request's offset position and length and all previously stored offset positions and lengths for the file.

12. The apparatus of claim 10 , wherein the predefined file limit would be exceeded if a specified percentage of the entire file's length would be exceeded by the read request's length.

13. The apparatus of claim 8 , wherein the predefined storage limit would be exceeded if a specified number of bytes would be exceeded by the sum of the bytes used to store the read request's offset position and length and the bytes used to store all previously stored offset positions and lengths for the file.

14. The apparatus of claim 8 , wherein the apparatus is configured to be resident on a wide area network.

15. At least one non-transitory medium, the medium comprising instructions that, when loaded and executed by a processor, configure the processor to:

receive, at a network device, a request from a remote client application to open a file stored on a file server, wherein the network device and the file server are connected by a network;

access a cache to select one or more data segments of the file to pre-fetch from the file server, wherein each of the one or more data segments are identified by an offset position in the file and a length of the data segment;

conditionally pre-fetch the selected data segments from the file on the file server, wherein:

the selected data segments that are pre-fetched are based on previous requests to read identified data segments of the file, one or more offset positions and lengths of which are stored in the cache in association with a cached version of the file; and

the pre-fetched, selected data segments only include data segments described by the one or more offset positions and lengths of previous requests to read identified data segments of the file;

store the pre-fetched, selected data segments into the cache;

after pre-fetching and caching the selected data segments, receive, from the remote client application, a request to read data from the file, wherein the request comprises an offset position in the file and a length of the data segment to be read;

access the requested data segment in the cache if the cache contains the data segment described in the one or more parameters;

fetch the requested data segment from the file on the file server, if the cache does not contain the data segment described in the parameters;

provide the requested data segment to the remote client application in response to the read request; and

conditionally store, in the cache, the offset position in the file and the length of the data segment of the request to read the data segment from the file in association with the cached version of the file based one or more predefined storage limits.

16. The medium of claim 15 , wherein the conditional pre-fetching does not occur if the network device has a lease on the file stored on the file server or if the file data in the cache is known to be current with the file server's file.

17. The medium of claim 15 , wherein the entire file is fetched from the file server if the request to read would cause a predefined file limit to be exceeded.

18. The medium of claim 17 , wherein the predefined file limit would be exceeded if a specified percentage of the entire file's length would be exceeded by the sum of the read request's offset position and length and all previously stored offset positions and lengths for the file.

19. The medium of claim 17 , wherein the predefined file limit would be exceeded if a specified percentage of the entire file's length would be exceeded by the read request's length.

20. The medium of claim 15 , wherein the predefined storage limit would be exceeded if a specified number of bytes would be exceeded by the sum of the bytes used to store the read request's offset position and length and the bytes used to store all previously stored offset positions and lengths for the file.

21. The medium of claim 15 , wherein the network is a wide area network.

Assignments (12)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 21, 2019
From: SYMANTEC CORPORATION
To: CA, INC.
Reel/Frame 051144/0918 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 27, 2016
From: BLUE COAT SYSTEMS, INC.
To: SYMANTEC CORPORATION
Reel/Frame 039851/0044 →
RELEASE OF SECURITY INTEREST Recorded Aug 1, 2016
From: JEFFERIES FINANCE LLC
To: BLUE COAT SYSTEMS, INC.
Reel/Frame 039516/0929 →
RELEASE OF SECURITY INTEREST IN PATENT COLLATERAL AT REEL/FRAME NO. 30740/0181 Recorded May 29, 2015
From: JEFFERIES FINANCE LLC
To: BLUE COAT SYSTEMS, INC.
Reel/Frame 035797/0280 →
RELEASE OF SECURITY INTEREST IN PATENT COLLATERAL AT REEL/FRAME NO. 27727/0144 Recorded May 29, 2015
From: JEFFERIES FINANCE LLC
To: BLUE COAT SYSTEMS, INC.
Reel/Frame 035798/0006 →
SECURITY INTEREST Recorded May 22, 2015
From: BLUE COAT SYSTEMS, INC.
To: JEFFERIES FINANCE LLC, AS THE COLLATERAL AGENT
Reel/Frame 035751/0348 →
SECOND LIEN PATENT SECURITY AGREEMENT Recorded Jul 3, 2013
From: BLUE COAT SYSTEMS, INC.
To: JEFFERIES FINANCE LLC, AS COLLATERAL AGENT
Reel/Frame 030740/0181 →
RELEASE OF SECURITY INTEREST IN PATENT COLLATERAL RECORDED AT R/F 027727/0178 Recorded Oct 16, 2012
From: JEFFERIES FINANCE LLC, AS COLLATERAL AGENT
To: BLUE COAT SYSTEMS, INC.
Reel/Frame 029140/0170 →
FIRST LIEN PATENT SECURITY AGREEMENT Recorded Feb 16, 2012
From: BLUE COAT SYSTEMS, INC.
To: JEFFERIES FINANCE LLC
Reel/Frame 027727/0144 →
SECOND LIEN PATENT SECURITY AGREEMENT Recorded Feb 16, 2012
From: BLUE COAT SYSTEMS, INC.
To: JEFFERIES FINANCE LLC
Reel/Frame 027727/0178 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 1, 2011
From: PACKETEER, INC.
To: BLUE COAT SYSTEMS, INC.
Reel/Frame 027307/0603 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 17, 2006
From: VIDWANS, HRISHIKESH A.
To: PACKETEER, INC.
Reel/Frame 018532/0816 →