Method and system for performing periodic replication using a log
First Claim
1. A method implemented by one or more computers, the method comprising:
- storing metadata for each of a plurality of write operations to a primary data volume within a log;
wherein the plurality of write operations comprises first and second write operations comprising first and second data, respectively, wherein the metadata stored in the log for the first write operation comprises first information, wherein the first information defines a first extent of the primary data volume where the first data is written or is to be written and wherein the metadata stored in the log for the second write operation comprises second information, wherein the second information defines a second extent of the primary data volume where the second data is written or is to be written;
comparing the first extent with the second extent to identify a portion(s) of the second extent that does not overlap with the first extent;
replicating the first data and a portion of the second data that is written or is to be written to the portion(s) of the second extent that does not overlap with the first extent;
wherein the first information comprises (1) a first offset from a beginning of the primary data volume, and (2) a first size data that defines the length of the first extent, and wherein the second information comprises (1) a second offset from the beginning of the primary data volume, and (2) a second size data that defines the length of the second extent.
8 Assignments
0 Petitions
Accused Products
Abstract
Disclosed is a method and system for performing periodic replication using a write-ordered log. According to one embodiment, a plurality of write operations to a primary data volume are tracked using a write operation log and then data associated with the plurality of write operations is replicated to a secondary data volume by coalescing the plurality of write operations utilizing the write operation log and transferring data associated with the plurality of write operations to the secondary data volume. According to another embodiment the described tracking includes storing metadata associated with the plurality of write operations within the write operation log. In another embodiment, the described coalescing includes identifying a non-overlapping portion of a first write operation and a second write operation of the plurality of write operations utilizing the metadata.
101 Citations
15 Claims
-
1. A method implemented by one or more computers, the method comprising:
-
storing metadata for each of a plurality of write operations to a primary data volume within a log; wherein the plurality of write operations comprises first and second write operations comprising first and second data, respectively, wherein the metadata stored in the log for the first write operation comprises first information, wherein the first information defines a first extent of the primary data volume where the first data is written or is to be written and wherein the metadata stored in the log for the second write operation comprises second information, wherein the second information defines a second extent of the primary data volume where the second data is written or is to be written; comparing the first extent with the second extent to identify a portion(s) of the second extent that does not overlap with the first extent; replicating the first data and a portion of the second data that is written or is to be written to the portion(s) of the second extent that does not overlap with the first extent; wherein the first information comprises (1) a first offset from a beginning of the primary data volume, and (2) a first size data that defines the length of the first extent, and wherein the second information comprises (1) a second offset from the beginning of the primary data volume, and (2) a second size data that defines the length of the second extent. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. An apparatus comprising:
-
means for storing metadata for each of a plurality of write operations to a primary data volume within a log; wherein the plurality of write operations comprises first and second write operations comprising first and second data, respectively, wherein the metadata stored in the log for the first write operation comprises first information, wherein the first information defines a first extent of the primary data volume where the first data is written or is to be written and wherein the metadata stored in the log for the second write operation comprises second information, wherein the second information defines a second extent of the primary data volume where the second data is written or is to be written; means for comparing the first extent with the second extent to identify a portion(s) of the second extent that does not overlap with the first extent; means for replicating the first data and a portion of the second data that is written or is to be written to the portion(s) of the second extent that does not overlap with the first extent; wherein the first information comprises (1) a first offset from a beginning of the primary data volume, and (2) a first size data that defines the length of the first extent, and wherein the second information comprises (1) a second offset from the beginning of the primary data volume, and (2) a second size data that defines the length of the second extent. - View Dependent Claims (10, 11)
-
-
12. A machine-readable storage medium having a plurality of instructions executable by a machine embodied therein, wherein said plurality of instructions, when executed, cause said machine to perform a method comprising:
-
storing metadata for each of a plurality of write operations to a primary data volume within a log; wherein the plurality of write operations comprises first and second write operations comprising first and second data, respectively, wherein the metadata stored in the log for the first write operation comprises first information, wherein the first information defines a first extent of the primary data volume where the first data is written or is to be written and wherein the metadata stored in the log for the second write operation comprises second information, wherein the second information defines a second extent of the primary data volume where the second data is written or is to be written; comparing the first extent with the second extent to identify a portion(s) of the second extent that does not overlap with the first extent; replicating the first data and a portion of the second data that is written or is to be written to the portion(s) of the second extent that does not overlap with the first extent; wherein the first information comprises (1) a first offset from a beginning of the primary data volume, and (2) a first size data that defines the length of the first extent, and wherein the second information comprises (1) a second offset from the beginning of the primary data volume, and (2) a second size data that defines the length of the second extent. - View Dependent Claims (13, 14)
-
-
15. A system comprising:
-
a memory and a processor; a primary data volume; and a log for storing metadata for first and second write operations comprising first and second data, respectively, wherein the metadata for the first write operation comprises first information, wherein the first information defines a first extent of the primary data volume where the first data is written or is to be written and wherein the metadata for the second write operation comprises second information, wherein the second information defines a second extent of the primary data volume where the second data is written or is to be written; a circuit for comparing the first extent with the second extent to identify a portion(s) of the second extent that does not overlap with the first extent; a circuit for replicating the first data and a portion of the second data that is written or is to be written to the portion(s) of the second extent that does not overlap with the first extent; wherein the first information comprises (1) a first offset from a beginning of the primary data volume, and (2) a first size data that defines the length of the first extent, and wherein the second information comprises (1) a second offset from the beginning of the primary data volume, and (2) a second size data that defines the length of the second extent.
-
Specification