Data mirroring using batch boundaries
First Claim
1. A method of data synchronization, comprising:
- dividing, by at least one computer, data-writing operations, made across a plurality of logical storage units on different data-storage devices, into batches, the batches corresponding to different time segments; and
transmitting, by the at least one computer, a plurality of the data-writing operations, together with an indication of boundaries between the batches, to a remote data-storage location,wherein a particular one of the boundaries between the batches is determined by at least one of;
(1) identifying a period of time of sufficient duration during which no data-writing operations were performed and declaring a point during said period of time as the particular boundary, wherein identifying the period of time having the sufficient duration is to accommodate a maximum expected clock skew among a plurality of entities, and (2) obtaining agreement from the plurality of entities, wherein obtaining the agreement comprises at least some of the plurality of entities receiving a request proposing the particular boundary and the at least some of the plurality of entities responding whether or not the at least some of the plurality of entities agree with the proposed particular boundary.
2 Assignments
0 Petitions
Accused Products
Abstract
Provided are, among other things, systems, methods and techniques for controlling data synchronization. Local data-writing operations, made across a number of logical storage units on different data-storage devices, are divided into batches, the batches corresponding to different time segments. The data-writing operations, together with an indication of boundaries between the batches, are transmitted to a remote data-storage location. The boundaries between the batches are determined by at least one of: (1) identifying a period of time of sufficient duration during which no data-writing operations were performed and declaring a point during said period of time as one of the boundaries, (2) obtaining agreement from a plurality of entities, and (3) declaring the boundaries at pre-scheduled points in time.
34 Citations
22 Claims
-
1. A method of data synchronization, comprising:
-
dividing, by at least one computer, data-writing operations, made across a plurality of logical storage units on different data-storage devices, into batches, the batches corresponding to different time segments; and transmitting, by the at least one computer, a plurality of the data-writing operations, together with an indication of boundaries between the batches, to a remote data-storage location, wherein a particular one of the boundaries between the batches is determined by at least one of;
(1) identifying a period of time of sufficient duration during which no data-writing operations were performed and declaring a point during said period of time as the particular boundary, wherein identifying the period of time having the sufficient duration is to accommodate a maximum expected clock skew among a plurality of entities, and (2) obtaining agreement from the plurality of entities, wherein obtaining the agreement comprises at least some of the plurality of entities receiving a request proposing the particular boundary and the at least some of the plurality of entities responding whether or not the at least some of the plurality of entities agree with the proposed particular boundary. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A method of data synchronization, comprising:
-
dividing, by at least one computer, data-writing operations into batches, the batches corresponding to different time segments, by obtaining real-time agreement among a plurality of automated agents that are at least partially autonomous regarding boundaries between the batches, wherein obtaining the real-time agreement comprises sending requests proposing respective boundaries, and receiving responses from at least some of the automated agents regarding whether or not the at least some of the automated agents agree with the proposed boundaries; and transmitting, by the at least one computer, a plurality of the data-writing operations, together with an indication of boundaries between the batches, to a remote data-storage location. - View Dependent Claims (12, 13, 14, 15, 16, 17)
-
-
18. A non-transitory computer-readable storage medium storing computer-executable process steps for data synchronization, said process steps comprising:
-
dividing data-writing operations, made across a plurality of logical storage units on different data-storage devices, into batches, the batches corresponding to different time segments; and transmitting a plurality of the data-writing operations, together with an indication of boundaries between the batches, to a remote data-storage location, wherein a particular one of the boundaries between the batches is determined by at least one of;
(1) identifying a period of time of sufficient duration during which no data-writing operations were performed and declaring a point during said period of time as the particular boundary, wherein identifying the period of time having the sufficient duration is to accommodate a maximum expected clock skew among a plurality of entities, and (2) obtaining agreement from the plurality of entities, wherein obtaining the agreement comprises at least some of the plurality of entities receiving a request proposing the particular boundary and the at least some of the plurality of entities responding whether or not the at least some of the plurality of entities agree with the proposed particular boundary. - View Dependent Claims (19, 20, 21, 22)
-
Specification