IP Library Granted Patent US 8,463,941
Granted Patent B1
US 8,463,941 · App. 12/140,184 · Granted Jun 11, 2013

Cross-session protocol acceleration and its application to storage area network file 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 8,463,941
App. No.
12/140,184
Granted
Jun 11, 2013
Kind
B1
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.

Claims (47)

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.

2. The method of claim 1 , further comprising using the stored protocol state data for acceleration over a transport connection between one or more client device and one or more server device other than the client and server of the transaction from which the stored protocol state data was obtained.

3. The method of claim 1 , wherein the first application protocol is a file system protocol.

4. The method of claim 3 , wherein the file system protocol is NFS with pNFS extensions.

5. The method of claim 1 , wherein the second application protocol is a file system protocol.

6. The method of claim 1 , wherein the second application protocol is a storage access protocol.

7. The method of claim 6 , wherein the storage access protocol is iSCSI.

8. The method of claim 1 , wherein using the stored protocol state data comprises accelerating a first grant request from a requesting client that overlaps a conflicting grant of a grant holder client by predicting and issuing a recall message to the grant holder client if the grant holder client and the requesting client share a client-side proxy.

9. The method of claim 8 , wherein using the stored protocol state data further comprises delaying the forwarding of the first grant request until the existing grant holder client has responded to the predicted recall message and issued a layout return message.

10. The method of claim 1 , wherein using the stored protocol state data comprises accelerating a first grant request for a range that is contained within the union of grants to one or more client, by predicting a successful grant message based on existing a grant or grants.

11. The method of claim 1 , wherein unwinding comprises discarding data obtained during the predicted transaction.

12. The method of claim 1 , wherein unwinding comprises recalling a predicted grant.

13. The method of claim 1 , wherein the stored protocol state data is used in providing a plurality of shared read-only layouts to clients that overlap with a read-write layout.

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.

15. The accelerator of claim 14 , wherein the control module is a layout control module that tracks layouts assigned to clients, wherein the first protocol is a file server protocol that includes requests for layouts, and wherein the second protocol is a storage access protocol.

16. The accelerator of claim 14 , wherein the control module is a control module that also observes message payloads sent by the accelerator over the first protocol.

17. The accelerator of claim 14 , comprising a plurality of first accelerators for a first protocol and a plurality of second accelerators for a second protocol.

18. The accelerator of claim 14 , wherein the control module is configured to handle transactions with a plurality of clients and a plurality of servers.

19. The accelerator of claim 14 , wherein the storage for protocol state data is configured to store data used in providing a plurality of shared read-only layouts to clients that overlap with a read-write layout.

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.

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 - 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 →
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 →
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 →
PATENT SECURITY AGREEMENT Recorded Sep 13, 2013
From: RIVERBED TECHNOLOGY, INC.
To: MORGAN STANLEY & CO. LLC
Reel/Frame 031216/0968 →
SECURITY AGREEMENT Recorded Dec 20, 2012
From: RIVERBED TECHNOLOGY, INC.; OPNET TECHNOLOGIES, INC.
To: MORGAN STANLEY & CO. LLC
Reel/Frame 029646/0060 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 19, 2008
From: WELCH, WILLIAM; MCCANNE, STEVEN
To: RIVERBED TECHNOLOGY, INC.
Reel/Frame 021120/0492 →