IP Library › Granted Patent US 12,254,024
Granted Patent B2
US 12,254,024 · App. 17/806,963 · Granted Mar 18, 2025

Conditional replication of data

Inventors: Reinhold Geiselhart (Rottenburg-Ergenzingen, DE); Frank Küster (Großbottwar, DE); Juergen Schimpf (Schoenaich, DE); Rene Blath (Weil im Schoenbuch, DE)
Assignee: International Business Machines Corporation
G06F16/27
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,254,024
App. No.
17/806,963
Filed
Jun 15, 2022
Granted
Mar 18, 2025
Kind
B2
Art Unit
2166
USPC
707/624
Abstract

A computer implemented method for synchronizing a first database with a second database. The method comprises a replication method comprising determining that a first change in the first database fulfils a defined tolerance range in response to detecting that the first change indicates a value of at least one selected attribute of the set of attributes, and determining that a second change in the first database does not fulfil the defined tolerance range in response to detecting that the second change indicates a value of at least one selected attribute of the set of attributes. The replication method further comprises preventing replication of the first change to the second database in response to determining that the first change fulfils the tolerance range, and replicating the second change to the second database in response to determining that the second change does not fulfil the tolerance range.

Claims (50)

1. A computer implemented method for synchronizing a first database with a second database, the first database comprising a set of attributes stored in a table with corresponding attribute values, the computer implemented method comprising a replication method comprising:

reading a first log entry in a transaction log that indicates a first attribute value change within the table of the first database;

determining that the first attribute value change of a selected attribute of the set of attributes in the first database fulfils a defined tolerance range based on the first attribute value change within the table of the first database;

preventing replication of the first attribute value change to the second database in response to determining that the first attribute value change fulfils the tolerance range;

reading a second log entry in the transaction log that indicates a second attribute value change within the table of the first database;

determining that the second attribute value change of the selected attribute in the first database does not fulfil the defined tolerance range based on the second attribute value change within the table of the first database;

replicating the second attribute value change to the second database in response to determining that the second attribute value change does not fulfil the tolerance range; and

selecting a subset of the attributes of the set of attributes based on data sources of the attributes;

wherein the selected attribute is part of the subset of attributes, wherein the computer implemented method further comprises a logging method, wherein, for each received attribute value change, the logging method comprises:

determining that the first attribute value change involves one or more attributes of the subset of attributes;

adding the first log entry indicating the first attribute value change and log metadata of a first type to the transaction log in response to determining that the first attribute value change involves one or more attributes of the subset of attributes; and

adding the second log entry indicating the first attribute value change and log metadata of a second type to the transaction log in response to determining that the first attribute value change does not involve one or more attributes of the subset of attributes;

wherein the replication method further comprises:

sequentially reading each log entry of a current non-read set of log entries;

wherein detecting the first attribute value change of the selected attribute of the set of attributes comprises determining that the log metadata of the first or second log entry is of the first type.

2. The computer implemented method of claim 1 , wherein the first and second attribute value changes of the subset of attributes are streamed from a streaming source.

3. The computer implemented method of claim 1 , wherein determining whether the first attribute value change fulfils the defined tolerance range comprises:

determining whether a value of a user-defined function of the selected attribute is within the defined tolerance range.

4. The computer implemented method of claim 1 , the selected attribute comprising multiple attributes, the determining whether the first attribute value change fulfils the defined tolerance range comprising:

determining whether a value of a user-defined function of the selected multiple attributes is within the defined tolerance range.

5. The computer implemented method of claim 1 , wherein the tolerance range is a dynamically determined range.

6. The computer implemented method of claim 1 , wherein determining that the first attribute value change fulfils the defined tolerance range comprises determining that a difference between a received value and a last value of the selected attribute is within the defined tolerance range.

7. The computer implemented method of claim 1 , further comprising determining an upper limit and a lower limit of the tolerance range using a maximum value and minimum value of a last N values of the selected attribute, respectively, upon detecting the change, wherein N>1.

8. The computer implemented method of claim 1 , further comprising:

determining that a system latency of the first database exceeds a threshold; and

activating a conditional replication function which thereby performs the replication method in response to determining that the system latency exceeds the threshold.

9. The computer implemented method of claim 8 , further comprising deactivating the conditional replication function in response to determining that the system latency does not exceed the threshold and performing a default replication method comprising, in response to detecting a third attribute value change of an attribute of the set of attributes, replicating the third attribute value change to the second database.

10. The computer implemented method of claim 1 , wherein the logging method and the replication method are asynchronously executed.

11. The computer implemented method of claim 1 , further comprising determining a latency based on a current log entry and a last log entry, wherein the replication method is performed in response to determining that the latency does not exceed a threshold.

12. A computer program product comprising a computer-readable storage medium having computer-readable program code embodied therewith, the computer-readable program code configured to perform operations of the method of claim 1 .

13. A computer system for synchronizing a first database with a second database, the first database comprising a set of attributes stored in a table with corresponding attribute values, the computer system comprising:

a processor set;

a set of one or more computer-readable storage media; and

program instructions, collectively stored in the set of one or more storage media, for causing the processor set to perform a replication method comprising:

reading a first log entry in a transaction log that indicates a first attribute value change within the table of the first database;

determining that the first attribute value change of a selected attribute of the set of attributes in the first database fulfils a defined tolerance range based on the first attribute value change within the table of the first database;

preventing replication of the first attribute value change to the second database in response to determining that the first attribute value change fulfils the tolerance range;

reading a second log entry in the transaction log that indicates a second attribute value change within the table of the first database;

determining that the second attribute value change of the selected attribute in the first database does not fulfil the defined tolerance range based on the second attribute value change within the table of the first database;

