IP Library Granted Patent US 7,849,134
Granted Patent B2
US 7,849,134 · App. 12/191,805 · Granted Dec 7, 2010

Transaction accelerator for client-server communications systems

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,849,134
App. No.
12/191,805
Granted
Dec 7, 2010
Kind
B2
Abstract

In a network having transaction acceleration, for an accelerated transaction, a client directs a request to a client-side transaction handler that forwards the request to a server-side transaction handler, which in turn provides the request, or a representation thereof, to a server for responding to the request. The server sends the response to the server-side transaction handler, which forwards the response to the client-side transaction handler, which in turn provides the response to the client. Transactions are accelerated by the transaction handlers by storing segments of data used in the transactions in persistent segment storage accessible to the server-side transaction handler and in persistent segment storage accessible to the client-side transaction handler. When data is to be sent between the transaction handlers, the sending transaction handler compares the segments of the data to be sent with segments stored in its persistent segment storage and replaces segments of data with references to entries in its persistent segment storage that match or closely match the segments of data to be replaced. The receiving transaction store reconstructs the data sent by replacing segment references with corresponding segment data from its persistent segment storage, requesting missing segments from the sender as needed. The transaction accelerators could handle multiple clients and/or multiple servers and the segments stored in the persistent segment stores can relate to different transactions, different clients and/or different servers. Persistent segment stores can be prepopulated with segment data from other transaction accelerators.

Claims (77)

1. In a network wherein nodes initiate transactions with other nodes and the network carries transactions including a request message from a first node to a second node and a response message from the second node to the first node, a method comprising:

terminating the transport connection for traffic between the first node and the second node at a first-node proxy and at a second-node proxy;

receiving a message from the first node at the first-node proxy along a first transport connection;

segmenting the message into one or more segments;

replacing at least one segment of the one or more segments with a segment reference to a matching data pattern that is stored in a first-node auxiliary data store, to form a modified message;

sending the modified message along a second transport connection from the first-node proxy to the second-node proxy;

receiving the modified message at the second-node proxy via the second transport connection;

replacing the segment reference in the modified message with a matching data pattern retrieved from a second-node auxiliary data store, to form a reconstructed message; and

sending the reconstructed message along a third transport connection from the second-node proxy to the second node.

2. The method of claim 1 , wherein the first-node auxiliary data store is associated with the first-node proxy.

3. The method of claim 1 , wherein the second-node auxiliary data store is associated with the second-node proxy.

4. The method of claim 1 , wherein the first transport connection comprises a local area network connection.

5. The method of claim 1 , wherein the second transport connection comprises a wide area network connection.

6. The method of claim 1 , wherein the third transport connection comprises a local area network connection.

7. The method of claim 1 , wherein the first transport connection comprises a local area network connection.

8. The method of claim 1 , wherein the requesting is requesting over the second transport connection.

9. The method of claim 1 , further comprising:

requesting, from the first-node proxy by the second-node proxy, segment data corresponding to the segment reference when the matching data pattern is not present in the second-node auxiliary data store.

10. The method of claim 1 , wherein the second-node comprises a disk subsystem.

11. A method, comprising:

receiving at a client-side accelerator a request from a first client for a first data piece;

forwarding the request to a server-side accelerator:

receiving a first response from the server-side accelerator, wherein the first response includes at least one reference which replaces a portion of the first data piece;

replacing the reference with the corresponding portion, thereby reconstructing the first data piece based on the received response;

sending the reconstructed first data piece to the first client;

receiving at the client-side accelerator a request from a second client for a second data piece which includes a common portion as the portion in the first data piece;

receiving from the server-side accelerator a second response which includes a reference corresponding to the common portion;

replacing the reference with the common portion, thereby reconstructing the second data piece; and

sending the reconstructed second data piece to the second client.

12. The method of claim 11 , further comprising retrieving the portion from a persistent storage.

13. The method of claim 12 , wherein the persistent storage is shared by a number of client-side accelerators.

14. The method of claim 11 , further comprising receiving the portion from a distributor prior to receiving the request from the first client.

15. The method of claim 11 , further comprising receiving the portion from the server-side accelerator.

16. The method of claim 11 , wherein the request from the first client is received via a local area network; and

wherein the first response from the server-side accelerator is received via a wide area network.

17. The method of claim 11 , further comprising:

dividing a message to be transmitted to the server-side accelerator into one or more portions;

replacing the portions with corresponding references; and

