US2016063029A1PendingUtilityA1

Clustered storage system synchronization

Assignee: NETAPP INCPriority: Aug 29, 2014Filed: Aug 29, 2014Published: Mar 3, 2016
Est. expiryAug 29, 2034(~8.1 yrs left)· nominal 20-yr term from priority
H04L 67/1097G06F 17/30176
53
PatentIndex Score
0
Cited by
0
References
0
Claims

Abstract

A request to perform a coordinated action is received. The coordinated action comprises a first plurality of operations. In response to reception of the request to perform the coordinated action, a second plurality of operations is performed in preparation for performing the coordinated action. A response to the request to perform the coordinated action is sent. The response to the request to perform the coordinated action comprises an indication that the first device will perform the coordinated action. An indication that the coordinated action is to be performed is received. In response to reception of the indication that the coordinated action is to be performed, the first plurality of operations is performed.

Claims

exact text as granted — not AI-modified
What is claimed is: 
     
         1 . A method comprising:
 receiving, at a first node, an indication of a triggering event, wherein a triggering event triggers a coordinated action, wherein a coordinated action comprises a plurality of operations;   determining one or more storage object groups associated with the triggering event, wherein each storage object of a storage object group are associated with each other to ensure consistency among the storage objects of the storage object group;   determining a plurality of endpoints associated with the one or more storage object groups, wherein an endpoint of the plurality of endpoints comprises data associated with the one or more storage object groups;   determining a plurality of nodes, wherein each of the plurality of nodes comprises at least one of the plurality of endpoints, wherein each of the plurality of nodes performs one or more of the plurality of operations, wherein the plurality of nodes comprises the first node and a second node;   sending, to the second node, a first message, wherein the first message indicates the coordinated action;   receiving, from the second node, a response to the first message, wherein the response to the first message indicates that the second node is capable of performing the coordinated action; and   sending, to the second node, a second message indicating that the coordinated action should be performed.   
     
     
         2 . The method of  claim 1  further comprising determining that each of the plurality of nodes is capable of performing the coordinated actions, wherein said sending the second message indicating that the coordinated action should be performed is in response to said determining that each of the plurality of nodes is capable of performing the coordinated actions. 
     
     
         3 . The method of  claim 1  further comprising:
 identifying one or more input/output command characteristics; 
 filtering one or more input/output commands matching the one or more input/output command characteristics; 
 queuing the one or more input/output commands matching the one or more input/output command characteristics; and 
 performing one or more of the plurality of operations. 
 
     
     
         4 . The method of  claim 3  further comprising:
 after performing one or more of the plurality of operations,
 halting said filtering of the one or more input/output commands matching the one or more input/output command characteristics; and 
 dequeuing the one or more input/output commands matching the one or more input/output command characteristics. 
 
 
     
     
         5 . The method of  claim 1  further comprising:
 initiate filtering of input/output command responses matching the one or more input/output command characteristics; and 
 queue one or more filtered input/output command responses matching the one or more input/output command characteristics. 
 
     
     
         6 . A system comprising:
 a first device comprising,
 a processor; and 
 a machine readable storage medium having program code stored therein that is executable by the processor to cause the first device to:
 receive, from a second device, a request to perform a coordinated action, wherein the coordinated action comprises a first plurality of operations; 
 in response to reception of the request to perform the coordinated action, perform a second plurality of operations in preparation for performing the coordinated action; 
 send, to the second device, a response to the request to perform the coordinated action, wherein the response to the request to perform the coordinated action comprises an indication that the first device will perform the coordinated action; 
 receive, from the second device, an indication that the coordinated action is to be performed; and 
 in response to reception of the indication that the coordinated action is to be performed, perform the first plurality of operations. 
 
   
     
     
         7 . The system of  claim 6 , wherein the program code executable by the processor to cause the first device to perform the first plurality of operations comprises program code executable by the processor to cause the first device to at least one of:
 change from a first state to a second state;   commit a set of one or more input/output commands; or   create a consistency point.   
     
     
         8 . The system of  claim 7 , wherein the program code executable by the processor to cause the first device to change from the first state to the second state comprises program code executable by the processor to cause the first device to at least one of:
 change state from a normal state to an error state;   change state from an error state to a normal state;   change state from a first of a plurality of normal states to a second of the plurality of normal states; or   change state from a first of a plurality of error states to a second of the plurality of error states.   
     
     
         9 . The system of  claim 6 , wherein the program code executable by the processor to cause the first device to perform the second plurality of operations in preparation for performing the coordinated action comprises program code executable by the processor to cause the first device to:
 identify one or more input/output command characteristics;   initiate filtering of input/output commands matching the one or more input/output command characteristics; and   queue one or more filtered input/output commands matching the one or more input/output command characteristics.   
     
     
         10 . The system of  claim 9 , further comprising program code executable by the processor to cause the first device to:
 after performing the first plurality of operations,
 halt filtering of input/output commands matching the one or more input/output command characteristics; and 
 dequeue one or more filtered input/output commands matching the one or more input/output command characteristics. 
   
     
     
         11 . The system of  claim 9 , wherein the program code executable by the processor to cause the first device to perform the second plurality of operations in preparation for performing the coordinated action further comprises program code executable by the processor to cause the first device to:
 initiate filtering of input/output command responses matching the one or more input/output command characteristics; and   queue one or more filtered input/output command responses matching the one or more input/output command characteristics.   
     
     
         12 . The system of  claim 11  further comprising program code executable by the processor to cause the first device to:
 after performing the first plurality of operations,
 halt filtering of input/output command responses matching the one or more input/output command characteristics; and 
 dequeue one or more filtered input/output command responses matching the one or more input/output command characteristics. 
 
 
     
     
         13 . The system of  claim 9 , wherein the one or more input/output command characteristics comprises one or more storage object group identifiers. 
     
     
         14 . The system of  claim 6  further comprising the second device. 
     
     
         15 . A non-transitory machine readable medium having stored thereon instructions for coordinating actions between nodes of a clustered storage system, comprising machine executable code which when executed by at least one machine, causes the machine to:
 receive a request to perform a coordinated action, wherein the coordinated action comprises a first plurality of operations;   in response to reception of the request to perform the coordinated action, perform a second plurality of operations in preparation for performing the coordinated action;   send a response to the request to perform the coordinated action, wherein the response to the request to perform the coordinated action comprises an indication that the first device will perform the coordinated action;   receive an indication that the coordinated action is to be performed; and   in response to reception of the indication that the coordinated action is to be performed, perform the first plurality of operations.   
     
     
         16 . The non-transitory machine readable medium of  claim 15 , wherein the machine executable code which, when executed by the at least one machine, causes the machine to perform the first plurality of operations comprises machine executable code which, when executed by the at least one machine, causes the machine to at least one of:
 change from a first state to a second state;   commit a set of one or more input/output commands; or   create a consistency point.   
     
     
         17 . The non-transitory machine readable medium of  claim 16 , wherein the machine executable code which, when executed by the at least one machine, causes the machine to change from the first state to the second state comprises machine executable code which, when executed by the at least one machine, causes the machine to at least one of:
 change state from a normal state to an error state;   change state from an error state to a normal state;   change state from a first of a plurality of normal states to a second of the plurality of normal states; or   change state from a first of a plurality of error states to a second of the plurality of error states.   
     
     
         18 . The non-transitory machine readable medium of  claim 15 , wherein the machine executable code which, when executed by the at least one machine, causes the machine to perform the second plurality of operations in preparation for performing the coordinated action comprises machine executable code which, when executed by the at least one machine, causes the machine to:
 identify one or more input/output command characteristics;   initiate filtering of input/output commands matching the one or more input/output command characteristics; and   queue one or more filtered input/output commands matching the one or more input/output command characteristics.   
     
     
         19 . The non-transitory machine readable medium of  claim 15  further comprising machine executable code which, when executed by the at least one machine, causes the at least one machine to:
 after performing the first plurality of operations;
 halt filtering of input/output commands matching the one or more input/output command characteristics; and 
 dequeue one or more filtered input/output commands matching the one or more input/output command characteristics. 
 
 
     
     
         20 . The non-transitory machine readable medium of  claim 15 , wherein the machine executable code which, when executed by the at least one machine, causes the machine to perform the second plurality of operations in preparation for performing the coordinated action comprises machine executable code which, when executed by the at least one machine, causes the machine to:
 initiate filtering of input/output command responses matching the one or more input/output command characteristics;   queue one or more filtered input/output command responses matching the one or more input/output command characteristics; and   after performing the first plurality of operations,
 halt filtering of input/output command responses matching the one or more input/output command characteristics; and 
 dequeue one or more filtered input/output command responses matching the one or more input/output command characteristics.

Join the waitlist — get patent alerts

Track US2016063029A1 — get alerts on status changes and closely related new filings.

We store only your email — no account needed. See our privacy policy.