Efficient Logging for Asynchronously Replicating Volume Groups
First Claim
1. A computer-readable storage medium comprising program instructions for replicating data, wherein the program instructions are executable to:
- receive a write request to write data to a location in a volume;
store metadata associated with the write request;
determine if the write request possibly overlaps with one or more earlier write requests to the volume that have not yet been replicated to a secondary storage;
store the data in a replication log in response to determining that the write request possibly overlaps with one or more earlier write requests to the volume;
wherein the data is not stored in the replication log in response to determining that the write request does not overlap with one or more earlier write requests to the volume;
write the data to the location in the volume in response to the write request; and
periodically replicate changes to the volume to the secondary storage using the replication log.
7 Assignments
0 Petitions
Accused Products
Abstract
A system and method for logging for asynchronously replicating volume groups. A write request to write data to a location in a volume may be received. Metadata associated with the write request may be stored. It may be determined if the write request possibly overlaps with one or more earlier write requests to the volume that have not yet been replicated to a secondary storage. The data may be stored in a replication log only if the write request possibly overlaps with one or more earlier write requests to the volume. The data may not be stored in the replication log if the write request does not overlap with one or more earlier write requests to the volume. The data may be written to the location in the volume. Changes to the volume may periodically be replicated to the secondary storage using the replication log.
-
Citations
20 Claims
-
1. A computer-readable storage medium comprising program instructions for replicating data, wherein the program instructions are executable to:
-
receive a write request to write data to a location in a volume; store metadata associated with the write request; determine if the write request possibly overlaps with one or more earlier write requests to the volume that have not yet been replicated to a secondary storage; store the data in a replication log in response to determining that the write request possibly overlaps with one or more earlier write requests to the volume; wherein the data is not stored in the replication log in response to determining that the write request does not overlap with one or more earlier write requests to the volume; write the data to the location in the volume in response to the write request; and periodically replicate changes to the volume to the secondary storage using the replication log. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A computer-implemented method for replicating data, the method comprising:
-
a computer system receiving a write request to write data to a location in a volume; the computer system storing metadata associated with the write request; the computer system determining if the write request possibly overlaps with one or more earlier write requests to the volume that have not yet been replicated to a secondary storage; the computer system storing the data in a replication log in response to determining that the write request possibly overlaps with one or more earlier write requests to the volume; wherein the data is not stored in the replication log in response to determining that the write request does not overlap with one or more earlier write requests to the volume; the computer system writing the data to the location in the volume in response to the write request; and the computer system periodically replicating changes to the volume to the secondary storage using the replication log. - View Dependent Claims (9, 10, 11, 12, 13, 14)
-
-
15. A system for replicating data, the system comprising:
-
one or more processors; a computer-readable storage medium comprising program instructions executable by the one or more processors, wherein the program instructions are executable to; receive a write request to write data to a location in a volume; store metadata associated with the write request; determine if the write request possibly overlaps with one or more earlier write requests to the volume that have not yet been replicated to a secondary storage; store the data in a replication log in response to determining that the write request possibly overlaps with one or more earlier write requests to the volume; wherein the data is not stored in the replication log in response to determining that the write request does not overlap with one or more earlier write requests to the volume; write the data to the location in the volume in response to the write request; and periodically replicate changes to the volume to the secondary storage using the replication log. - View Dependent Claims (16, 17, 18, 19, 20)
wherein in response to determining that the write request is the first write request that possibly overlaps on the block range, the program instructions are further executable to store data from the volume corresponding to the block range to the replication log.
-
-
17. The system of claim 16, wherein the program instructions are further executable to:
store linking information, wherein the linking information links an entry in the replication log comprising the data from the volume corresponding to the block range and one or more entries in the replication log corresponding to one or more overlapping earlier write requests.
-
18. The system of claim 15, wherein the program instructions are further executable to:
-
maintain a data change map data structure in memory; wherein the program instructions are executable to examine the data change map data structure in determining if the write request possibly overlaps with one or more earlier write requests to the volume that have not yet been replicated to the secondary storage.
-
-
19. The system of claim 15,
wherein, in periodically replicating changes to the volume to the secondary storage using the replication log, the program instructions are executable to: -
read a first record from the replication log, wherein the first record refers to a first area of the volume; determine if at least a portion of the first area of the volume has been overwritten; if at least a portion of the first area of the volume has not been overwritten, then read first data from the portion of the first area of the volume that has not been overwritten and provide the first data to the secondary storage; if at least a portion of the first area of the volume has been overwritten, then read second data corresponding to the overwritten portion of the first area of the volume from the replication log and provide the second data to the secondary storage.
-
-
20. The system of claim 19,
wherein, in determining if at least a portion of the first area of the volume has been overwritten, the program instructions are executable to: utilize information in one or more data structures to determine if at least a portion of the first area of the volume has possibly been overwritten and to determine one or more portions of the replication log that comprise the second data.
Specification