sending the references in place of the portions to the server-side accelerator, thereby facilitating accelerated transmission of the message.

18. A network accelerator, comprising:

a client-side receiving mechanism configured to receive a request from a first client for a first data piece;

a forwarding mechanism configured to forward the request to a server-side accelerator;

a server-side receiving mechanism configured to receive a first response from the server-side accelerator, wherein the first response includes at least one reference which replaces a portion of the first data piece;

a data re-construction mechanism configured to replace the reference with the corresponding portion, thereby reconstructing the first data piece based on the received response; and

a client-side transmission mechanism configured to send the reconstructed first data piece to the first client;

wherein the client-side receiving mechanism is further configured to receive a request from a second client for a second data piece which includes a common portion as the portion in the first data piece;

wherein the server-side receiving mechanism is further configured to receive from the server-side accelerator a second response which includes a reference corresponding to the common portion;

wherein the data-re-construction mechanism is further configured to replace the reference with the common portion, thereby reconstructing the second data piece; and

wherein the client-side transmission mechanism is further configured to send the reconstructed second data piece to the second client.

19. The network accelerator of claim 18 , wherein the data re-construction mechanism is further configured to retrieve the portion from a persistent storage.

20. The network accelerator of claim 19 , wherein the persistent storage is shared by a number of client-side accelerators.

21. The network accelerator of claim 18 , wherein the data re-construction mechanism is further configured to receive the portion from a distributor prior to receiving the request from the first client.

22. The network accelerator of claim 18 , wherein the data re-construction mechanism is further configured to receive the portion from the server-side accelerator.

23. The network accelerator of claim 18 , wherein the request from the first client is received via a local area network; and

wherein the first response from the server-side accelerator is received via a wide area network.

24. The network accelerator of claim 18 , further comprising:

a data-division mechanism configured to divide a message to be transmitted to the server-side accelerator into one or more portions;

a replacement mechanism configured to replace the portions with corresponding references; and

a server-side transmission mechanism configured to send the references in place of the portions to the server-side accelerator, thereby facilitating accelerated transmission of the message.

25. A network acceleration system, comprising:

a client-side accelerator coupled to one or more clients; and

a server-side accelerator coupled to one or more servers;

wherein the client-side accelerator comprises:

a client-side receiving mechanism configured to receive requests for data from a plurality of clients;

a forwarding mechanism configured to forward the requests to the server-side accelerator;

a data re-construction mechanism configured to re-construct the requested data by replacing a reference in a response sent by the server-side accelerator with a portion of data, wherein a common portion in different requested data corresponds to the same reference;

wherein the server-side accelerator comprises a data-compression mechanism configured to replace portions of data with references in response to a client request.

26. The system of claim 25 , wherein the data re-construction mechanism is further configured to retrieve the portion from a persistent storage.

27. The system of claim 26 , wherein the persistent storage is shared by a number of client-side accelerators.

28. The system of claim 25 , wherein the data re-construction mechanism is further configured to receive the portion from a distributor prior to receiving the request from the first client.

29. The system of claim 25 , wherein the data re-construction mechanism is further configured to receive the portion from the server-side accelerator.

30. The system of claim 25 , wherein the client-side accelerator is coupled to the clients via a local area network; and

wherein the client-side accelerator is coupled to the server-side accelerator via a wide area network.

31. The system of claim 25 , wherein the client-side accelerator further comprises:

a data-division mechanism configured to divide a message to be transmitted to the server-side accelerator into one or more portions;

a replacement mechanism configured to replace the portions with corresponding references; and

a server-side transmission mechanism configured to send the references in place of the portions to the server-side accelerator, thereby facilitating accelerated transmission of the message.

