IP Library Granted Patent US 7,565,446
Granted Patent B2
US 7,565,446 · App. 11/845,679 · Granted Jul 21, 2009

Method for efficient delivery of clustered data via adaptive TCP connection migration

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,565,446
App. No.
11/845,679
Granted
Jul 21, 2009
Kind
B2
Abstract

The present invention relates generally to a method for efficient I/O handling in a cluster-based architecture. According to one aspect, the invention enables efficient scheduling of TCP connection migrations within a cluster. According to another aspect, the invention enables I/Os performed as TCP handoff operations to coexist on the same TCP/IP connection with I/Os performed as remote operations.

Claims (54)

1. A method comprising:

receiving a network connection at a first node of a storage cluster;

receiving a first I/O request at the first node via the connection;

processing the first I/O request at the first node;

receiving a second I/O request at the first node via the connection;

forwarding the second I/O request to a second node of the storage cluster;

processing the second I/O request at the second node while maintaining the network connection at the first node; and

migrating the connection to the second node after completing the processing of the first I/O request at the first node and after forwarding the second I/O request to the second node.

2. A method according to claim 1 , further comprising:

logging statistics corresponding to the first and second I/O requests; and

determining when to migrate the connection to the second node based on an evaluation of the statistics.

3. A method according to claim 1 , further comprising:

maintaining a directory of data associated with the storage cluster; and

identifying the second node using the directory.

4. A method according to claim 1 , wherein the step of migrating the connection is performed transparently to a client associated with the connection.

5. A method according to claim 1 , wherein the connection uses TCP.

6. A method according to claim 4 , wherein the connection uses TCP.

7. A method according to claim 1 , further comprising sending a reply to the first I/O request from the first node before migrating the connection.

8. A method according to claim 7 , further comprising sending a reply to the second I/O request from the second node after migrating the connection.

9. A method comprising:

receiving a network connection at a first node of a storage cluster;

receiving a first I/O request at the first node via the connection;

processing the first I/O request at the first node;

receiving a second I/O request at the first node via the connection;

determining whether to handoff the second I/O request to a second node of the storage cluster;

if the determination is to handoff the second I/O request:

processing the second I/O request at the second node, and

migrating the connection to the second node after completing the processing of the first I/O request at the first node and after forwarding the second I/O request to the second node;

if the determination is to not handoff the second I/O request:

processing the second I/O request at the second node, and

forwarding results of processing the second I/O request to the first node.

10. A method according to claim 9 , further comprising:

maintaining a directory of data associated with the storage cluster; and

identifying the second node using the directory.

11. A method according to claim 9 , wherein the step of migrating the connection is performed transparently to a client associated with the connection.

12. A method according to claim 9 , wherein the connection uses TCP.

13. A method according to claim 11 , wherein the connection uses TCP.

14. A storage apparatus comprising:

a first node that receives a network connection and a first I/O request via the connection;

a second node that processes a second I/O request received at the first node while maintaining the network connection at the first node; and

a handoff mechanism that migrates the connection to the second node after processing of the first I/O request at the first node is completed and after processing of the second I/O request at the second node has started.

15. An apparatus according to claim 14 , further comprising:

statistics corresponding to the processing of the first and second I/O requests,

wherein the handoff mechanism uses the statistics to determine when to migrate the connection to the second node.

16. An apparatus according to claim 14 , further comprising:

a directory of data associated with the storage cluster,

wherein the second node is identified using the directory.

17. An apparatus according to claim 14 , wherein the handoff mechanism is adapted to migrate the connection transparently to a client associated with the connection.

18. An apparatus according to claim 14 , wherein the connection uses TCP.

19. An apparatus according to claim 17 , wherein the connection uses TCP.

20. An apparatus according to claim 14 , wherein the handoff mechanism is further adapted to determine whether to handoff the second I/O request to a second node of the storage cluster, and wherein if the determination is to handoff the second I/O request:

the handoff mechanism causes the second I/O request to be processed at the second node, and migrates the connection to the second node after processing of the first I/O request at the first node is completed and after processing of the second I/O request at the second node has started;

and wherein if the determination is to not handoff the second I/O request:

the handoff mechanism causes the second I/O request to be processed at the second node, and further causes results of processing the second I/O request to be forwarded to the first node.

Assignments (6)
CORRECTIVE ASSIGNMENT TO REMOVE US PATENT NO. 9013874 PREVIOUSLY RECORDED UNDER REEL AND FRAME 064272/0249. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Sep 17, 2024
From: VSIP HOLDINGS LLC (F/K/A VIOLIN SYSTEMS LLC)
To: INNOVATIONS IN MEMORY LLC
Reel/Frame 068998/0780 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 13, 2023
From: VSIP HOLDINGS LLC (F/K/A VIOLIN SYSTEMS LLC)
To: INNOVATIONS IN MEMORY LLC
Reel/Frame 064272/0249 →
RELEASE OF SECURITY INTEREST Recorded Jun 16, 2021
From: SILICON VALLEY BANK
To: VSIP HOLDINGS LLC (F/K/A VIOLIN SYSTEMS LLC (F/K/A VIOLIN MEMORY, INC.))
Reel/Frame 056600/0186 →
CHANGE OF NAME Recorded May 25, 2021
From: VIOLIN SYSTEMS LLC
To: VSIP HOLDINGS LLC
Reel/Frame 056366/0849 →
RELEASE OF SECURITY INTEREST Recorded Jan 22, 2018
From: SILICON VALLEY BANK
To: VIOLIN SYSTEMS LLC
Reel/Frame 044686/0371 →
CHANGE OF NAME Recorded Dec 19, 2017
From: VIOLIN MEMORY, INC.
To: VIOLIN SYSTEMS LLC
Reel/Frame 044908/0680 →