IP Library Granted Patent US 12,242,352
Granted Patent B2
US 12,242,352 · App. 17/508,041 · Granted Mar 4, 2025

Replication management system

Inventor: Xuemin Ding (Shanghai, CN)
Assignee: SAP SE
G06F11/1448
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,242,352
App. No.
17/508,041
Granted
Mar 4, 2025
Kind
B2
Abstract

Disclosed herein are various embodiments a replication management system. An embodiment operates by identifying that code of a replication program includes an update. A source table is selected and corresponding expected table is determined, the expected table including data from the source table as it would appear at the new location as a result of a successful replication process. The code of the replication program including the update is executed against the data of the source table to generate a runtime table. A hash of the expected table is compared to a hash of the runtime table to determine whether the replication process using the code of the replication program including the update was successful. A report including the determination is provided.

Claims (75)

1. A method comprising:

identifying that code of a replication program includes an update, wherein the replication program is configured to perform one or more data transformations or schema transformations in replicating data of a source database to a target database, wherein replicated data at the target database is different from the data of the source database;

performing an integration test on the code and the update of the replication program, before the replication program is used in an actual replication process, wherein the performing comprises:

selecting a source table from the source database, the source table including data to be copied to a new location;

determining an expected table corresponding to the source table for the integration test, the expected table including data from the source table as it would appear at the new location as a result of a successful replication process, including the one or more data transformations or schema transformations, in executing the replication program comprising the code and the update;

executing the code of the replication program including the update against the data of the source table;

generating a runtime table as a result of the executing, the runtime table including data of the source table as it would be replicated to the new location using the code of the replication program including the update, wherein the runtime table includes data from the source table including the one or more data transformations or schema transformations;

determining an expected hash of the expected table;

generating a runtime hash of the runtime table;

determining a result of the integration test and whether the replication process using the code of the replication program including the update was successful based on a comparison of the runtime hash to the expected hash; and

providing a report for display on a computing device including the determination as to successful, wherein upon determining a successful result of the integration test as indicated by the report, the replication program including the update is made available for the actual replication process.

2. The method of claim 1 , wherein the generating the runtime hash of the runtime table comprises:

generating a plurality of hash values for the runtime table, wherein each of the plurality of hash values for the runtime table corresponds to a different row of the runtime table.

3. The method of claim 2 , wherein the determining the expected hash of the expected table comprises:

determining that each of a plurality of hash values for the expected table corresponds to a different row of the expected table.

4. The method of claim 3 , wherein the comparison comprises:

comparing at least a subset of the plurality of hash values for the runtime table to corresponding hash values for corresponding rows of the expected table.

5. The method of claim 4 , wherein the comparing comprises:

determining that a first hash value for the runtime table does not match a corresponding second hash value for the expected table;

identifying a row corresponding to the first hash value; and

providing the identified row in the report for display on the computing device.

6. The method of claim 5 , further comprising:

identifying a first set of values corresponding to the identified row of the runtime table;

identifying a second set of values corresponding to the identified row of the expected table; and

providing the first set of values and the second set of values in the report for display on the computing device.

7. The method of claim 1 , wherein the source table is selected and the expected table is determined prior to the identifying that code of the replication program includes an update.

8. A system, comprising:

a memory; and

at least one processor coupled to the memory and configured to perform instructions that cause the at least one processor to perform operations comprising:

identifying that code of a replication program includes an update, wherein the replication program is configured to perform one or more data transformations or schema transformations in replicating data of a source database to a target database, wherein replicated data at the target database is different from the data of the source database;

performing an integration test on the code and the update of the replication program, before the replication program is used in an actual replication process, wherein the performing comprises:

selecting a source table from the source database, the source table including data to be copied to a new location;

determining an expected table corresponding to the source table for the integration test, the expected table including data from the source table as it would appear at the new location as a result of a successful replication process, including the one or more data transformations or schema transformations, in executing the replication program comprising the code and the update;

executing the code of the replication program including the update against the data of the source table;

generating a runtime table as a result of the executing, the runtime table including data of the source table as it would be replicated to the new location using the code of the replication program including the update, wherein the runtime table includes data from the source table including the one or more data transformations or schema transformations;

determining an expected hash of the expected table;

generating a runtime hash of the runtime table;

determining a result of the integration test and whether the replication process using the code of the replication program including the update was successful based on a comparison of the runtime hash to the expected hash; and

providing a report for display on a computing device including the determination as to whether the replication process using the code of the replication program including the update was successful, wherein upon determining a successful result of the integration test as indicated by the report, the replication program including the update is made available for the actual replication process.

9. The system of claim 8 , wherein the generating the runtime hash of the runtime table comprises:

generating a plurality of hash values for the runtime table, wherein each of the plurality of hash values for the runtime table corresponds to a different row of the runtime table.

