IP Library Granted Patent US 8,620,862
Granted Patent B2
US 8,620,862 · App. 12/880,709 · Granted Dec 31, 2013

Method for ensuring referential integrity in replication engines by serializing base level change queue data

Inventors: Paul J. Holenstein (Downingtown, PA); Bruce D. Holenstein (Media, PA); Wilbur H. Highleyman (Blairstown, NJ)
Assignee: Gravic, Inc.
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 8,620,862
App. No.
12/880,709
Granted
Dec 31, 2013
Kind
B2
Abstract

A method is provided for processing base level data of a change queue that is not serialized at the logical level. The base level change queue data is transaction data previously posted to a source database. A logical replication engine is provided to replicate and post the change queue data to a target database in the order that the transaction data is stored in the change queue. Upon detection in the logical replication engine of change queue data that is not serialized at the logical level, the change queue data is reserialized at the logical level before the logical replication engine applies the change queue data to the target database. The change queue data that is not serialized at the logical level may be posted to the target database using asynchronous database access.

Claims (34)

1. A computer-implemented method of processing base level data of a change queue in which an order of the data is not serialized at a logical level due to multi-threading in one or more extractors, communication channels or appliers, the base level change queue data being transaction data previously posted to a source database, the method comprising:

(a) providing a logical replication engine which uses multi-threading in the one or more extractors, communication channels or appliers to replicate and post the base level change queue data to a target database in the order that the transaction data is stored in the change queue; and

(b) upon detection in the logical replication engine of base level change queue data in which the order of the base level change queue data is not serialized at the logical level due to the multi-threading in the one or more extractors, communication channels or appliers, serializing the order of the base level change queue data at the logical level before the logical replication engine applies the base level change queue data to the target database, which ensures referential integrity, including resolving required foreign keys, and preserving required intra- and inter-transaction dependencies, in the target database.

2. The method of claim 1 wherein the serializing in step (b) is performed by accumulating index inserts.

3. The method of claim 1 wherein the serializing in step (b) is performed with a set-aside queue.

4. The method of claim 1 wherein the serializing in step (b) is performed with a set-aside queue with transaction end-state processing.

5. The method of claim 1 wherein the change queue is a change log.

6. The method of claim 1 wherein the change queue is an audit trail.

7. The method of claim 1 wherein the change queue is a database of changes.

8. A computer-implemented method of processing base level data of a change queue in which an order of the data is not serialized at a logical level due to multi-threading in one or more extractors, communication channels or appliers, the base level change queue data being transaction data previously posted to a source database, the method comprising:

(a) providing a logical replication engine which uses multi-threading in the one or more extractors, communication channels or appliers to replicate the base level change queue data in which the order of the base level change queue data is not serialized at the logical level to a target database; and

(b) posting the base level change queue data that is not serialized at the logical level due to the multi-threading in the one or more extractors, communication channels or appliers to the target database by asynchronous database access operations, which ensures that subsequent database accesses on the target database are initiated in natural flow order by resolving required foreign keys, and preserving required intra- and inter-transaction dependencies, in the target database.

9. The method of claim 8 wherein step (a) replicates the base level change queue data to the target database in the order that the transaction data is stored in the change queue.

10. The method of claim 8 wherein the asynchronous database access operations use asynchronous calls to the target database.

11. The method of claim 8 wherein the change queue is a change log.

12. The method of claim 8 wherein the change queue is an audit trail.

13. The method of claim 8 wherein the change queue is a database of changes.

14. A computer program product for processing base level data of a change queue in which an order of the data is not serialized at a logical level due to multi-threading in one or more extractors, communication channels or appliers, the base level change queue data being transaction data previously posted to a source database, the computer program product comprising a non-transitory computer-readable storage medium encoded with computer-executable instructions for performing the steps of:

(a) providing a logical replication engine which uses multi-threading in the one or more extractors, communication channels or appliers to replicate and post the base level change queue data to a target database in the order that the transaction data is stored in the change queue; and

(b) upon detection in the logical replication engine of base level change queue data in which the order of the base level change queue data is not serialized at the logical level due to the multi-threading in the one or more extractors, communication channels or appliers, serializing the order of the base level change queue data at the logical level before the logical replication engine applies the base level change queue data to the target database, which ensures referential integrity, including resolving required foreign keys, and preserving required intra- and inter-transaction dependencies, in the target database.

15. The computer program product of claim 14 wherein the serializing in step (b) is performed by accumulating index inserts.

16. The computer program product of claim 14 wherein the serializing in step (b) is performed with a set-aside queue.

17. The computer program product of claim 14 wherein the serializing in step (b) is performed with a set-aside queue with transaction end-state processing.

18. The computer program product of claim 14 wherein the change queue is a change log.

19. The computer program product of claim 14 wherein the change queue is an audit trail.

20. The computer program product of claim 14 wherein the change queue is a database of changes.

21. A computer program product for processing base level data of a change queue in which an order of the data is not serialized at a logical level due to multi-threading in one or more extractors, communication channels or appliers, the base level change queue data being transaction data previously posted to a source database, the computer program product comprising a non-transitory computer-readable storage medium encoded with computer-executable instructions for performing the steps of:

(a) providing a logical replication engine which uses multi-threading in the one or more extractors, communication channels or appliers to replicate the base level change queue data in which the order of the base level change queue data is not serialized at the logical level to a target database; and

(b) posting the base level change queue data that is not serialized at the logical level due to the multi-threading in the one or more extractors, communication channels or appliers to the target database by asynchronous database access operations, which ensures that subsequent database accesses on the target database are initiated in natural flow order by resolving required foreign keys, and preserving required intra- and inter-transaction dependencies, in the target database.

22. The computer program product of claim 21 wherein step (a) replicates the base level change queue data to the target database in the order that the transaction data is stored in the change queue.

23. The computer program product of claim 21 wherein the asynchronous database access operations use asynchronous calls to the target database.

24. The computer program product of claim 21 wherein the change queue is a change log.

25. The computer program product of claim 21 wherein the change queue is an audit trail.

26. The computer program product of claim 21 wherein the change queue is a database of changes.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 3, 2015
From: GRAVIC, INC.
To: INTEL CORPORATION
Reel/Frame 036487/0205 →
Continuity (3)
Division 10881699 · Jun 30, 2004
Provisional Application 60484473 · Jun 30, 2003
Related Publication 20100332448A1 · Dec 30, 2010