Recovery point objective enforcement
AssigneeMicrosoft Technology Licensing, LLC
InventorsTomas Talius, Alexander Nosov, Satyanarayana Narlapuram, Robin D. Dhamankar
Life of this patent
Estimating the term…
Abstract
A maximum lag between data stores can be specified that corresponds to a recovery point objective defined in a service level agreement. Lag can be monitored during a data replication between a primary data store and a secondary data store located in geographically different regions. Activity on the primary data store including incoming data transactions can be throttled as a function of the lag and the maximum lag.
Claims20
A method of coordinating transactions committed at a primary data store with a secondary data store, the method involving a device having a processor and comprising:
- executing, by the processor, instructions that cause the device to:
- store a service level agreement identifying a data loss tolerance of data stored by the primary data store and not the secondary data store;
- for respective transactions committed by the primary data store, measure a synchronization lag as a duration between a transaction commit of committed data of the transaction to the primary data store, and synchronization of the committed data stored by the primary data store with the secondary data store;
- based upon the synchronization lag between the transaction commit of the committed data and synchronizing the committed data to the secondary data store, estimate a current data loss potential;
- and
- on condition of the current data loss potential exceeding the data loss tolerance specified by the service level agreement, throttle a transaction count of unsynchronized transactions pending at the primary data store until the current data loss potential no longer exceeds the data loss tolerance.
A system for coordinating transactions committed at a primary data store with a secondary data store, the system comprising:
- a service level agreement that identifies a data loss tolerance of data stored by the primary data store and not the secondary data store;
- a transaction monitor that:
- for respective transactions committed by the primary data store, measure a synchronization lag as a duration between a transaction commit of committed data of the transaction to the primary data store, and synchronization of the committed data stored by the primary data store with the secondary data store;
- and
- based upon the synchronization lag between the transaction commit of the committed data and synchronizing the committed data to the secondary data store, estimate a current data loss potential;
- and
- a transaction throttle that:
- performs a comparison of the current data loss potential to the data loss tolerance:
- chooses a transaction throttling rate based on the comparison;
- and
- throttles a transaction count of transactions pending at the primary data source according to the transaction throttling rate.
A computer-readable storage medium having instructions stored thereon that enable at least one processor of a device to coordinate transactions committed at a primary data store with a secondary data store, by:
- storing a service level agreement identifying a data loss tolerance of data stored by the primary data store and not the secondary data store;
- for respective transactions committed by the primary data store, measuring a synchronization lag as a duration between a transaction commit of committed data of the transaction to the primary data source, and synchronization of the committed data stored by the primary data store with the secondary data source;
- based upon the synchronization lag between the transaction commit of the committed data and synchronizing the committed data to the secondary data store, estimate a current data loss potential of data;
- and
- on condition of the current data loss potential exceeding the data loss tolerance specified by the service level agreement, throttling a transaction count of transactions at the primary data source pending at the primary data store.
Dependencies are inferred from the claim text.