replicating the second attribute value change to the second database in response to determining that the second attribute value change does not fulfil the tolerance range; and

selecting a subset of the attributes of the set of attributes based on data sources of the attributes;

wherein the selected attribute is part of the subset of attributes, wherein the program instructions further cause the processor set to perform a logging method, wherein, for each received attribute value change, the logging method comprises:

determining that the first attribute value change involves one or more attributes of the subset of attributes;

adding the first log entry indicating the first attribute value change and log metadata of a first type to the transaction log in response to determining that the first attribute value change involves one or more attributes of the subset of attributes; and

adding the second log entry indicating the first attribute value change and log metadata of a second type to the transaction log in response to determining that the first attribute value change does not involve one or more attributes of the subset of attributes;

wherein the replication method further comprises:

sequentially reading each log entry of a current non-read set of log entries;

wherein detecting the first attribute value change of the selected attribute of the set of attributes comprises determining that the log metadata of the first or second log entry is of the first type.

14. The computer system of claim 13 , wherein the logging method and the replication method are asynchronously executed.

15. The computer system of claim 13 , wherein the program instructions further cause the processor set to determine a latency based on a current log entry and a last log entry, wherein the replication method is performed in response to determining that the latency does not exceed a threshold.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 15, 2022
From: GEISELHART, REINHOLD; KÜSTER, FRANK; SCHIMPF, JUERGEN; BLATH, RENE
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 060207/0356 →
Continuity (1)
Related Publication 20230409594A1 · Dec 21, 2023
References Cited (31)
US 8429359B1 · Desai · 2013 [cited by examiner]
US 10387264B1 · Telichari · 2019 [cited by examiner]
US 10929428B1 · Brahmadesam · 2021 [cited by examiner]
US 20100070475A1 · Chen · 2010 [cited by examiner]
US 20160026650A1 · Winters · 2016 [cited by examiner]
US 20170116206A1 · Gumerato · 2017 [cited by applicant]
US 20200065003A1 · Chopra · 2020 [cited by examiner]
US 20200174989A1 · Koza · 2020 [cited by applicant]
US 20200274926A1 · Chakraborty · 2020 [cited by examiner]
US 20200285545A1 · Ashokkumar · 2020 [cited by examiner]
US 20210286775A1 · Beier · 2021 [cited by applicant]
CN 104516724A · 2015 [cited by applicant]
CN 105279210A · 2016 [cited by applicant]
CN 105447054A · 2016 [cited by applicant]
CN 105786955A · 2016 [cited by applicant]
CN 111046052A · 2020 [cited by applicant]
CN 111448560A · 2020 [cited by applicant]
CN 111930782A · 2020 [cited by applicant]
Anonymous. “Db2 Data Gate on Cloud Pak for Data.” Published Dec. 21, 2022. 3 pages. Published by IBM. https://www.ibm.com/docs/en/cloud-paks/cp-data/4.0?topic=services-db2-data-gate. [cited by applicant]
Anonymous. “IBM Db2 Analytics Accelerator for z/OS.” Printed Jun. 14, 2022. 11 pages. Machine Translated. Published by IBM. https://www.ibm.com/de-de/products/db2-analytics-accelerator?utm_content=SRCWW&p1=Search&p4-437… [cited by applicant]
Anonymous. “InfoSphere Data Replication 11.4.0.” Printed Dec. 21, 2022. 2 pages. Published by IBM. https://www.ibm.com/support/knowledgecenter/en/SSTRGZ_11.4.0/com.ibm.idr.frontend.doc/pv_welcome.html. [cited by applicant]
Anonymous. “Making queries wait for incremental updates.” Last updated May 11, 2021. 10 pages. Published by IBM. https://www.ibm.com/docs/en/daafz/5.1?topic=continually-making-queries-wait-incremental-updates. [cited by applicant]
Anonymous. “Mechanism for Automated Enablement of Replication from a Source Database System to a Target Database System.” Published Nov. 11, 21. 8 pages. Published by IP.com. https://priorart.ip.com/IPCOM/000267627. [cited by applicant]
Anonymous. “Method to Skip Large Transaction Log Ranges in Incremental Database Change Replication Systems.” Published Aug. 9, 2021. 5 pages. Published by IP.com. https://priorart.ip.com/IPCOM/000266669. [cited by applicant]
Anonymous. “Reservoir sampling.” Last updated Mar. 1, 2022. 8 pages. Published by Wikipedia. https://en.wikipedia.org/wiki/Reservoir_sampling. [cited by applicant]
Wen, et al., “Approximate Edge Analytics for the IoT Ecosystem.” Published May 15, 2018. 12 pages. Published by ARXIV. https://arxiv.org/pdf/1805.05674.pdf. [cited by applicant]
Wikipedia. “Sampling (signal processing).” Last updated Mar. 24, 2022. 10 pages. Published by Wikipedia. https://en.wikipedia.org/wiki/Sampling_(signal_processing). [cited by applicant]
Wikipedia. “Send-on-Delta-Abtastung.” Last updated Dec. 2021. 2 pages. Published by Wikipedia. https://de.wikipedia.org/wiki/Send-on-Delta-Abtastung. [cited by applicant]
Wikipedia. “Standard deviation4.” Printed Jun. 14, 2022. 1 page. Published by Wikipedia. https://en.wikipedia.org/wiki/Standard_deviation4. [cited by applicant]
Wikipedia. “Standard deviation.” Last edited Jun. 11, 2022. 21 pages. Published by Wikipedia. https://en.wikipedia.org/wiki/Standard_deviation. [cited by applicant]
International Search Report and Written Opinion dated Oct. 10, 2023, for International Application No. PCT/1B2023/056066, filed Jun. 13, 2023. [cited by applicant]