Controlling data lag in a replicated computer system
First Claim
1. A method for determining data replication lag time comprising:
- a standby storage system receiving a stream of change records that record changes to data made at a primary storage system, each change record recording a change and including a system change value and a primary change time value, wherein the system change value identifies a particular state of data;
wherein the primary change time value represents a time said change occurred, said primary change time value being generated by the primary storage system;
said standby storage system maintaining a latest received primary system time value based on primary change time values recorded in the stream of change records;
said standby storage system applying said stream of change records to data at said standby storage system;
after said standby storage system applying, from said stream of change records, a particular change record having a particular system change value and a particular primary change time value, said standby storage system determining a data replication lag time for the particular system change value based on a difference between the latest received primary system time value and the particular primary change time value.
1 Assignment
0 Petitions
Accused Products
Abstract
A method and system is provided for measuring, guaranteeing, and reducing replication data lag time between a primary system and one or more standby systems. Each standby system determines the lag time between the generation of a consistent version of data on the primary system and the time that the consistent version is applied on the standby system. Applications can request and be guaranteed to receive data from a standby system that is identical to the state on the primary system at the time of the query, or lag the primary state only by a maximum tolerable amount. A standby system may also publish a service that guarantees a maximum lag time and withdraw the service offer when the actual lag time exceeds the guaranteed lag time.
Implications for implementing synchronous and asynchronous replication as well as performance optimizations are also discussed.
69 Citations
46 Claims
-
1. A method for determining data replication lag time comprising:
-
a standby storage system receiving a stream of change records that record changes to data made at a primary storage system, each change record recording a change and including a system change value and a primary change time value, wherein the system change value identifies a particular state of data; wherein the primary change time value represents a time said change occurred, said primary change time value being generated by the primary storage system; said standby storage system maintaining a latest received primary system time value based on primary change time values recorded in the stream of change records; said standby storage system applying said stream of change records to data at said standby storage system; after said standby storage system applying, from said stream of change records, a particular change record having a particular system change value and a particular primary change time value, said standby storage system determining a data replication lag time for the particular system change value based on a difference between the latest received primary system time value and the particular primary change time value. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A method comprising:
-
a primary storage system receiving a request to make a particular set of changes; sending change records corresponding to said particular set of changes to one or more standby storage systems; a standby storage system receiving said change records from the primary storage system and writing said change records to persistent storage before sending an acknowledgment of receipt of said change records to the primary storage system; the primary storage system waiting to receive the acknowledgement of receipt of said change records before responding to the request; said standby storage system receiving a read-only request to read data changed by said particular set of changes; detecting that not all said change records have been applied at said standby storage system; said standby storage system deferring reading of said data until said particular set of changes are applied to said standby storage system. - View Dependent Claims (12, 13, 14)
-
-
15. A method comprising:
-
a plurality of primary database system instances applying updates included in one or more transactions to a shared physical database, wherein each primary database system instance runs on a node of a multi-node clustered system; a first primary database system instance processing a first request to commit a transaction wherein processing the request to commit the transaction includes; determining a system change value corresponding to the transaction; generating and sending a first change record to one or more standby database systems; and sending a message to one or more other primary database system instances, wherein said message contains the system change value corresponding to the transaction; in response to receiving said message, each of the one or more other primary database system instances determining whether the system change value is greater than a last system change value sent to the one or more standby database systems; in response to determining that the system change value is greater than the last system change value sent to the one or more standby database systems, generating a second change record that includes the system change value contained in said message; said each of the one or more other primary database system instances sending the second change record to said one or more standby database systems. - View Dependent Claims (16)
-
-
17. A method comprising:
-
a primary storage system concurrently performing; a) persistently storing change records for a set of changes; and b) sending said change records to one or more standby storage systems; said one or more standby storage systems receiving and persistently storing said change records; after completing persistently storing change records for the set of changes, the primary storage system sending a notification to the one or more standby storage systems; the one or more standby storage systems waiting to receive said notification before applying said set of changes. - View Dependent Claims (18, 19)
-
-
20. A method comprising:
-
a broker receiving a query from an application, wherein the query is associated with a maximum tolerable lag time value; selecting a first standby storage system of a plurality of standby storage systems, wherein the first standby storage system monitors data lag time, wherein the data lag time is an amount of time between when data is generated on a primary storage system and when the data is applied on the standby storage system; in response to receiving an error indicating that the data lag time monitored by the first standby storage system is greater than the maximum tolerable lag time value, said broker re-directing said query to a second storage system. - View Dependent Claims (21, 22, 23)
-
-
24. A non-transitory computer-readable medium storing one or more sequences of instructions which, when executed by one or more processors, cause performing of:
-
a standby storage system receiving a stream of change records that record changes to data made at a primary storage system, each change record recording a change and including a system change value and a primary change time value, wherein the system change value identifies a particular state of data; wherein the primary change time value represents a time said change occurred, said primary change time value being generated by the primary storage system; said standby storage system maintaining a latest received primary system time value based on primary change time values recorded in the stream of change records; said standby storage system applying said stream of change records to data at said standby storage system; after said standby storage system applying, from said stream of change records, a particular change record having a particular system change value and a particular primary change time value, said standby storage system determining a data replication lag time for the particular system change value based on a difference between the latest received primary system time value and the particular primary change time value. - View Dependent Claims (25, 26, 27, 28, 29, 30, 31, 32, 33)
-
-
34. A non-transitory computer-readable medium storing one or more sequences of instructions which, when executed by one or more processors, cause performing of:
-
a primary storage system receiving a request to make a particular set of changes; sending change records corresponding to said particular set of changes to one or more standby storage systems; a standby storage system receiving said change records from the primary storage system and writing said change records to persistent storage before sending an acknowledgment of receipt of said change records to the primary storage system; the primary storage system waiting to receive the acknowledgement of receipt of said change records before responding to the request; said standby storage system receiving a read-only request to read data changed by said particular set of changes; detecting that not all said change records have been applied at said standby storage system; said standby storage system deferring reading of said data until said particular set of changes are applied to said standby storage system. - View Dependent Claims (35, 36, 37)
-
-
38. A non-transitory computer-readable medium storing one or more sequences of instructions which, when executed by one or more processors, cause performing of:
-
a plurality of primary database system instances applying updates included in one or more transactions to a shared physical database, wherein each primary database system instance runs on a node of a multi-node clustered system; a first primary database system instance processing a first request to commit a transaction wherein processing the request to commit the transaction includes; determining a system change value corresponding to the transaction; generating and sending a first change record to one or more standby database systems; and sending a message to one or more other primary database system instances, wherein said message contains the system change value corresponding to the transaction; in response to receiving said message, each of the one or more other primary database system instances determining whether the system change value is greater than a last system change value sent to the one or more standby database systems; in response to determining that the system change value is greater than the last system change value sent to the one or more standby database systems, generating a second change record that includes the system change value contained in said message; said each of the one or more other primary database system instances sending the second change record to said one or more standby database systems. - View Dependent Claims (39)
-
-
40. A non-transitory computer-readable medium storing one or more sequences of instructions which, when executed by one or more processors, cause performing of:
-
a primary storage system concurrently performing; a) persistently storing change records for a set of changes; and b) sending said change records to one or more standby storage systems; said one or more standby storage systems receiving and persistently storing said change records; after completing persistently storing change records for the set of changes, the primary storage system sending a notification to the one or more standby storage systems; the one or more standby storage systems waiting to receive said notification before applying said set of changes. - View Dependent Claims (41, 42)
-
-
43. A non-transitory computer-readable medium storing one or more sequences of instructions which, when executed by one or more processors, cause performing of:
-
a broker receiving a query from an application, wherein the query is associated with a maximum tolerable lag time value; selecting a first standby storage system of a plurality of standby storage systems, wherein the first standby storage system monitors data lag time, wherein the data lag time is an amount of time between when data is generated on a primary storage system and when the data is applied on the standby storage system; in response to receiving an error indicating that the data lag time monitored by the first standby storage system is greater than the maximum tolerable lag time value, said broker re-directing said query to a second storage system. - View Dependent Claims (44, 45, 46)
-
Specification