IP Library › Granted Patent US 12,627,733
Granted Patent B2
US 12,627,733 · App. 18/648,968 · Granted May 12, 2026

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 12,627,733
App. No.
18/648,968
Filed
Apr 29, 2024
Granted
May 12, 2026
Kind
B2
Art Unit
2459
USPC
709/212
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 (54)

1 . A method comprising:

receiving data access commands for execution by a first node;

identifying a first subset of the data access commands that target a first version of a database;

grouping the first subset of the data access commands into a first command set;

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

replicating the first replica command set to a second node for execution.

2 . The method of claim 1 , comprising:

identifying a second subset of the data access commands that target a second version of the database; and

grouping the second subset of the data access commands into a second command set.

3 . The method of claim 2 , comprising:

creating a second replica command set comprising replica data access commands that are replicas of the second subset of the data access commands within the second command set.

4 . The method of claim 3 , comprising:

replicating the second replica command set to the second node for execution.

5 . The method of claim 1 , comprising:

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

6 . The method of claim 5 , comprising:

assigning matching sequence identifiers to each of the replicas data access commands within the first replica command set.

7 . The method of claim 6 , 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.

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

receiving data access commands for execution by a first node;

identifying a first subset of the data access commands that target a first version of a database;

grouping the first subset of the data access commands into a first command set;

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

replicating the first replica command set to a second node for execution.

9 . The non-transitory machine readable medium of claim 8 , wherein the operations comprise:

identifying a second subset of the data access commands that target a second version of the database; and

grouping the second subset of the data access commands into a second command set.

10 . The non-transitory machine readable medium of claim 9 , wherein the operations comprise:

creating a second replica command set comprising replica data access commands that are replicas of the second subset of the data access commands within the second command set.

11 . The non-transitory machine readable medium of claim 10 , wherein the operations comprise:

replicating the second replica command set to the second node for execution.

12 . The non-transitory machine readable medium of claim 8 , wherein the operations comprise:

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

13 . The non-transitory machine readable medium of claim 12 , wherein the operations comprise:

assigning matching sequence identifiers to each of the replicas data access commands within the first replica command set.

14 . The non-transitory machine readable medium of claim 13 , 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.

15 . 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 perform operations comprising: receiving data access commands for execution by a first node;

identifying a first subset of the data access commands that target a first version of a database;

grouping the first subset of the data access commands into a first command set;

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

replicating the first replica command set to a second node for execution.

16 . The computing device of claim 15 , wherein the operations comprise:

identifying a second subset of the data access commands that target a second version of the database; and

grouping the second subset of the data access commands into a second command set.

17 . The computing device of claim 16 , wherein the operations comprise:

creating a second replica command set comprising replica data access commands that are replicas of the second subset of the data access commands within the second command set.

18 . The computing device of claim 17 , wherein the operations comprise:

replicating the second replica command set to the second node for execution.

19 . The computing device of claim 15 , wherein the operations comprise:

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

20 . The computing device of claim 19 , wherein the operations comprise:

assigning matching sequence identifiers to each of the replicas data access commands within the first replica command set.

