IP Library › Granted Patent US 11,973,829
Granted Patent B2
US 11,973,829 · App. 17/989,102 · Granted Apr 30, 2024

Techniques for coordinating parallel performance and cancellation of commands in a storage cluster system

Inventors: Manoj Sundararajan (Sunnyvale, CA); Paul Yuedong Mu (Sunnyvale, CA); Paul Ngan (Sunnyvale, CA)
Assignee: NetApp, Inc.
H04L67/1097G06F11/2071G06F11/2089H04L67/1095H04L69/22G06F11/2092G06F11/2097
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 11,973,829
App. No.
17/989,102
Granted
Apr 30, 2024
Kind
B2
Abstract

Various embodiments are directed to techniques for coordinating at least partially parallel performance and cancellation of data access commands between nodes of a storage cluster system. An apparatus may include a processor component of a first node coupled to a first storage device storing client device data; an access component to perform replica data access commands of replica command sets on the client device data, each replica command set assigned a set ID; a communications component to analyze a set ID included in a network packet to determine whether a portion of a replica command set in the network packet is redundant, and to reassemble the replica command set from the portion based if the portion is not redundant; and an ordering component to provide the communications component with set IDs of replica command sets of which the access component has fully performed the set of replica data access commands.

Claims (60)

1. A method comprising:

storing information used to form an active communication session from a first node to a second node within metadata;

identifying characteristics of a plurality of data access commands received by the first node;

grouping a subset of the plurality data access commands into a command set of data access commands based upon a characteristic of the subset of the data access commands, wherein an order in which the data access commands are to be performed is preserved within the command set and across other command sets;

assigning sequence identifiers to each of the data access commands within the command set;

creating a replica command set comprising replica data access commands that are replicas of the data access commands within the command set;

replicating, utilizing the active communication session formed using the metadata, the replica command set to second node for execution; and

forming a new command set based upon a change in the metadata affecting performance of the plurality of data access commands.

2. The method of claim 1 , comprising:

assigning matching sequence identifiers to each of the replicas data access commands, wherein a matching sequence identifier assign to a replica data access command matches a sequence identifier of a data access command for which the replica data access command is a replica.

3. The method of claim 1 , comprising:

executing, by the first node, the subset of the data access commands grouped into the command set.

4. The method of claim 1 , comprising:

creating new command sets and replica commands sets at a recurring interval of time.

5. The method of claim 1 , comprising:

evaluating the metadata to detect whether the metadata has changed.

6. The method of claim 1 , comprising:

in response to determining that the change in metadata affects performance of data access commands, creating the new command set.

7. The method of claim 1 , comprising:

grouping a set of data access commands into the new command set such that the data access commands within the new command set do not target a same portion of client data.

8. The method of claim 1 , comprising:

grouping a set of data access commands into the new command set such that the data access commands within the new command set do not target a same storage device.

9. The method of claim 1 , comprising:

grouping a set of data access commands into the new command set based upon a version of the metadata for which the set of data access commands were performed.

10. A non-transitory machine readable medium comprising instructions for performing a method, which when executed by a machine, causes the machine to:

store information used to form an active communication session from a first node to a second node within metadata;

identify characteristics of a plurality of data access commands received by the first node;

group a subset of the plurality data access commands into a command set of data access commands based upon a characteristic of the subset of the data access commands, wherein an order in which the data access commands are to be performed is preserved within the command set and across other command sets;

assign sequence identifiers to each of the data access commands within the command set;

create a replica command set comprising replica data access commands that are replicas of the data access commands within the command set; and

replicate, utilizing the active communication session formed using the metadata, the replica command set to second node for execution; and

form a new command set based upon a change in the metadata affecting performance of the plurality of data access commands.

11. The non-transitory machine readable medium of claim 10 , wherein the instructions cause the machine to:

assign matching sequence identifiers to each of the replicas data access commands, wherein a matching sequence identifier assign to a replica data access command matches a sequence identifier of a data access command for which the replica data access command is a replica.

12. The non-transitory machine readable medium of claim 10 , wherein the instructions cause the machine to:

execute, by the first node, the subset of the data access commands grouped into the command set.

13. The non-transitory machine readable medium of claim 10 , wherein the instructions cause the machine to:

create new command sets and replica commands sets at a recurring interval of time.

14. The non-transitory machine readable medium of claim 10 , wherein the instructions cause the machine to:

evaluate the metadata to detect whether the metadata has changed.

15. The non-transitory machine readable medium of claim 10 , wherein the instructions cause the machine to:

in response to determining that the change in metadata affects performance of data access commands, create the new command set.

16. The non-transitory machine readable medium of claim 10 , wherein the instructions cause the machine to:

group a set of data access commands into the new command set such that the data access commands within the new command set do not target a same portion of client data.

17. The non-transitory machine readable medium of claim 10 , wherein the instructions cause the machine to:

group a set of data access commands into the new command set such that the data access commands within the new command set do not target a same storage device.

18. The non-transitory machine readable medium of claim 10 , wherein the instructions cause the machine to:

group a set of data access commands into the new command set based upon a version of the metadata for which the set of data access commands were performed.

19. A computing device comprising:

a memory comprising machine executable code; and

a processor coupled to the memory, the processor configured to execute the machine executable code to cause the processor to:

store information used to form an active communication session from a first node to a second node within metadata;

identify characteristics of a plurality of data access commands received by the first node;

group a subset of the plurality data access commands into a command set of data access commands based upon a characteristic of the subset of the data access commands, wherein an order in which the data access commands are to be performed is preserved within the command set and across other command sets;

assign sequence identifiers to each of the data access commands within the command set;

create a replica command set comprising replica data access commands that are replicas of the data access commands within the command set; and

replicate, utilizing the active communication session formed using the metadata, the replica command set to second node for execution; and

form a new command set based upon a change in the metadata affecting performance of the plurality of data access commands.

20. The computing device of claim 19 , wherein the machine executable code causes the processor to:

assign matching sequence identifiers to each of the replicas data access commands, wherein a matching sequence identifier assign to a replica data access command matches a sequence identifier of a data access command for which the replica data access command is a replica.

Continuity (3)
Continuation 16774108 · Jan 28, 2020
Continuation 14491799 · Sep 19, 2014
Related Publication 20230079868A1 · Mar 16, 2023
Cited By (1)
US 12,627,733