Transaction accelerator for client-server communications systems
DC CAFCFirst Claim
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.
20 Assignments
Litigations
0 Petitions
Reexamination
Accused Products
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.
-
Citations
31 Claims
-
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. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
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. - View Dependent Claims (12, 13, 14, 15, 16, 17)
-
-
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. - View Dependent Claims (19, 20, 21, 22, 23, 24)
-
-
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. - View Dependent Claims (26, 27, 28, 29, 30, 31)
-
Specification