Assignments (20)
RELEASE OF SECURITY INTEREST Recorded Aug 11, 2023
From: ALTER DOMUS (US) LLC, AS COLLATERAL AGENT
To: RIVERBED TECHNOLOGY, INC.; ATERNITY LLC; RIVERBED HOLDINGS, INC.
Reel/Frame 064673/0739 →
CHANGE OF NAME Recorded Feb 18, 2022
From: RIVERBED TECHNOLOGY, INC.
To: RIVERBED TECHNOLOGY LLC
Reel/Frame 059232/0551 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS Recorded Dec 27, 2021
From: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS U.S. COLLATERAL AGENT
To: RIVERBED TECHNOLOGY, INC.; ATERNITY LLC
Reel/Frame 058593/0169 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS Recorded Dec 27, 2021
From: ALTER DOMUS (US) LLC, AS COLLATERAL AGENT
To: RIVERBED TECHNOLOGY, INC.; ATERNITY LLC
Reel/Frame 058593/0108 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS Recorded Dec 27, 2021
From: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
To: RIVERBED TECHNOLOGY, INC.; ATERNITY LLC
Reel/Frame 058593/0046 →
SECURITY INTEREST Recorded Dec 10, 2021
From: RIVERBED TECHNOLOGY LLC (FORMERLY RIVERBED TECHNOLOGY, INC.); ATERNITY LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS U.S. COLLATERAL AGENT
Reel/Frame 058486/0216 →
PATENT SECURITY AGREEMENT Recorded Oct 27, 2021
From: RIVERBED TECHNOLOGY, INC.; ATERNITY LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION
Reel/Frame 057943/0386 →
PATENT SECURITY AGREEMENT SUPPLEMENT - FIRST LIEN Recorded Oct 14, 2021
From: RIVERBED HOLDINGS, INC.; RIVERBED TECHNOLOGY, INC.; ATERNITY LLC
To: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
Reel/Frame 057810/0502 →
PATENT SECURITY AGREEMENT SUPPLEMENT - SECOND LIEN Recorded Oct 14, 2021
From: RIVERBED HOLDINGS, INC.; RIVERBED TECHNOLOGY, INC.; ATERNITY LLC
To: ALTER DOMUS (US) LLC, AS COLLATERAL AGENT
Reel/Frame 057810/0559 →
RELEASE OF SECURITY INTEREST IN PATENTS RECORED AT REEL 056397, FRAME 0750 Recorded Oct 13, 2021
From: MACQUARIE CAPITAL FUNDING LLC
To: RIVERBED HOLDINGS, INC.; RIVERBED TECHNOLOGY, INC.; ATERNITY LLC
Reel/Frame 057983/0356 →
SECURITY INTEREST Recorded May 26, 2021
From: RIVERBED HOLDINGS, INC.; RIVERBED TECHNOLOGY, INC.; ATERNITY LLC
To: MACQUARIE CAPITAL FUNDING LLC
Reel/Frame 056397/0750 →
PATENT SECURITY AGREEMENT Recorded Mar 5, 2021
From: RIVERBED TECHNOLOGY, INC.
To: ALTER DOMUS (US) LLC, AS COLLATERAL AGENT
Reel/Frame 055514/0249 →
CORRECTIVE ASSIGNMENT TO CORRECT THE CONVEYING PARTY NAME PREVIOUSLY RECORDED ON REEL 035521 FRAME 0069. ASSIGNOR(S) HEREBY CONFIRMS THE RELEASE OF SECURITY INTEREST IN PATENTS. Recorded Jun 2, 2015
From: JPMORGAN CHASE BANK, N.A.
To: RIVERBED TECHNOLOGY, INC.
Reel/Frame 035807/0680 →
SECURITY INTEREST Recorded May 1, 2015
From: RIVERBED TECHNOLOGY, INC.
To: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
Reel/Frame 035561/0363 →
RELEASE OF SECURITY INTEREST IN PATENTS Recorded Apr 28, 2015
From: BARCLAYS BANK PLC
To: RIVERBED TECHNOLOGY, INC.
Reel/Frame 035521/0069 →
PATENT SECURITY AGREEMENT Recorded Dec 27, 2013
From: RIVERBED TECHNOLOGY, INC.
To: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 032421/0162 →
RELEASE OF PATENT SECURITY INTEREST Recorded Dec 26, 2013
From: MORGAN STANLEY & CO. LLC, AS COLLATERAL AGENT
To: RIVERBED TECHNOLOGY, INC.
Reel/Frame 032113/0425 →
SECURITY AGREEMENT Recorded Dec 20, 2012
From: RIVERBED TECHNOLOGY, INC.; OPNET TECHNOLOGIES, INC.
To: MORGAN STANLEY & CO. LLC
Reel/Frame 029646/0060 →
CHANGE OF NAME Recorded Jun 10, 2009
From: NBT TECHNOLOGY, INC.
To: RIVERBED TECHNOLOGY, INC.
Reel/Frame 022809/0371 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 10, 2009
From: MCCANNE, STEVEN; DEMMER, MICHAEL J.
To: NBT TECHNOLOGY, INC.
Reel/Frame 022809/0292 →