CONCURRENT REMOTE IO PROCESSING FOR SYNCHRONOUS REPLICATION
First Claim
1. An apparatus comprising:
- a first storage array comprising a plurality of interconnected computing nodes, each of the computing nodes comprising at least one processor and non-transitory memory, and a plurality of groups of data storage drives, each group of data storage drives connected with one of the computing nodes, wherein the first storage array maintains a first replica of a replicated volume comprising contiguous logical block addresses that map to non-contiguous addresses of the data storage drives;
program code, responsive to receipt of an IO command that will update the replicated volume, which generates a notification an IO that will update the replicated volume is impending, the notification comprising information that enables implementation of pre-processing to prepare for receipt of data associated with the impending IO;
program code that provides the notification to a second storage array that maintains a second replica of the replicated volume; and
program code that implements the pre-processing to prepare for receipt of data associated with the impending IO at least partly concurrently with implementation of the pre-processing by the second storage array.
3 Assignments
0 Petitions
Accused Products
Abstract
In a data storage system in which a first storage array and a second storage array maintain first and second replicas of a production volume, the first storage array is responsive to a write command from a host to send a notification to the second storage array indicating that the replicated production volume will be updated. The notification has information that enables the second storage array to implement pre-processing steps to prepare for subsequent receipt of data associated with the write command. Both storage arrays implement the pre-processing steps at least partly concurrently. When the data associated with the write command is subsequently received, the first storage array writes the data to cache and then sends a copy of the data to the second storage array, i.e. in series. The second storage array then writes the data to cache. Elapsed time between receipt of the write command and returning an acknowledgment to the host may be improved by concurrent pre-processing.
21 Citations
20 Claims
-
1. An apparatus comprising:
-
a first storage array comprising a plurality of interconnected computing nodes, each of the computing nodes comprising at least one processor and non-transitory memory, and a plurality of groups of data storage drives, each group of data storage drives connected with one of the computing nodes, wherein the first storage array maintains a first replica of a replicated volume comprising contiguous logical block addresses that map to non-contiguous addresses of the data storage drives; program code, responsive to receipt of an IO command that will update the replicated volume, which generates a notification an IO that will update the replicated volume is impending, the notification comprising information that enables implementation of pre-processing to prepare for receipt of data associated with the impending IO; program code that provides the notification to a second storage array that maintains a second replica of the replicated volume; and program code that implements the pre-processing to prepare for receipt of data associated with the impending IO at least partly concurrently with implementation of the pre-processing by the second storage array. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A method comprising:
-
in a network comprising; a first storage array comprising a plurality of interconnected computing nodes, each of the computing nodes comprising at least one processor and non-transitory memory, and a plurality of groups of data storage drives, each group of data storage drives connected with one of the computing nodes, wherein the first storage array maintains a first replica of a replicated volume comprising contiguous logical block addresses that map to non-contiguous addresses of the data storage drives; and a second storage array comprising a plurality of interconnected computing nodes, each of the computing nodes comprising at least one processor and non-transitory memory, and a plurality of groups of data storage drives, each group of data storage drives connected with one of the computing nodes, wherein the second storage array maintains a second replica of the replicated volume comprising contiguous logical block addresses that map to non-contiguous addresses of the data storage drives; the first storage array generating a notification that an impending IO that will update the replicated volume, the notification comprising information that enables implementation of pre-processing steps to prepare for receipt of data associated with the impending IO; the first storage array providing the notification to the second storage array; and the first storage array implementing the pre-processing steps to prepare for receipt of the data associated with the impending IO at least partly concurrently with implementation of the pre-processing steps by the second storage array. - View Dependent Claims (9, 10, 11, 12, 13, 14)
-
-
15. A system comprising:
-
a first storage array comprising a plurality of interconnected computing nodes, each of the computing nodes comprising at least one processor and non-transitory memory, and a plurality of groups of data storage drives, each group of data storage drives connected with one of the computing nodes, wherein the first storage array maintains a first replica of a replicated volume comprising contiguous logical block addresses that map to non-contiguous addresses of the data storage drives; and a second storage array comprising a plurality of interconnected computing nodes, each of the computing nodes comprising at least one processor and non-transitory memory, and a plurality of groups of data storage drives, each group of data storage drives connected with one of the computing nodes, wherein the second storage array maintains a second replica of the replicated volume comprising contiguous logical block addresses that map to non-contiguous addresses of the data storage drives; wherein the first storage array is responsive to a write command from a host to generate a notification that the replicated volume will be updated, the notification comprising information that enables implementation of pre-processing steps to prepare for subsequent receipt of data associated with the write command; wherein the first storage array provides the notification to the second storage array; and wherein the first storage array implements the pre-processing steps prior to receipt of the data and at least partly concurrently with implementation of the pre-processing steps by the second storage array. - View Dependent Claims (16, 17, 18, 19, 20)
-
Specification