Cross-session protocol acceleration and its application to storage area network file systems
First Claim
1. A method for protocol acceleration between a client device and a server device over a network, comprising:
- instantiating a first transport connection to a controller for a first application protocol between a client-side proxy and a server-side proxy, wherein the client-side proxy is in communication with the client device and the server-side proxy is in communication with the server device;
instantiating a second transport connection to a target for a second application protocol between the client-side proxy and the server-side proxy;
observing message payloads flowing between the client device and the server device over the first transport connection to the controller, the message payloads causing first application protocol events;
generating and updating a layout granted to the client device based on the first application protocol events, wherein the layout describes a mapping between a file and the file'"'"'s underlying representation on disk;
deriving a protocol state from the observed message payloads indicating information about the layout granted to the client device for the first application protocol, wherein the protocol state includes one or more extents associated with the layout;
storing, for the client-side proxy, protocol state data for the first transport connection to the controller;
using the stored protocol state data indicating information about the layout granted to the client device for the first application protocol to predictively accelerate at least one message payload exchange based on the one or more extents associated with the layout using the second application protocol over the second transport connection to the target determining if any message payloads in the first protocol invalidate predicted transactions or messages; and
if it is determined that a message payload in the first protocol invalidates a predicted transaction or message, unwinding the predicted transaction or message.
20 Assignments
0 Petitions
Accused Products
Abstract
Protocol acceleration is performed between clients and servers over a network wherein transport connections are established between clients/servers and/or their proxies for acceleration of traffic that uses certain protocols. A first transport connection for a first application protocol and a second transport connection for a second application protocol can be made between two proxies, wherein a client-side proxy is in communication with a client and a server-side proxy is in communication with a server, and the proxies use information from message payloads flowing between the client device and the server device over the first transport connection for acceleration of traffic over the second transport connection. Examples of transport protocols include a file server protocol and a storage access protocol. Cross-protocol acceleration can be expanded so that information obtained for one client on one protocol can be used to accelerate traffic for another client with the same or different protocol.
18 Citations
20 Claims
-
1. A method for protocol acceleration between a client device and a server device over a network, comprising:
-
instantiating a first transport connection to a controller for a first application protocol between a client-side proxy and a server-side proxy, wherein the client-side proxy is in communication with the client device and the server-side proxy is in communication with the server device; instantiating a second transport connection to a target for a second application protocol between the client-side proxy and the server-side proxy; observing message payloads flowing between the client device and the server device over the first transport connection to the controller, the message payloads causing first application protocol events; generating and updating a layout granted to the client device based on the first application protocol events, wherein the layout describes a mapping between a file and the file'"'"'s underlying representation on disk; deriving a protocol state from the observed message payloads indicating information about the layout granted to the client device for the first application protocol, wherein the protocol state includes one or more extents associated with the layout; storing, for the client-side proxy, protocol state data for the first transport connection to the controller; using the stored protocol state data indicating information about the layout granted to the client device for the first application protocol to predictively accelerate at least one message payload exchange based on the one or more extents associated with the layout using the second application protocol over the second transport connection to the target determining if any message payloads in the first protocol invalidate predicted transactions or messages; and if it is determined that a message payload in the first protocol invalidates a predicted transaction or message, unwinding the predicted transaction or message. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13)
-
-
14. An accelerator for use in accelerating transactions over a network using a processor and memory, the accelerator comprising:
-
a first accelerator for a first protocol, wherein the first accelerator is adapted to modify traffic through the accelerator that uses the first protocol in order to accelerate that traffic, acceleration being one or more of latency reduction, bandwidth usage reduction or reliability improvement, and wherein the processor is configured to instantiate transport connections to a controller between the accelerator and another network device that accepts transport connections using the first protocol; a second accelerator for a second protocol, wherein the second accelerator is adapted to modify traffic through the accelerator that uses the second protocol in order to accelerate that traffic, acceleration being one or more of latency reduction, bandwidth usage reduction or reliability improvement and wherein the processor is configured to instantiate transport connections to a target between the accelerator and another network device that accepts transport connections using the second protocol; a control module configured to; a) observe message payloads to the controller received by the accelerator over the first protocol, the message payloads causing first application protocol events; b) generate and update a layout granted to a client device based on the first application protocol events, wherein the layout describes a mapping between a file and the file'"'"'s underlying representation on disk; and c) derive a protocol state from the observed message payloads indicating information about the layout granted to the client device for the first application protocol, wherein the protocol state includes one or more extents associated with the layout; and storage for protocol state data representing state changes inferred from the observed message payloads to the controller wherein the processor is configured to a) signal to the second accelerator protocol state data indicating information about the layout granted to the client device for the first application protocol to predictively accelerate at least one message payload exchange based on the one or more extents associated with the layout to the target done by the second accelerator using the second application protocol that requires at least some of the signaled protocol state data; b) determining if any message payloads in the first protocol invalidate predicted transactions or messages; and c) if it is determined that a message payload in the first protocol invalidates a predicted transaction or message, unwinding the predicted transaction or message. - View Dependent Claims (15, 16, 17, 18, 19)
-
-
20. A method for protocol acceleration between a client device and a server device over a network, comprising:
-
instantiating a first transport connection for a first application protocol between a client-side proxy and a server-side proxy, wherein the client-side proxy is in communication with the client device and the server-side proxy is in communication with the server device; instantiating a second transport connection for a second application protocol between the client-side proxy and the server-side proxy; observing message payloads flowing between the client device and the server device over the first transport connection, the message payloads causing first application protocol events; generating and updating a layout granted to the client device based on the first application protocol events, wherein the layout describes a mapping between a file and the file'"'"'s underlying representation on disk; deriving a protocol state from the observed message payloads indicating information about the layout granted to the client device for the first application protocol, wherein the protocol state includes one or more extents associated with the layout; storing, for the client-side proxy, protocol state data for the first transport connection; using the stored protocol state data indicating information about the layout granted to the client device for the first application protocol to predictively accelerate at least one message payload exchange based on the one or more extents associated with the layout using the second application protocol over the second transport connection; determining if any message payloads in the first protocol invalidate predicted transactions or messages; and if it is determined that a message payload in the first protocol invalidates a predicted transaction or message, unwinding the predicted transaction or message.
-
Specification