IP Library Granted Patent US 12,554,721
Granted Patent B2
US 12,554,721 · App. 18/323,790 · Granted Feb 17, 2026

Query execution in a data analysis system

Inventors: Felix Beier (Haigerloch, DE); Reinhold Geiselhart (Rottenburg-Ergenzingen, DE); Luis Eduardo Oliveira Lizardo (Böblingen, DE); Knut Stolze (Hummelshain, DE)
Assignee: International Business Machines Corporation
G06F16/24561G06F16/2379G06F16/24542G06F16/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,554,721
App. No.
18/323,790
Granted
Feb 17, 2026
Kind
B2
Abstract

The present disclosure relates to a method including repeatedly synchronizing a source table with a target table. The synchronizing includes receiving changes of the source table, the changes indicating delete records to be deleted and/or insert records to be inserted, replicating the changes to the target table, storing in a storage device the delete records and the insert records of the changes; and deleting from the storage device the records of the changes that are applied at the target table. A query referencing data of the source table may be received. A first query and a second query may be derived from the received query. The first query may be executed on the target table excluding the records in the storage device. The second query may be executed on the insert records of the storage device. The results of the executions may be provided to a sender of the query.

Claims (55)

1 . A method for executing a query in a data analysis system, the data analysis system comprising a source database system and a target database system, the target database system being synchronized with the source database system, the source database system comprising at least one source table, the target database system comprising a target table corresponding to the source table, the target table of the target database system an older version of the source table, the data analysis system comprising a replication system associated with a synchronization program configured for replicating changes associated with the source table to the target table, the method comprising:

repeatedly synchronizing the source table with the target table using a synchronization program, the synchronizing by the synchronization program including:

receiving by the synchronization program changes associated with the source table, the changes indicating records including delete records of the source table to be deleted and insert records to be inserted into the source table;

replicating by the synchronization program using the replication system the changes for a subsequent application of the changes to the target table;

storing by the synchronization program the delete records and the insert records of the changes; and

deleting by the synchronization program the records of the changes that are applied at the target table after a change replication system notifies a buffer of one or more committed transactions that have been successfully applied to the target database system in order to purge them from the buffer;

receiving a query referencing data of the source table, the delete records already removed from the source table but not yet removed from the target table and the insert records already inserted into the source table but not yet inserted into the target table;

transforming the received query into a target query and a delta query, the transformation performed such that the combination of the results of the target query and the delta query are results of the received query and the results of the received query referencing data of the source table are up-to-date;

causing execution of the target query derived from the received query on the target table excluding the delete records and insert records of the changes;

executing the delta query derived from the received query on the insert records of the source table; and

providing results of the executions of the target query and the delta query to a sender of the query, the results of execution of the target query and the delta query reflecting most recent data available responsive to the query in the source database and target database.

2 . The method of claim 1 , wherein the first target query is executed using a snapshot isolation at a starting time of execution of the first query to exclude insert and delete records.

3 . The method of claim 1 , wherein records indicated in the changes are assigned respective logical timestamps, the method further comprising:

before executing the first target query, injecting at the source database system in the first target query a first selection criterion excluding the delete records stored; and

injecting at the target database system in the target query, a second selection criterion on the logical timestamps and the starting time of execution of the target query to exclude records that will be stored in the target table while the first query is running.

4 . The method of claim 1 , further comprising:

before executing the target query, transmitting to the target database system the target query and information indicating the delete records stored;

injecting at the target database system in the target query a first selection criterion on the logical timestamps and the starting time of execution of the target query to exclude records that will be stored in the target table while the target query is running, and a second selection criterion to exclude the delete records indicated in the received information.

5 . The method of claim 1 , further comprising:

assigning to changes involving the delete records a first priority higher than a second priority assigned to a series of other changes, wherein the replicating is performed according to the assigned first and second priorities;

injecting at the target database system in the target query a selection criterion on logical timestamps of records and the starting time of the target query in order to exclude the records that will be stored in the target table while the target query is running; and

executing the target query after the delete records have been deleted from the target table.

6 . The method of claim 1 , the receiving of the query further comprising:

