Data synchronization between a source database system and target database system
AssigneeInternational Business Machines Corporation
InventorsKnut Stolze, Vassil Radkov Dimov, Christian Michel, Daniel Martin
Life of this patent
Estimating the term…
Abstract
The present disclosure relates to a method for data synchronization between a source database system and target database system, wherein execution of a database transaction of the source database system is complete if a processing step followed by an application step of the database transaction is performed. For each identified database transaction, a processing step and/or application step may be performed.
Claims15
A computer-implemented method for data synchronization between a source database system and a target database system, wherein execution of a database transaction of the source database system is considered to be complete if a processing step followed by an application step of the database transaction is performed, the method comprising:
- identifying in a time interval one or more database transactions of the source database system via a transaction log of the source database system which comprises log records resulting from the one or more database transactions;
- tagging each of the one or more database transactions of the transaction log as a committed or an uncommitted database transaction;
- sending the transaction log to the target database system for implementing changes of the one or more database transactions, wherein prior to the sending log records of the one or more database transactions are transformed according to a data record structure of the target database system, and wherein the transformations comprise changing a format of the log records;
- for each transaction of the identified database transactions, determining, in parallel, whether a transaction was completed based on a tag of the transaction, wherein determining whether the transaction was completed further comprises:
- in response to determining that the transaction is not completed, performing, by the target database system, the processing step of the transaction if a duration time of the transaction exceeds a duration threshold, wherein performing the processing step comprises invoking a respective additional thread of a transaction process of the target database system;
- in response to determining that the transaction is completed and the processing step of the transaction was not previously executed, performing, by the target database system, the processing step and the application step of the transaction, wherein performing the processing step and the application step comprises invoking a main thread of the transaction process;
- and
- in response to determining that the transaction is completed and the processing step of the transaction was previously executed, performing, by the target database, the application step of the transaction, wherein performing the application step comprises invoking another respective additional thread of the transaction process of the target database system;
- and
- iteratively performing the identifying, the tagging, and the determining, wherein in each iteration the time interval is a time interval subsequent to a time interval of a preceding iteration, and wherein a length of a subsequent time interval is different from a length of a preceding time interval.
A computer program product for data synchronization between a source database system and a target database system, wherein execution of a database transaction of the source database system is considered to be complete if a processing step followed by an application step of the database transaction is performed, the computer program product comprising:
- one or more computer-readable tangible storage devices and program instructions stored on at least one of the one or more computer-readable tangible storage devices, wherein the program instructions are executable by a computer, the program instructions comprising:
- program instructions to identify in a time interval one or more database transactions of the source database system via a transaction log of the source database system which comprises log records resulting from the one or more database transactions;
- program instructions to tag each of the one or more database transactions of the transaction log as a committed or an uncommitted database transaction;
- program instructions to send the transaction log to the target database system for implementing changes of the one or more database transactions, wherein prior to the sending log records of the one or more database transactions are transformed according to a data record structure of the target database system, and wherein the transformations comprise changing a format of the log records;
- for each transaction of the identified database transactions, program instructions to determine, in parallel, whether a transaction was completed based on a tag of the transaction, wherein determining whether the transaction was completed further comprises:
- in response to determining that the transaction is not completed, program instructions to perform, by the target database system, the processing step of the transaction if a duration time of the transaction exceeds a duration threshold, wherein performing the processing step comprises invoking a respective additional thread of a transaction process of the target database system;
- in response to determining that the transaction is completed and the processing step of the transaction was not previously executed, program instructions to perform, by the target database system, the processing step and the application step of the transaction, wherein performing the processing step and the application step comprises invoking a main thread of the transaction process;
- and
- in response to determining that the transaction is completed and the processing step of the transaction was previously executed, program instructions to perform, by the target database, the application step of the transaction, wherein performing the application step comprises invoking another respective additional thread of the transaction process of the target database system;
- and
- program instructions to iteratively perform the identifying, the tagging, and the determining, wherein in each iteration the time interval is a time interval subsequent to a time interval of a preceding iteration, and wherein a length of a subsequent time interval is different from a length of a preceding time interval.
A computer system for data synchronization between a source database system and a target database system, wherein execution of a database transaction of the source database system is considered to be complete if a processing step followed by an application step of the database transaction is performed, the computer system comprising:
- one or more processors, one or more computer-readable memories, one or more computer-readable tangible storage devices, and program instructions stored on at least one of the one or more computer-readable tangible storage devices for execution by at least one of the one or more processors via at least one of the one or more memories, the program instructions comprising:
- program instructions to identify in a time interval one or more database transactions of the source database system via a transaction log of the source database system which comprises log records resulting from the one or more database transactions;
- program instructions to each of the one or more database transactions of the transaction log as a committed or an uncommitted database transaction;
- program instructions to send the transaction log to the target database system for implementing changes of the one or more database transactions, wherein prior to the sending log records of the one or more database transactions are transformed according to a data record structure of the target database system, and wherein the transformations comprise changing a format of the log records;
- for each transaction of the identified database transactions, program instructions to determine whether the transaction was completed based on a tag of the transaction, wherein determining whether the transaction was completed further comprises:
- in response to determining that the transaction is not completed, program instructions to perform, by the target database system, the processing step of the transaction if a duration time of the transaction exceeds a duration threshold, wherein performing the processing step comprises invoking a respective additional thread of a transaction process of the target database system;
- in response to determining that the transaction is completed and the processing step of the transaction was not previously executed, program instructions to perform, by the target database system, the processing step and the application step of the transaction, wherein performing the processing step and the application step comprises invoking a main thread of the transaction process;
- and
- in response to determining that the transaction is completed and the processing step of the transaction was previously executed, program instructions to perform, by the target database, the application step of the transaction, wherein performing the application step comprises invoking another respective additional thread of the transaction process of the target database system;
- and
- program instructions to iteratively perform the identifying, the tagging, and the determining, wherein in each iteration the time interval is a time interval subsequent to a time interval of a preceding iteration, and wherein a length of a subsequent time interval is different from a length of a preceding time interval.
Dependencies are inferred from the claim text.