Continuity (4)
Continuation 17989102 · Nov 17, 2022
Continuation 16774108 · Jan 28, 2020
Continuation 14491799 · Sep 19, 2014
Related Publication 20240283845A1 · Aug 22, 2024
References Cited (71)
US 6098078A · Gehani · 2000 [cited by examiner]
US 6859824B1 · Yamamoto et al. · 2005 [cited by applicant]
US 7120631B1 · Vahalia et al. · 2006 [cited by applicant]
US 7415591B1 · Todd et al. · 2008 [cited by applicant]
US 7657537B1 · Corbett · 2010 [cited by applicant]
US 7827144B1 · Saito et al. · 2010 [cited by applicant]
US 8332473B1 · Fouts et al. · 2012 [cited by applicant]
US 8396840B1 · Mchugh et al. · 2013 [cited by applicant]
US 8401997B1 · Tawri et al. · 2013 [cited by applicant]
US 8577902B1 · Ye et al. · 2013 [cited by applicant]
US 8700574B2 · Thomson · 2014 [cited by examiner]
US 8725686B2 · Watanabe et al. · 2014 [cited by applicant]
US 8924656B1 · Usgaonkar et al. · 2014 [cited by applicant]
US 9128903B2 · Takemoto · 2015 [cited by applicant]
US 9208032B1 · Mcalister et al. · 2015 [cited by applicant]
US 9230000B1 · Hsieh et al. · 2016 [cited by applicant]
US 9235632B1 · Natanzon · 2016 [cited by applicant]
US 9298633B1 · Zhao et al. · 2016 [cited by applicant]
US 9424151B2 · Lakshman et al. · 2016 [cited by applicant]
US 9521198B1 · Agarwala et al. · 2016 [cited by applicant]
US 9531809B1 · Brooker et al. · 2016 [cited by applicant]
US 10587688B2 · Sundararajan et al. · 2020 [cited by applicant]
US 10936545B1 · Chockalingam · 2021 [cited by examiner]
US 11509718B2 · Sundararajan et al. · 2022 [cited by applicant]
US 11973829B2 · Sundararajan et al. · 2024 [cited by applicant]
US 20030149920A1 · Elko et al. · 2003 [cited by applicant]
US 20040078637A1 · Fellin et al. · 2004 [cited by applicant]
US 20050125465A1 · Arakawa et al. · 2005 [cited by applicant]
US 20060168397A1 · Wightwick et al. · 2006 [cited by applicant]
US 20060174076A1 · Takeda et al. · 2006 [cited by applicant]
US 20070254922A1 · Hiraiwa et al. · 2007 [cited by applicant]
US 20090049252A1 · Bartfai et al. · 2009 [cited by applicant]
US 20090064142A1 · Kajita · 2009 [cited by applicant]
US 20090125692A1 · Yamamoto et al. · 2009 [cited by applicant]
US 20090172417A1 · Mikami et al. · 2009 [cited by applicant]
US 20100049928A1 · Harris, Jr. et al. · 2010 [cited by applicant]
US 20100082540A1 · Isaacson et al. · 2010 [cited by applicant]
US 20120226852A1 · Chen et al. · 2012 [cited by applicant]
US 20120284369A1 · Fishgait et al. · 2012 [cited by applicant]
US 20120311161A1 · Schmidt et al. · 2012 [cited by applicant]
US 20130159556A1 · Mizumaki · 2013 [cited by applicant]
US 20130268720A1 · Ito et al. · 2013 [cited by applicant]
US 20130332484A1 · Gajic · 2013 [cited by applicant]
US 20140139140A1 · Yeh et al. · 2014 [cited by applicant]
US 20140164332A1 · Shan et al. · 2014 [cited by applicant]
US 20150106549A1 · Brown et al. · 2015 [cited by applicant]
US 20150261443A1 · Wei et al. · 2015 [cited by applicant]
US 20150278244A1 · Shvachko et al. · 2015 [cited by applicant]
US 20150278397A1 · Hendrickson et al. · 2015 [cited by applicant]
US 20150339923A1 · König et al. · 2015 [cited by applicant]
US 20160062853A1 · Sugabrahmam et al. · 2016 [cited by applicant]
US 20160321338A1 · Isherwood et al. · 2016 [cited by applicant]
US 20180373887A1 · Smith · 2018 [cited by applicant]
US 20230079868A1 · Sundararajan et al. · 2023 [cited by applicant]
CN 103064757A · 2013 [cited by applicant]
Final Office Action mailed on Jul. 26, 2021 for U.S. Appl. No. 16/774,108, filed Jan. 28, 2020, 23 pages. [cited by applicant]
Final Office Action mailed on May 9, 2019 for U.S. Appl. No. 14/491,799, filed Sep. 19, 2014, 20 pages. [cited by applicant]
Final Office Action mailed on Nov. 30, 2017 for U.S. Appl. No. 14/491,799, filed Sep. 19, 2014, 15 pages. [cited by applicant]
Final Office Action mailed Sep. 28, 2023 for U.S. Appl. No. 17/989,102, filed Nov. 17, 2022, 20 pages. [cited by applicant]
First Chinese Office Action cited in Chinese Application No. 2015800628386 dated Sep. 3, 2019, 14 pages. [cited by applicant]
International Search Report and Written Opinion for Application No. PCT/US2015/050925 mailed on Dec. 17, 2015, 14 pages. [cited by applicant]
Non-Final Office Action mailed on Dec. 7, 2021 for U.S. Appl. No. 16/774,108, filed Jan. 28, 2020, 26 pages. [cited by applicant]
Non-Final Office Action mailed on Mar. 3, 2021 for U.S. Appl. No. 16/774,108, filed Jan. 28, 2020, 19 pages. [cited by applicant]
Non-Final Office Action mailed on Mar. 30, 2023 for U.S. Appl. No. 17/989,102, filed Nov. 17, 2022, 19 pages. [cited by applicant]
Non-Final Office Action mailed on May 5, 2017 for U.S. Appl. No. 14/491,799, filed Sep. 19, 2014, 15 pages. [cited by applicant]
Non-Final Office Action mailed on Oct. 19, 2018 for U.S. Appl. No. 14/491,799, filed Sep. 19, 2014, 28 pages. [cited by applicant]
Notice of Allowance mailed on Apr. 5, 2022 for U.S. Appl. No. 16/774,108, filed Jan. 28, 2020, 10 pages. [cited by applicant]
Notice of Allowance mailed on Dec. 23, 2019 for U.S. Appl. No. 14/491,799, filed Sep. 19, 2014, 19 pages. [cited by applicant]
Notice of Allowance mailed on Dec. 28, 2023 for U.S. Appl. No. 17/989,102, filed Nov. 17, 2022, 10 pages. [cited by applicant]
Notice of Allowance mailed on Jul. 22, 2022 for U.S. Appl. No. 16/774,108, filed Jan. 28, 2020, 10 pages. [cited by applicant]
Notification of the First Office Action in Chinese Application No. 2015800628386 dated Sep. 3, 2019, 2 pages. [cited by applicant]