IP Library Granted Patent US 7,685,255
Granted Patent B2
US 7,685,255 · App. 11/500,054 · Granted Mar 23, 2010

System and method for prefetching uncacheable embedded objects

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 7,685,255
App. No.
11/500,054
Granted
Mar 23, 2010
Kind
B2
Abstract

A system and method for prefetching one or more embedded objects marked uncacheable using a buffer on a prefetch cache to temporarily store the uncacheable object. The buffer is allocated to a socket that is established between the prefetch cache and a server subsequent to the establishment of an initial connection. A prefetch caching process retrieves one or more embedded objects from the server using the socket based on the preconfigured set of rules. The prefetch caching process determines whether the embedded object is uncacheable, and if so loads the object into the buffer. The prefetch caching process waits a predetermined time period for client request for the object. If the request is received prior to expiration of the time period, the prefetch caching process sends the object to the client. Otherwise, the process “flushes” the buffer, thereby discarding the object, and then closes the socket.

Claims (42)

1. A method for prefetching one or more embedded objects of a data set from a server, comprising:

intercepting a client request from a client for the data set at a prefetch cache;

prefetching the one or more embedded objects from the server in anticipation of subsequent client requests for the one or more embedded objects;

opening a socket on the prefetch cache to retrieve the one or more embedded objects from the server;

determining whether each embedded object is uncacheable;

based on the determination, loading a cacheable embedded object into one or more disks of the prefetch cache and loading an uncacheable embedded object into a buffer associated with the socket instead of in the one or more disks of the prefetch cache;

creating an entry in a cache table of the prefetch cache for the uncacheable embedded object and storing a timestamp in the entry of the cache table;

using the timestamp to determine whether the uncacheable embedded object has been stored in the buffer for longer than a threshold time period, and, if so, flushing the uncacheable embedded object from the buffer; otherwise

receiving a subsequent client request for the uncacheable embedded object; and

sending the uncacheable embedded object from the buffer to the client through the socket.

2. The method of claim 1 , further comprising storing a network address in the entry of the cache table for the uncacheable embedded object.

3. The method of claim 2 , further comprising locating the socket using the network address stored in the entry of the cache table.

4. The method of claim 1 , further comprising storing a flag in the entry of the cache table for the uncacheable embedded object.

5. The method of claim 1 , further comprising storing a file identifier in the entry of the cache table for the uncacheable embedded object.

6. The method of claim 1 , further comprising waiting for a client request from the client for the uncacheable embedded object.

7. An apparatus for prefetching one or more embedded objects of a data set from a server, comprising:

a processor operably coupled to a memory storing a computer-readable prefetch caching process that provides:

means for intercepting a client request from a client for the data set;

means for prefetching one or more embedded objects from the server in anticipation of subsequent client requests for the one or more embedded objects;

means for opening a socket on the apparatus to retrieve the one or more embedded objects from the server;

means for determining whether each embedded object is uncacheable;

means for loading, based on the determination, a cacheable embedded object into one or more disks of the apparatus and loading, based on the determination, an uncacheable embedded object into a buffer associated with the socket instead of in the one or more disks of the apparatus;

means for creating an entry in a cache table of the apparatus for the uncacheable embedded object;

means for storing a timestamp in the entry of the cache table for the uncacheable embedded object;

means for using the timestamp to determine whether the uncacheable embedded object has been stored in the buffer for longer than a threshold time period;

means for flushing the uncacheable embedded object from the buffer if the uncacheable embedded object has been stored in the buffer for longer than the threshold time period;

means for receiving a subsequent client request for the uncacheable embedded object; and

means for sending the uncacheable embedded object to the client from the buffer through the socket.

8. The apparatus of claim 7 , further comprising means for storing a network address in the entry of the cache table for the uncacheable embedded object.

9. The apparatus of claim 8 , further comprising means for locating the socket using the network address stored in the entry of the cache table.

10. The apparatus of claim 7 , further comprising means for storing a flag in the entry of the cache table for the uncacheable embedded object.

11. The apparatus of claim 7 , further comprising means for storing a file identifier in the entry of the cache table for the uncacheable embedded object.

12. The apparatus of claim 7 , further comprising means for waiting for a client request from the client for the uncacheable embedded object.

13. A system for prefetching one or more embedded objects of a dataset from a server, comprising:

a prefetch cache adapted to intercept a client request from a client directed to the server for the data set;

a prefetch caching process that executes on the prefetch cache, the prefetch caching process adapted to anticipate subsequent client requests based on a preconfigured set of rules, to open a socket on the prefetch cache to retrieve the one or more embedded objects from the server, to determine whether each embedded object is marked uncacheable to load, based on the determination, a cacheable embedded object into one or more disks of the prefetch cache and load, based on the determination, an uncacheable embedded object into a buffer associated with the socket;

a cache table organized to include an entry for the uncacheable embedded object, wherein the entry of the cache table further stores a timestamp for the uncacheable embedded object; and

wherein the prefetch caching process is further adapted to use the timestamp stored in the entry of the cache table to determine whether the uncacheable embedded object has been stored in the buffer for longer than a threshold time period and if so, to flush the uncacheable embedded object from the buffer, otherwise to receive a subsequent client request for the uncacheable embedded object and retrieve the uncacheable embedded object from the socket.

14. The system of claim 13 wherein the entry of the cache table stores a network address for the uncacheable embedded object.

15. The system of claim 14 wherein the prefetch caching process is further adapted to locate the socket using the network address stored in the entry of the cache table.

16. The system of claim 13 wherein the entry of the cache table further stores a flag for the uncacheable embedded object.

17. The system of claim 13 wherein the entry of the cache table further stores a file identifier for the uncacheable embedded object.

Assignments (11)
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 Feb 21, 2007
From: NETWORK APPLIANCE, INC.
To: BLUE COAT SYSTEMS, INC.
Reel/Frame 018916/0876 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 7, 2006
From: AMLEKAR, SHEKHAR; DOHERTY, NIALL
To: NETWORK APPLIANCE, INC.
Reel/Frame 018145/0593 →