IP Library › Granted Patent US 7,716,306
Granted Patent B2
US 7,716,306 · App. 11/046,408 · Granted May 11, 2010

Data caching based on data contents

Assignee: International Business Machines Corporation
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,716,306
App. No.
11/046,408
Granted
May 11, 2010
Kind
B2
Abstract

A novel method and structure in which data caching is based on data contents. The method comprises the steps of (a) sending a data request from a processing circuit to a target server; (b) in response to the target server receiving the data request, sending a first response portion of a data response from the target server to the processing circuit; and {circle around (c)} in response to the processing circuit receiving the first response portion, using the processing circuit to examine the first response portion so as to determine whether the processing circuit contains a copy of the data response; and (d) in response to the processing circuit determining that the processing circuit contains a copy of the data response, sending the copy of the data response from the processing circuit to a client machine.

Claims (68)

1. A method for processing a data request, said method comprising:

a proxy server receiving the data request from a client machine;

responsive to said proxy server receiving the data request from the client machine, said proxy server sending the data request to a target server,

after said proxy server sending the data request to the target server, said proxy server receiving from the target server a first data packet of the data response;

after said proxy server receiving the first data packet of the data response, said proxy server determining that the data response has a compressed graphic format and said proxy server determining that the data response comprises more than one data packet, said more than one data packet consisting of the first data packet and additional data packets;

responsive to said proxy server determining that the data response has the compressed graphic format and to said proxy server determining that the data response comprises said more than one data packet, said proxy server determining that the proxy server comprises a cached copy of the data response;

responsive to said proxy server determining that the proxy server comprises said cached copy of the data response, said proxy server terminating communication with the target server to prevent the target server from sending to the proxy server the additional data packets of the data response; and

responsive to said proxy server terminating communication with the target server, said proxy server sending the cached copy of the data response to the client machine.

2. The method of claim 1 , wherein said proxy server determining that the data response comprises said more than one data packet is performed in response to said proxy server determining that the data response has the compressed graphic format.

3. The method of claim 1 ,

wherein said proxy server determining that the data response has the compressed graphic format includes said proxy server determining from a data type field of a header of the first data packet that the data response has the compressed graphic format, and

wherein said proxy server determining that the data response comprises said more than one data packet includes said proxy server determining from a data length field of the header of the first data packet that the data response comprises said more than one data packet.

4. The method of claim 1 , wherein said determining that the proxy server comprises said cached copy of the data response comprises:

said proxy server generating a signature from initial bytes of a data portion of the first data packet of the data response; and

said proxy server matching the generated signature to a signature in a list of signatures in a look-up table stored in a memory device of the proxy server.

5. The method of claim 4 , wherein said generating the signature comprises applying a hash function to the initial bytes.

6. The method of claim 4 , wherein the initial bytes consist of N bytes, and wherein N is in a range of 1000 to 1300.

7. A computer program product, comprising a computer readable storage medium having a computer readable program code stored therein, said computer readable program code containing instructions configured to be executed by a processor of a proxy server to implement a method for processing a data request, said method comprising:

said proxy server receiving the data request from a client machine;

responsive to said proxy server receiving the data request from the client machine, said proxy server sending the data request to a target server,

after said proxy server sending the data request to the target server, said proxy server receiving from the target server a first data packet of the data response;

after said proxy server receiving the first data packet of the data response, said proxy server determining that the data response has a compressed graphic format and said proxy server determining that the data response comprises more than one data packet, said more than one data packet consisting of the first data packet and additional data packets;

responsive to said proxy server determining that the data response has the compressed graphic format and to said proxy server determining that the data response comprises said more than one data packet, said proxy server determining that the proxy server comprises a cached copy of the data response;

responsive to said proxy server determining that the proxy server comprises said cached copy of the data response, said proxy server terminating communication with the target server to prevent the target server from sending to the proxy server the additional data packets of the data response; and

responsive to said proxy server terminating communication with the target server, said proxy server sending the cached copy of the data response to the client machine.

8. The computer program product of claim 7 , wherein said proxy server determining that the data response comprises said more than one data packet is performed in response to said proxy server determining that the data response has the compressed graphic format.

9. The computer program product of claim 7 ,

wherein said proxy server determining that the data response has the compressed graphic format includes said proxy server determining from a data type field of a header of the first data packet that the data response has the compressed graphic format, and

wherein said proxy server determining that the data response comprises said more than one data packet includes said proxy server determining from a data length field of the header of the first data packet that the data response comprises said more than one data packet.

10. The computer program product of claim 7 , wherein said determining that the proxy server comprises said cached copy of the data response comprises:

said proxy server generating a signature from initial bytes of a data portion of the first data packet of the data response; and

said proxy server matching the generated signature to a signature in a list of signatures in a look-up table stored in a memory device of the proxy server.

11. The computer program product of claim 10 , wherein said generating the signature comprises applying a hash function to the initial bytes.

12. The computer program product of claim 10 , wherein the initial bytes consist of N bytes, and wherein N is in a range of 1000 to 1300.

13. A computing system comprising a proxy server, said proxy server comprising a processor and a computer readable memory unit coupled to the processor, said memory unit containing program code configured to be executed by the processor to implement a method for processing a data request, said method comprising:

said proxy server receiving the data request from a client machine;

