IP Library › Granted Patent US 11,218,539
Granted Patent B2
US 11,218,539 · App. 16/682,056 · Granted Jan 4, 2022

Synchronous replication for storage

Inventors: Paul Anthony Powell (Holly Springs, NC); Akhil Kaushik (San Jose, CA); Srikumar Natarajan (Cary, NC); Ching-Yuk Paul Ngan (Redwood City, CA)
Assignee: NetApp, Inc.
H04L67/1095G06F3/065G06F3/067G06F3/0614G06F11/2064G06F11/2069G06F11/2076G06F16/178G06F16/1844H04L67/1097G06F2201/805
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,218,539
App. No.
16/682,056
Filed
Nov 13, 2019
Granted
Jan 4, 2022
Kind
B2
Examiner
KO, CHAE M
Art Unit
2114
USPC
707/610
Abstract

One or more techniques and/or computing devices are provided for implementing synchronous replication. For example, a synchronous replication relationship may be established between a first storage controller hosting local storage and a second storage controller hosting remote storage (e.g., replication may be specified at a file, logical unit number (LUN), or any other level of granularity). Data operations and offloaded operations may be implemented in parallel upon the local storage and the remote storage. Error handling operations may be implemented upon the local storage and implement in parallel as a best effort on the remote storage, and a reconciliation may be performed to identify any data divergence from the best effort parallel implementation. Storage area network (SAN) operations may be implemented upon the local storage, and upon local completion may be remotely implemented upon the remote storage.

Claims (53)

1. A method comprising:

evaluating operations targeting first storage to identify data operations and metadata operations;

executing the metadata operations upon the first storage in parallel with executing the data operations based upon the metadata operations being non-overlapping with respect to pending operations;

executing and replicating the data operations upon the first storage and second storage in parallel; and

storing an operation into a queue based upon the operation overlapping a region targeted by the pending operation.

2. The method of claim 1 , comprising:

completing the pending operations while the operation is within the queue.

3. The method of claim 2 , comprising:

de-queuing and executing the operation based upon execution of the pending operations completing.

4. The method of claim 1 , comprising:

storing the operation into the queue based upon the operation depending upon prior execution of a pending operation.

5. The method of claim 1 , comprising:

replicating the operations to create replicated operations to execute upon the second storage.

6. The method of claim 5 , comprising:

serially executing non-overlapping metadata operations and overlapping metadata operations upon the first storage before executing corresponding replicated operations upon the second storage.

7. The method of claim 6 , comprising:

executing queued operations within the queue upon completion of the pending operations.

8. The method of claim 6 , comprising:

executing replicated metadata operations upon completion of the pending operations.

9. The method of claim 1 , comprising:

identifying operations as non-overlapping operations based upon the operations targeting non-overlapping regions with respect to the pending operations.

10. The method of claim 1 , comprising:

identifying operations as overlapping metadata operations based upon the operations depending upon prior execution of the pending operations.

11. The method of claim 1 , comprising:

maintaining the queue within which operations overlapping pending operations are to be stored.

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

evaluate operations targeting first storage to identify data operations and metadata operations;

execute the metadata operations upon the first storage in parallel with executing the data operations based upon the metadata operations being non-overlapping with respect to pending operations;

execute and replicating the data operations upon the first storage and second storage in parallel; and

maintaining a queue within which operations overlapping pending operations are to be stored;

store an operation into the queue based upon the operation depending upon prior execution of a pending operation.

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

complete the pending operations while the operation is within the queue.

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

de-queue and execute the operation based upon execution of the pending operations completing.

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

store the operation into the queue based upon the operation overlapping a region targeted by a pending operation.

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

replicate the operations to create replicated operations to execute upon the second storage.

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

serially execute non-overlapping metadata operations and overlapping metadata operations upon the first storage before executing corresponding replicated operations upon the second storage.

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

execute queued operations within the queue upon completion of the pending operations.

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

execute replicated metadata operations upon completion of the pending operations.

20. 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:

evaluate operations targeting first storage to identify data operations and metadata operations, wherein the operations are replicated as replicated operations to execute upon the second storage;

execute the metadata operations upon the first storage in parallel with executing the data operations based upon the metadata operations being non-overlapping with respect to pending operations;

execute and replicating the data operations upon the first storage and second storage in parallel;

serially execute non-overlapping metadata operations and overlapping metadata operations upon the first storage before executing corresponding replicated operations upon the second storage; and

store an operation into a queue based upon the operation depending upon prior execution of a pending operation.

Continuity (3)
Continuation 15850754 · Dec 21, 2017
Continuation 14953048 · Nov 27, 2015
Related Publication 20200084271A1 · Mar 12, 2020
Cited By (1)
US 12,206,734