IP Library › Granted Patent US 11,775,560
Granted Patent B1
US 11,775,560 · App. 17/466,212 · Granted Oct 3, 2023

Method and system for using before images of changes for continuously comparing two databases which are actively being kept synchronized

Inventors: John R. Hoffmann (Kennett Square, PA); Paul J. Holenstein (Downingtown, PA); Bruce D. Holenstein (Media, PA); Dylan R. Holenstein (Media, PA)
Assignee: GRAVIC, INC.
G06F16/273G06F16/2358G06F16/2379
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 11,775,560
App. No.
17/466,212
Granted
Oct 3, 2023
Kind
B1
Abstract

An automated method and system are provided for comparing a source database and a target database that are intended to be kept in synchronization with each other. An application processes transactions that are posted to the source database and replicated to the target database. Before images of changes made to the source database resulting from transactions posted to the source database are collected into a first change log and then replicated to the target database. Before images of changes made to the target database resulting from replication are collected into a second change log. Representations of the before images of changes in the first change log are compared with representations of the before images of changes in the second change log that correspond to the same respective changes that were made to the source database and replicated to the target database. Corrective action is performed when the comparison indicates that the representations of the before images of changes in the first change log do not match the representations of the before images of changes in the second change log.

Claims (58)

1. An automated method for comparing a source database and a target database that are intended to be kept in synchronization with each other, wherein an application processes transactions that are posted to the source database and replicated to the target database, the method comprising:

(a) collecting before images of changes made to the source database resulting from transactions posted to the source database into a first change log;

(b) replicating the before images of changes made to the source database to the target database;

(c) collecting before images of changes made to the target database resulting from step (b) into a second change log;

(d) comparing in a comparison engine representations of the before images of changes in the first change log with representations of the before images of changes in the second change log that correspond to the same respective changes that were made to the source database and replicated to the target database,

wherein the source database and the target database are presumed to be in synchronization with each other when the comparison indicates that the representations of the before images of changes in the first change log are identical to the representations of the before images of changes in the second change log, and wherein the source database and the target database are presumed not to be in synchronization with each other when the comparison indicates that the representations of the before images of changes in the first change log are not identical to the representations of the before images of changes in the second change log; and

(e) performing a corrective action when the comparison indicates that the representations of the before images of changes in the first change log are not identical to the representations of the before images of changes in the second change log.

2. The method of claim 1 , wherein the corrective action is resynchronizing the target database with the source database.

3. The method of claim 1 , wherein the corrective action is suspending or stopping the application from processing transactions.

4. The method of claim 1 , wherein the representations of the before images of changes in the first and second change logs are hash values of their respective changes.

5. The method of claim 1 , wherein the representations of the before images of changes in the first and second change logs are hash values of batches of their respective changes.

6. The method of claim 1 , wherein the representations of the before images of changes in the first and second change logs represent completed steps or operations of the transactions.

7. The method of claim 1 , wherein the before images of changes made to the source database are replicated to the target database from the first change log.

8. The method of claim 1 , wherein the before images of changes made to the source database are replicated to the target database using dual writes.

9. An automated method for comparing a first database and a second database that are intended to be kept in synchronization with each other, wherein applications process transactions that are posted to the first and second databases, and replicated to each other, the method comprising:

(a) replicating before images of changes made to the first database to the second database, and replicating before images of changes made to the second database to the first database;

(b) collecting before images of changes made to the first database resulting from transactions posted to the first database or replicated from the second database into a first change log;

(c) collecting before images of changes made to the second database resulting from transactions posted to the second database or replicated from the first database into a second change log;

(d) comparing in a comparison engine representations of the before images of changes in the first change log with representations of the before images of changes in the second change log that correspond to the same respective changes,

wherein the first database and the second database are presumed to be in synchronization with each other when the comparison indicates that the representations of the before images of changes in the first change log are identical to the representations of the before images of changes in the second change log, and wherein the first database and the second database are presumed not to be in synchronization with each other when the comparison indicates that the representations of the before images of changes in the first change log are not identical to the representations of the before images of changes in the second change log; and

(e) performing a corrective action when the comparison indicates that the representations of the before images of changes in the first change log are not identical to the representations of the before images of changes in the second change log.

10. The method of claim 9 , wherein the corrective action is resynchronizing the second database with the first database.

11. The method of claim 9 , wherein the corrective action is suspending or stopping the application from processing transactions.

12. The method of claim 9 , wherein the before images of representations of the changes in the first and second change logs are hash values of their respective changes.

13. The method of claim 9 , wherein the before images of representations of the changes in the first and second change logs are hash values of batches of their respective changes.

14. The method of claim 9 , wherein the before images of representations of the changes in the first and second change logs represent completed steps or operations of the transactions.