determining whether the target and second delta queries can be derived from the received query, wherein the target query is to be executed on the target database system and the delta query is to be executed on the source database system wherein results of the target query and the delta query are result of the received query;

wherein the deriving, the executing and the providing is performed in response to determining that the target and delta queries can be derived from the received query; and

wherein in response to determining that the target and delta queries cannot be derived from the received query executing the received query on the source database system or offloading the query to the target database system.

7 . The method of claim 1 , the deriving further comprising:

determining using the target and delta queries a combination query for performing a combination of the results; and

wherein providing the results further comprises executing the combination query at the source database system.

8 . The method of claim 1 , the replication system being configured to notify changes that have been successfully applied to the target database system, wherein the deletion of the stored records is performed in response to the notified changes.

9 . The method of claim 1 , wherein the replicating comprises removing at least part of replicated data from the source table.

10 . A computer program product, the computer program product comprising:

one or more computer-readable tangible storage medium and program instructions stored on at least one of the one or more computer-readable tangible storage medium, the program instructions executable by a processor capable of performing a method for executing a query in a data analysis system, the data analysis system comprising a source database system and a target database system being synchronized with the source database system, the source database system comprising at least one source table, the target database system comprising a target table corresponding to the source table, the target table an older version of the source table, the data analysis system comprising a replication system associated with a synchronization program configured for replicating changes of the source table to the target table, the method comprising:

repeatedly synchronizing the source table with the target table using a synchronization program, the synchronizing by the synchronization program including:

receiving by the synchronization program changes associated with the source table, the changes indicating records including delete records of the source table to be deleted and insert records to be inserted into the source table;

replicating by the synchronization program using the replication system the changes for a subsequent application of the changes to the target table;

storing by the synchronization program the delete records and the insert records of the changes; and

deleting by the synchronization program the records of the changes that are applied at the target table after a change replication system notifies a buffer of one or more committed transactions that have been successfully applied to the target database system in order to purge them from the buffer;

receiving a query referencing data of the source table, the delete records already removed from the source table but not yet removed from the target table and the insert records already inserted into the source table but not yet inserted into the target table;

deriving from the received query a target query and a delta query wherein results of the target and delta queries are results of the received query and the results of the received query referencing data of the source table are up-to-date;

causing execution of the delta query derived from the received query on the target table excluding the delete records and insert records of the changes;

executing the delta query derived from the received query on the insert records of the source table; and

providing results of the executions of the target query and the delta query to a sender of the query, the results of execution reflecting most recent data available in the source database and target database.

11 . A computer system for executing a query in a data analysis system, the data analysis system comprising a source database system and a target database system being synchronized with the source database system, the source database system comprising at least one source table, the target database system comprising a target table corresponding to the source table, the target table an older version of the source table, the data analysis system comprising a replication system associated with a synchronization program configured for replicating changes of the source table to the target table, the computer system being configured for performing a method, the method comprising:

repeatedly synchronizing the source table with the target table using a synchronization program, the synchronizing by the synchronization program including:

receiving by the synchronization program changes associated with the source table, the changes indicating records including delete records of the source table to be deleted and insert records to be inserted into the source table;

replicating by the synchronization program using the replication system the changes for a subsequent application of the changes to the target table;

storing by the synchronization program the delete records and the insert records of the changes; and

deleting by the synchronization program the records of the changes that are applied at the target table after a change replication system notifies a buffer of one or more committed transactions that have been successfully applied to the target database system in order to purge them from the buffer;

receiving a query referencing data of the source table, the delete records already removed from the source table but not yet removed from the target table and the insert records already inserted into the source table but not yet inserted into the target table;

deriving from the received query a target query and a delta query wherein results of the target and delta queries are results of the received query and the results of the received query referencing data of the source table are up-to-date;

causing execution of the target query derived from the received query on the target table excluding the delete records and insert records of the changes;

executing the delta query derived from the received query on the insert records of the source table; and

providing results of the executions of the target query and the delta query to a sender of the query, the results of execution reflecting most recent data available in the source database and target database.

