IP Library › Granted Patent US 11,593,016
Granted Patent B2
US 11,593,016 · App. 16/940,462 · Granted Feb 28, 2023

Serializing execution of replication operations

Inventors: Akhil Kaushik (Bangalore, IN); Anoop Chakkalakkal Vijayan (Bangalore, IN); Krishna Murthy Chandraiah setty Narasingarayanapeta (Karnataka, IN); Shrey Sengar (Jharkhand, IN)
Assignee: NetApp, Inc.
G06F3/065G06F3/0604G06F3/0659G06F3/0683G06F11/2064G06F16/9024
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,593,016
App. No.
16/940,462
Filed
Jul 28, 2020
Granted
Feb 28, 2023
Kind
B2
Art Unit
2184
USPC
711/114
Abstract

Techniques are provided for serializing replication operations. A plurality of operations are implemented upon a first storage object and are replicated as a plurality of replication operations. An order with which the plurality of replication operation are to be executed upon a second storage object is determined. Execution of the plurality of replication operations upon the second storage object is serialized according to the order.

Claims (51)

1. A method comprising:

implementing a plurality of operations upon a first storage object;

replicating the plurality of operations as a plurality of replication operations targeting a second storage object maintained as a replica of the first storage object;

determining an order with which the plurality of replication operations are to be executed upon the second storage object; and

serializing execution of the plurality of replication operations upon the second storage object according to the order, wherein a truncate command is serially executed with respect to the plurality of replication operations, and wherein the truncate command is executed upon the second storage object to set a size of the second storage object to a size of the first storage object.

2. The method of claim 1 , wherein the serializing comprises:

blocking a first replication operation from modifying the second storage object until a second replication operation has completed modifying the second storage object based upon the order indicating that the second replication operation is to be executed before the first replication operation.

3. The method of claim 2 , comprising:

queuing the first replication operation until completion of the second replication operation.

4. The method of claim 1 , wherein the serializing comprises:

blocking a first replication operation from modifying the second storage object until a second replication operation has completed modifying the second storage object based upon the order indicating that execution of the first replication operation depends upon prior execution of the second replication operation.

5. The method of claim 1 , wherein the serializing comprises:

blocking a first replication operation, corresponding to a replica of a first operation executed upon the first storage object, from modifying the second storage object until a second replication operation, corresponding to a replica of a second operation executed upon the second storage object, has completed modifying the second storage object based upon the order indicating that the second operation was executed prior to the first operation upon the first storage object.

6. The method of claim 1 , wherein the serializing comprises:

blocking a first replication operation, corresponding to a replica of a first operation executed upon the first storage object, from modifying the second storage object until a second replication operation, corresponding to a replica of a second operation executed upon the second storage object, has completed modifying the second storage object based upon the order indicating that the second operation was executed prior to the first operation upon the first storage object and modify a same block.

7. The method of claim 1 , wherein the serializing comprises:

utilizing a volume barrier to block a first replication operation from modifying the second storage object until a second replication operation has completed modifying the second storage object.

8. The method of claim 1 , comprising:

maintaining a dependency graph to track an original order of which operations are executed upon the first storage object.

9. The method of claim 8 , wherein the determining an order comprises:

evaluating the dependency graph to determine the order based upon the original order of which the operations were executed upon the first storage object.

10. The method of claim 8 , comprising:

maintaining the dependency graph to track what operations modified a same block of the first storage object.

11. The method of claim 10 , wherein the determining an order comprises:

evaluating the dependency graph to determine the order based upon the original order of which the operations were executed upon the first storage object and which operations modified same blocks of the first storage object.

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

implement a plurality of operations upon a first storage object;

replicate the plurality of operations as a plurality of replication operations targeting a second storage object maintained as a replica of the first storage object;

determine an order with which the plurality of replication operations are to be executed upon the second storage object; and

serialize execution of the plurality of replication operations upon the second storage object according to the order, wherein a truncate command is serially executed with respect to the plurality of replication operations, and wherein the truncate command is executed upon the second storage object to set a size of the second storage object to a size of the first storage object.

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

block a first replication operation from modifying the second storage object until a second replication operation has completed modifying the second storage object based upon the order indicating that the second replication operation is to be executed before the first replication operation.

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

queue the first replication operation until completion of the second replication operation.

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

block a first replication operation from modifying the second storage object until a second replication operation has completed modifying the second storage object based upon the order indicating that execution of the first replication operation depends upon prior execution of the second replication operation.

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

block a first replication operation, corresponding to a replica of a first operation executed upon the first storage object, from modifying the second storage object until a second replication operation, corresponding to a replica of a second operation executed upon the second storage object, has completed modifying the second storage object based upon the order indicating that the second operation was executed prior to the first operation upon the first storage object.

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:

implement a plurality of operations upon a first storage object;

replicate the plurality of operations as a plurality of replication operations targeting a second storage object maintained as a replica of the first storage object;

determine an order with which the plurality of replication operations are to be executed upon the second storage object; and

serialize execution of the plurality of replication operations upon the second storage object according to the order, wherein a truncate command is serially executed with respect to the plurality of replication operations, and wherein the truncate command is executed upon the second storage object to set a size of the second storage object to a size of the first storage object.

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

utilize a volume barrier to block a first replication operation from modifying the second storage object until a second replication operation has completed modifying the second storage object.

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

maintain a dependency graph to track an original order of which operations are executed upon the first storage object.

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

evaluate the dependency graph to determine the order based upon the original order of which the operations were executed upon the first storage object.

Continuity (2)
Continuation 16288506 · Feb 28, 2019
Related Publication 20200356274A1 · Nov 12, 2020
Cited By (3)
US 12,204,786 US 12,321,627 US 12,436,707