15. The method of claim 9 , wherein the before images of changes made to the first database are replicated to the second database from the first change log, and wherein the before images of changes made to the second database are replicated to the first database from the second change log.

16. The method of claim 9 , wherein the before images of changes made to the first database are replicated to the second database using dual writes, and the before images of changes made to the second database are replicated to the first database using dual writes.

17. An apparatus for comparing a source database and a target database that are intended to be kept in synchronization with each other, wherein an application processes transactions that are posted to the source database and replicated to the target database, the apparatus comprising:

(a) a replication engine configured to:

(i) collect before images of changes made to the source database resulting from transactions posted to the source database into a first change log,

(ii) replicate the before images of changes made to the source database to the target database, and

(iii) collect before images of changes made to the target database resulting from the replication into a second change log;

(b) a compare configured to compare representations of the before images of changes in the first change log with representations of the before images of changes in the second change log that correspond to the same respective changes that were made to the source database and replicated to the target database,

wherein the source database and the target database are presumed to be in synchronization with each other when the comparison indicates that the representations of the before images of changes in the first change log are identical to the representations of the before images of changes in the second change log, and wherein the source database and the target database are presumed not to be in synchronization with each other when the comparison indicates that the representations of the before images of changes in the first change log are not identical to the representations of the before images of changes in the second change log; and

(c) a processor configured to perform a corrective action when the comparison indicates that the representations of the before images of changes in the first change log are not identical to the representations of the before images of changes in the second change log.

18. The apparatus of claim 17 , wherein the corrective action performed by the processor is a resynchronization of the target database with the source database.

19. The apparatus of claim 17 , wherein the corrective action performed by the processor is a suspension or stopping of the application from processing transactions.

20. The apparatus of claim 17 , wherein the representations of the before images of changes in the first and second change logs are hash values of their respective changes.

21. The apparatus of claim 17 , wherein the representations of the before images of changes in the first and second change logs are hash values of batches of their respective changes.

22. The apparatus of claim 17 , wherein the representations of the before images of changes in the first and second change logs represent completed steps or operations of the transactions.

23. The apparatus of claim 17 , wherein the before images of changes made to the source database are replicated to the target database from the first change log.

24. The apparatus of claim 17 , wherein the before images of changes made to the source database are replicated to the target database using dual writes.

25. An apparatus for comparing a first database and a second database that are intended to be kept in synchronization with each other, wherein applications process transactions that are posted to the first and second databases, and replicated to each other, the apparatus comprising:

(a) a replication engine configured to:

(i) replicate before images of changes made to the first database to the second database, and replicate before images of changes made to the second database to the first database,

(ii) collect before images of changes made to the first database resulting from transactions posted to the first database or replicated from the second database into a first change log, and

(iii) collect before images of changes made to the second database resulting from transactions posted to the second database or replicated from the first database into a second change log; and

(b) a compare configured to compare representations of the before images of changes in the first change log with representations of the before images of changes in the second change log that correspond to the same respective changes,

wherein the first database and the second database are presumed to be in synchronization with each other when the comparison indicates that the representations of the before images of changes in the first change log are identical to the representations of the before images of changes in the second change log, and wherein the first database and the second database are presumed not to be in synchronization with each other when the comparison indicates that the representations of the before images of changes in the first change log are not identical to the representations of the before images of changes in the second change log; and

(c) a processor configured to perform a corrective action when the comparison indicates that the representations of the before images of changes in the first change log are not identical to the representations of the before images of changes in the second change log.

26. The apparatus of claim 25 , wherein the corrective action performed by the processor is a resynchronization of the target database with the source database.

27. The apparatus of claim 25 , wherein the corrective action performed by the processor is a suspension or stopping of the application from processing transactions.

28. The apparatus of claim 25 , wherein the representations of the before images of changes in the first and second change logs are hash values of their respective changes.

29. The apparatus of claim 25 , wherein the representations of the before images of changes in the first and second change logs are hash values of batches of their respective changes.

30. The apparatus of claim 25 , wherein the representations of the before images of changes in the first and second change logs represent completed steps or operations of the transactions.

31. The apparatus of claim 25 , wherein the before images of changes made to the first database are replicated to the second database from the first change log, and wherein the before images of changes made to the second database are replicated to the first database from the second change log.

32. The apparatus of claim 25 , wherein the before images of changes made to the first database are replicated to the second database using dual writes, and the before images of changes made to the second database are replicated to the first database using dual writes.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 3, 2021
From: HOFFMANN, JOHN R.; HOLENSTEIN, PAUL J.; HOLENSTEIN, BRUCE D.; HOLENSTEIN, DYLAN R.
To: GRAVIC, INC.
Reel/Frame 057382/0146 →
Continuity (2)
Continuation 16548012 · Aug 22, 2019
Provisional Application 62721215 · Aug 22, 2018
Cited By (1)
US 12,694,001