10. The system of claim 9 , wherein the determining the expected hash of the expected table comprises:

determining that each of a plurality of hash values for the expected table corresponds to a different row of the expected table.

11. The system of claim 10 , wherein the comparison comprises:

comparing at least a subset of the plurality of hash values for the runtime table to corresponding hash values for corresponding rows of the expected table.

12. The system of claim 11 , wherein the comparing comprises:

determining that a first hash value for the runtime table does not match a corresponding second hash value for the expected table;

identifying a row corresponding to the first hash value; and

providing the identified row in the report for display on the computing device.

13. The system of claim 12 , the operations further comprising:

identifying a first set of values corresponding to the identified row of the runtime table;

identifying a second set of values corresponding to the identified row of the expected table; and

providing the first set of values and the second set of values in the report for display on the computing device.

14. The system of claim 8 , wherein the source table is selected and the expected table is determined prior to the identifying that code of the replication program includes an update.

15. A non-transitory computer-readable medium having instructions stored thereon that, when executed by at least one computing device, cause the at least one computing device to perform operations comprising:

identifying that code of a replication program includes an update, wherein the replication program is configured to perform one or more data transformations or schema transformations in replicating data of a source database to a target database, wherein replicated data at the target database is different from the data of the source database;

performing an integration test on the code and the update of the replication program, before the replication program is used in an actual replication process, wherein the performing comprises:

selecting a source table from the source database, the source table including data to be copied to a new location;

determining an expected table corresponding to the source table for the integration test, the expected table including data from the source table as it would appear at the new location as a result of a successful replication process, including the one or more data transformations or schema transformations, in executing the replication program comprising the code and the update;

executing the code of the replication program including the update against the data of the source table;

generating a runtime table as a result of the executing, the runtime table including data of the source table as it would be replicated to the new location using the code of the replication program including the update, wherein the runtime table includes data from the source table including the one or more data transformations or schema transformations;

determining an expected hash of the expected table;

generating a runtime hash of the runtime table;

determining a result of the integration test and whether the replication process using the code of the replication program including the update was successful based on a comparison of the runtime hash to the expected hash; and

providing a report for display, the report including the determination as to whether the replication process using the code of the replication program including the update was successful, wherein upon determining a successful result of the integration test as indicated by the report, the replication program including the update is made available for the actual replication process.

16. The non-transitory computer-readable medium of claim 15 , wherein the generating the runtime hash of the runtime table comprises:

generating a plurality of hash values for the runtime table, wherein each of the plurality of hash values for the runtime table corresponds to a different row of the runtime table.

17. The non-transitory computer-readable medium of claim 16 , wherein the determining the expected hash of the expected table comprises:

determining that each of a plurality of hash values for the expected table corresponds to a different row of the expected table.

18. The non-transitory computer-readable medium of claim 17 , wherein the comparison comprises:

comparing at least a subset of the plurality of hash values for the runtime table to corresponding hash values for corresponding rows of the expected table.

19. The method of claim 1 , wherein the providing the report comprises:

providing, for display, a user option to making the update live and available for testing, wherein upon receiving a selection of the user option, the replication program including the update is made available for the actual replication process.

20. The method of claim 1 , wherein the generating comprises:

replacing one or more NULL values in the source table with a known value.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 26, 2021
From: DING, XUEMIN
To: SAP SE
Reel/Frame 057911/0435 →
Continuity (1)
Related Publication 20230129469A1 · Apr 27, 2023
References Cited (15)
US 5819268A · Hackett · 1998 [cited by applicant]
US 6834279B1 · Chiang · 2004 [cited by applicant]
US 7080072B1 · Sinclair · 2006 [cited by applicant]
US 10437853B2 · Bantupalli et al. · 2019 [cited by applicant]
US 10698892B2 · Sung et al. · 2020 [cited by applicant]
US 11341234B1 · Voss · 2022 [cited by examiner]
US 11343142B1 · Wang · 2022 [cited by examiner]
US 20190286841A1 · Staub et al. · 2019 [cited by applicant]
US 20200311254A1 · Mondello · 2020 [cited by examiner]
US 20200403797A1 · Certain et al. · 2020 [cited by applicant]
US 20210255931A1 · Badola · 2021 [cited by examiner]
US 20210382795A1 · Singhal · 2021 [cited by examiner]
US 20230066989A1 · Iskender · 2023 [cited by examiner]
Verbeeck, K., “Using hash values in SSIS to determine when to insert or update rows,” printed from https://www.mssqltips.com/sqlservertip/3170/using-hash-values-in-ssis-to-determine-when-to-insert-or-update-rows/, 12 pa… [cited by applicant]
Xiong, J., “T-SQL—Compare Records Using Hash Values,” printed from https://www.johnxiong.com/2018/01/04/t-sql-compare-records-using-hash-values/, 7 pages (Mar. 10, 2018). [cited by applicant]