12 . The computer system of claim 11 , being configured for executing the target query by using a snapshot isolation at the starting time of execution of the target query in order to exclude insert and delete records.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 25, 2023
From: BEIER, FELIX; GEISELHART, REINHOLD; OLIVEIRA LIZARDO, LUIS EDUARDO; STOLZE, KNUT
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 063764/0667 →
Priority Claims (1)
GB 2306490 · May 3, 2023 · national
Continuity (1)
Related Publication 20240370441A1 · Nov 7, 2024
References Cited (32)
US 6122640A · Pereira · 2000 [cited by examiner]
US 10262002B2 · Brodt · 2019 [cited by applicant]
US 11119678B2 · Barber · 2021 [cited by applicant]
US 11176171B2 · Brodt · 2021 [cited by applicant]
US 11360998B2 · Hrle · 2022 [cited by applicant]
US 20060161530A1 · Biswal · 2006 [cited by examiner]
US 20090083341A1 · Parees · 2009 [cited by examiner]
US 20120089566A1 · Effern · 2012 [cited by examiner]
US 20140304229A1 · Zhu · 2014 [cited by applicant]
US 20150081637A1 · Bourbonnais · 2015 [cited by examiner]
US 20150112923A1 · Driesen · 2015 [cited by examiner]
US 20150213071A1 · Alvey · 2015 [cited by applicant]
US 20160196163A1 · Van Gulik · 2016 [cited by applicant]
US 20180067962A1 · Brodt · 2018 [cited by examiner]
US 20190220468A1 · Hrle · 2019 [cited by examiner]
US 20190294602A1 · Li · 2019 [cited by examiner]
US 20200034365A1 · Martin · 2020 [cited by examiner]
US 20200151195A1 · Brodt · 2020 [cited by examiner]
US 20200301947A1 · Botev · 2020 [cited by applicant]
US 20200364185A1 · Beier · 2020 [cited by examiner]
US 20210303597A1 · Zhang · 2021 [cited by examiner]
US 20230034941A1 · Bos · 2023 [cited by examiner]
Butterstein et al., Article: “Replication at the speed of change: a fast, scalable replication solution for near real-time HTAP processing”; Authors: Dennis Butterstein, Daniel Martin, Knut Stolze, Felix Beier, Jia Zhon… [cited by examiner]
Butterstein et al., Article: “Replication at the speed of change: a fast, scalable replication solution for near real-time HTAP processing”; Authors: Dennis Butterstein; Info & Claims Proceedings of the VLDB Endowment, … [cited by examiner]
Intellectual Property Office, “Patents Act 1977: Report under Section 17(5)(b),” Oct. 10, 2023, 6 pages, GB Application No. 2306490.0. [cited by applicant]
Butterstein, et al., “Replication at the Speed of Change—a Fast, Scalable Replication Solution for Near Real-Time HTAP Processing”, Proceedings of the VLDB Endowment, vol. 13, No. 12, ACM, 17 Pages. https://dl.acm.org/d… [cited by applicant]
IBM Redbooks, “IBM Integrated Synchronization: Incremental Updates Unleashed”, http://www.redbooks.ibm.com/abstracts/redp5616.html?Open, Accessed on May 10, 2023, 11 Pages. [cited by applicant]
IBM, “IBM Integrated Synchronization”, https://www.ibm.com/docs/en/daafz/7.5?topic=updates-integrated-synchronization, Accessed on Sep. 2, 2023, 6 Pages. [cited by applicant]
IBM, “Including or excluding loaded tables from WAITFORDATA queries”, https://www.ibm.com/docs/en/daafz/7.5?topic=updates-including-excluding-loaded-tables-from-waitfordata-queries, Accessed on Sep. 2, 2023, 3 Pages. [cited by applicant]
Miosoft Corporation, “Using Databases for Both Transactions and Analysis”, https://patents.justia.com/patent/20160196163, Accessed on Sep. 2, 2023, pp. 1-44. [cited by applicant]
Sikka, et al., “Efficient transaction processing in SAP HANA database: the end of a column store myth”, Sigmod S12, May 20-24, 2012, ACM, 11 Pages. [cited by applicant]
Beier, et al., “Query Execution in A Data Analysis System”, Application No. 2306490.0, Filed Date May 3, 2023, 36 Pages. [cited by applicant]