Maintaining data consistency between transactional and non-transactional data stores
First Claim
1. A method comprising:
- receiving a request to archive a first set of data, the first set of data being stored in a transactional data store;
upon receipt of the request, archiving the first set of data, including copying the first set of data into an archive data store and inserting a data high water mark for the first set of data in the transactional data store and the archive data store, the data high water mark representing a time or order for archiving of the first set of data;
updating a reference high water mark for the transactional data store and the archive data store upon successful completion of operations for the archiving of the first set of data, the reference high water mark representing a time or order of completion of a last successful archive operation from the transactional data store to the archive data store;
receiving a query from a user for requested data, the query being either a request to the transactional data store or a request to the archive data store;
upon receiving the query for the requested data, comparing a current value of the reference high water mark and a data high water mark for the requested data in the transactional data store or the archive data store; and
determining whether to allow viewing of the requested data based at least in part on the comparison between the reference high water mark and the data high water mark for the requested data, including the following;
for a request to the transactional data store, excluding viewing of the requested data if the data high water mark for the requested data is less than or equal to the current value of the reference high water mark, andfor a request to the archive data store, excluding viewing of the requested data if the data high water mark for the requested data is greater than the current value of the reference high watermark.
1 Assignment
0 Petitions
Accused Products
Abstract
Embodiments regard maintaining data consistency between transactional and non-transactional data stores. Embodiments may include receiving a request to archive a set of data stored in a first data store, recording a high water mark in the first data store for the set of data, and archiving the set of data. Archiving the set of data may include copying the set of data into a second data store and inserting a high water mark for the set of data in the first data store and the second data store. Embodiments may further include updating a reference high water mark upon successful completion of operations for the archiving of the data, the reference high water mark representing completion of a last successful archive operation, and, upon receiving a query for requested data contained in the first or second data store, determining whether to allow viewing of the requested data based at least in part on a current value of the reference high water mark.
124 Citations
18 Claims
-
1. A method comprising:
-
receiving a request to archive a first set of data, the first set of data being stored in a transactional data store; upon receipt of the request, archiving the first set of data, including copying the first set of data into an archive data store and inserting a data high water mark for the first set of data in the transactional data store and the archive data store, the data high water mark representing a time or order for archiving of the first set of data; updating a reference high water mark for the transactional data store and the archive data store upon successful completion of operations for the archiving of the first set of data, the reference high water mark representing a time or order of completion of a last successful archive operation from the transactional data store to the archive data store; receiving a query from a user for requested data, the query being either a request to the transactional data store or a request to the archive data store; upon receiving the query for the requested data, comparing a current value of the reference high water mark and a data high water mark for the requested data in the transactional data store or the archive data store; and determining whether to allow viewing of the requested data based at least in part on the comparison between the reference high water mark and the data high water mark for the requested data, including the following; for a request to the transactional data store, excluding viewing of the requested data if the data high water mark for the requested data is less than or equal to the current value of the reference high water mark, and for a request to the archive data store, excluding viewing of the requested data if the data high water mark for the requested data is greater than the current value of the reference high watermark. - View Dependent Claims (2, 3, 4, 5)
-
-
6. A system comprising:
-
a transactional data store including a first set of storage elements to store data; an archive data store including a second set of storage elements to store data; an archive engine to archive a first set of data from the transactional data store to the archive data store in response to an archival request, the archive engine to; copy the first set of data into the archive data store and insert a data high water mark for the first set of data in the transactional data store and the archive data store, the data high water mark representing a time or order for archiving of the first set of data, and update a reference high water mark upon successful completion of the archiving of the first set of data, the reference high water mark representing a time or order of completion of a last successful archive operation from the transactional data store to the archive data store; and a transaction engine to implement data transactions in the transactional data store and an archive retrieval engine to retrieve data from the archive data store; wherein, upon receiving a query from a user for requested data, the query being either a request to the transactional data store or a request to the archive data store, the transaction engine or the archive retrieval engine is to; compare a current value of the reference high water mark and a data high water mark for the requested set of data in the transactional data store or the archive data store; determine whether to allow viewing of the requested data based at least in part on the comparison between the reference high water mark and the data high water mark for the requested set of data, including the following; for a request to the transactional data store, exclude viewing of the requested data if the data high water mark for the requested data is less than or equal to the current value of the reference high water mark, and for a request to the archive data store, exclude viewing of the requested data if the data high water mark for the requested data is greater than the current value of the reference high watermark. - View Dependent Claims (7, 8, 9, 10, 11, 12, 13)
-
-
14. A non-transitory computer-readable storage medium having stored thereon data representing sequences of instructions that, when executed by a processor, cause the processor to perform operations comprising:
-
receiving a request to archive a first set of data, the first set of data being stored in a first data store; upon receipt of the request, archiving the first set of data, including copying the first set of data into a second data store and inserting a data high water mark for the first set of data in the first data store and the second data store, the data high water mark representing a time or order for archiving of the first set of data; updating a reference high water mark for the first data store and the second data store upon successful completion of operations for the archiving of the first set of data, the reference high water mark representing a time or order of completion of a last successful archive operation from the first data store to the second data store; receiving a query from a user for requested data, the query being either a request to the first data store or a request to the second data store; upon receiving the query for the requested data, comparing a current value of the reference high water mark and a data high water mark for the requested data in the transactional data store or the archive data store; and determining whether to allow viewing of the requested data based at least in part on the comparison between the reference high water mark and the data high water mark for the requested data, including the following; for a request to the first data store, excluding viewing of the requested data if the data high water mark for the requested data is less than or equal to the current value of the reference high water mark, and for a request to the second data store, excluding viewing of the requested data if the data high water mark for the requested data is greater than the current value of the reference high watermark. - View Dependent Claims (15, 16, 17, 18)
-
Specification