responsive to said proxy server receiving the data request from the client machine, said proxy server sending the data request to a target server,

after said proxy server sending the data request to the target server, said proxy server receiving from the target server a first data packet of the data response;

after said proxy server receiving the first data packet of the data response, said proxy server determining that the data response has a compressed graphic format and said proxy server determining that the data response comprises more than one data packet, said more than one data packet consisting of the first data packet and additional data packets;

responsive to said proxy server determining that the data response has the compressed graphic format and to said proxy server determining that the data response comprises said more than one data packet, said proxy server determining that the proxy server comprises a cached copy of the data response;

responsive to said proxy server determining that the proxy server comprises said cached copy of the data response, said proxy server terminating communication with the target server to prevent the target server from sending to the proxy server the additional data packets of the data response; and

responsive to said proxy server terminating communication with the target server, said proxy server sending the cached copy of the data response to the client machine.

14. The computing system of claim 13 , wherein said proxy server determining that the data response comprises said more than one data packet is performed in response to said proxy server determining that the data response has the compressed graphic format.

15. The computing system of claim 13 ,

wherein said proxy server determining that the data response has the compressed graphic format includes said proxy server determining from a data type field of a header of the first data packet that the data response has the compressed graphic format, and

wherein said proxy server determining that the data response comprises said more than one data packet includes said proxy server determining from a data length field of the header of the first data packet that the data response comprises said more than one data packet.

16. The computing system of claim 13 , wherein said determining that the proxy server comprises said cached copy of the data response comprises:

said proxy server generating a signature from initial bytes of a data portion of the first data packet of the data response; and

said proxy server matching the generated signature to a signature in a list of signatures in a look-up table stored in a memory device of the proxy server.

17. The computing system of claim 16 , wherein said generating the signature comprises applying a hash function to the initial bytes.

18. The computing system of claim 16 , wherein the initial bytes consist of N bytes, and wherein N is in a range of 1000 to 1300.

19. A process for deploying computing infrastructure, said process comprising integrating computer-readable code into a proxy server, wherein the code in combination with the proxy server is configured to perform a method for processing a data request, said method comprising:

said proxy server receiving the data request from a client machine;

responsive to said proxy server receiving the data request from the client machine, said proxy server sending the data request to a target server,

after said proxy server sending the data request to the target server, said proxy server receiving from the target server a first data packet of the data response;

after said proxy server receiving the first data packet of the data response, said proxy server determining that the data response has a compressed graphic format and said proxy server determining that the data response comprises more than one data packet, said more than one data packet consisting of the first data packet and additional data packets;

responsive to said proxy server determining that the data response has the compressed graphic format and to said proxy server determining that the data response comprises said more than one data packet, said proxy server determining that the proxy server comprises a cached copy of the data response;

responsive to said proxy server determining that the proxy server comprises said cached copy of the data response, said proxy server terminating communication with the target server to prevent the target server from sending to the proxy server the additional data packets of the data response; and

responsive to said proxy server terminating communication with the target server, said proxy server sending the cached copy of the data response to the client machine.

20. The process of claim 19 , wherein said proxy server determining that the data response comprises said more than one data packet is performed in response to said proxy server determining that the data response has the compressed graphic format.

21. The process of claim 19 ,

wherein said proxy server determining that the data response has the compressed graphic format includes said proxy server determining from a data type field of a header of the first data packet that the data response has the compressed graphic format, and

wherein said proxy server determining that the data response comprises said more than one data packet includes said proxy server determining from a data length field of the header of the first data packet that the data response comprises said more than one data packet.

22. The process of claim 19 , wherein said determining that the proxy server comprises said cached copy of the data response comprises:

said proxy server generating a signature from initial bytes of a data portion of the first data packet of the data response; and

said proxy server matching the generated signature to a signature in a list of signatures in a look-up table stored in a memory device of the proxy server.

23. The process of claim 22 , wherein said generating the signature comprises applying a hash function to the initial bytes.

24. The process of claim 22 , wherein the initial bytes consist of N bytes, and wherein N is in a range of 1000 to 1300.

Assignments (8)
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENT RIGHTS (REEL 062079, FRAME 0677) Recorded Mar 3, 2026
From: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
To: X CORP. (F/K/A TWITTER, INC.)
Reel/Frame 075015/0574 →
RELEASE OF SECURITY INTEREST Recorded Apr 30, 2025
From: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
To: X CORP. (F/K/A TWITTER, INC.)
Reel/Frame 071127/0240 →
RELEASE OF SECURITY INTEREST Recorded Mar 27, 2025
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: X CORP. (F/K/A TWITTER, INC.)
Reel/Frame 070670/0857 →
SECURITY INTEREST Recorded Oct 28, 2022
From: TWITTER, INC.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 062079/0677 →
SECURITY INTEREST Recorded Oct 28, 2022
From: TWITTER, INC.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 061804/0001 →
SECURITY INTEREST Recorded Oct 28, 2022
From: TWITTER, INC.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 061804/0086 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 16, 2014
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: TWITTER, INC.
Reel/Frame 032075/0404 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 10, 2005
From: ANDREEV, DMITRY; GREENSTEIN, MARINA A.; GRUNIN, GALINA; VILSHANSKY, GREGORY
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 015869/0524 →
Continuity (1)
Related Publication 20060167969A1 · Jul 27, 2006