IP Library › Granted Patent US 11,509,718
Granted Patent B2
US 11,509,718 · App. 16/774,108 · Granted Nov 22, 2022

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,509,718
App. No.
16/774,108
Granted
Nov 22, 2022
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 (44)

1. A method comprising:

creating a first set of replica commands matching a first set of commands executed by a first node;

assigning a first set of sequence identifiers to the first set of commands and to the first set of replica commands, wherein each command within the first set of commands and corresponding replica command within the first set of replica commands are assigned different sequence identifiers than other commands and replica commands, wherein the first set of sequence identifiers correspond to an order with which the first node executed the first set of commands, wherein the assigning comprises:

assigning a first sequence identifier, comprising a first value derived from times at which the first sequence identifier is assigned to a first command and at which an event involving the first command occurs, to the first command and assigning a second sequence identifier, comprising a second value derived from times at which the second sequence identifier is assigned to a second command and at which an event involving the second command occurs, to the second command; and

transmitting the first set of replica commands to a second node for execution according to the ordering defined by the first set of sequence identifiers.

2. The method of claim 1 , comprising:

creating a second command set based upon expiration of a time interval since creation of the first command set.

3. The method of claim 1 , wherein a sequence identifier is assigned to a command within the first set of commands and the same sequence identifier is assigned to a replica command within the first set of replica commands, where the replica command is a replica of the command.

4. The method of claim 1 , wherein commands within the first set of commands are executed by the first node in the order corresponding to the first set of sequence identifiers.

5. The method of claim 1 , wherein replica commands within the first set of replica commands are executed by the second node in the order corresponding to the first set of sequence identifiers.

6. The method of claim 1 , comprising:

creating a new command set based upon expiration of a time interval.

7. The method of claim 1 , comprising:

creating a new command set based upon a detected change in metadata.

8. The method of claim 7 , wherein the change in metadata affects performance of commands.

9. The method of claim 1 , wherein the first set of sequence identifiers are incrementing or decrementing values.

10. The method of claim 1 , comprising:

grouping the first set of commands into the first command set based upon the first set of commands targeting a first version of metadata.

11. The method of claim 10 , comprising:

grouping a second set of commands into the second command set based upon the second set of commands targeting a second version of metadata.

12. The method of claim 11 , wherein the first version is an earlier version than the second version.

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

create a first set of replica commands matching a first set of commands executed by a first node;

assign a first set of sequence identifiers to the first set of commands and to the first set of replica commands, wherein each command within the first set of commands and corresponding replica command within the first set of replica commands are assigned different sequence identifiers than other commands and replica commands, wherein the first set of sequence identifiers correspond to an order with which the first node executed the first set of commands, comprising:

assigning a first sequence identifier, comprising a first value derived from times at which the first sequence identifier is assigned to a first command and at which an event involving the first command occurs, to the first command and assigning a second sequence identifier, comprising a second value derived from times at which the second sequence identifier is assigned to a second command and at which an event involving the second command occurs, to the second command; and

transmit the first set of replica commands to a second node for execution according to the ordering defined by the first set of sequence identifiers.

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

grouping a set of commands into a command set based upon enforcement of a maximum interval of time allowed for grouping commands into command sets.

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

grouping a set of commands into a command set such that no two commands within the set of commands are associated with a same portion of client device data.

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

grouping a set of commands into a command set such that no two commands within the set of commands are associated with a same portion of a storage device.

17. A computing device comprising:

a memory comprising machine executable code for performing a method; and

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

create a first set of replica commands matching a first set of commands executed by a first node;

assign a first set of sequence identifiers to the first set of commands and to the first set of replica commands, wherein each command within the first set of commands and corresponding replica command within the first set of replica commands are assigned different sequence identifiers than other commands and replica commands, wherein the first set of sequence identifiers correspond to an order with which the first node executed the first set of commands, comprising:

assigning a first sequence identifier, comprising a first value derived from times at which the first sequence identifier is assigned to a first command and at which an event involving the first command occurs, to the first command and assigning a second sequence identifier, comprising a second value derived from times at which the second sequence identifier is assigned to a second command and at which an event involving the second command occurs, to the second command; and

transmit the first set of replica commands to a second node for execution according to the ordering defined by the first set of sequence identifiers.

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

grouping the first set of commands into the first command set based upon the first set of commands targeting a first version of metadata.

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

grouping a second set of commands into the second command set based upon the second set of commands targeting a second version of metadata.

20. The computing device of claim 19 , wherein the first version is an earlier version than the second version.

Continuity (2)
Continuation 14491799 · Sep 19, 2014
Related Publication 20200162555A1 · May 21, 2020
Cited By (1)
US 12,627,733