IP Library Granted Patent US 7,111,023
Granted Patent B2
US 7,111,023 · App. 09/863,422 · Granted Sep 19, 2006

Synchronous change data capture in a relational database

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 7,111,023
App. No.
09/863,422
Granted
Sep 19, 2006
Kind
B2
Abstract

A synchronous change data capture system and methodology are described in which, for each statement of a transaction, a transaction identifier that uniquely identifies each transaction is recorded along with the change data. When the transaction is committed, the transaction identifier and a system change number for the commit is recorded in a transaction table. To identify the commit system change number for each statement in the change data, the transaction identifier in the change data is used to fetch the commit system change number from the transaction table.

Claims (31)

1. A method for synchronous change data capture, comprising the steps of:

generating a transaction identifier for each transaction in a plurality of transactions that uniquely identifies each transaction;

for each operation in a transaction, recording change data for the operation, transaction identifier for the transaction, and an identifier to identify a relative ordering of each operation in the transaction in a first database object wherein at least one of the transactions include a plurality of operations;

during a commit of the transaction, recording the transaction identifier and a system change number in a second database object, wherein the system change number indicates a timing of the commit that is later than a previously committed transaction; and

associating the change data in the first database object with the system change number in the second database object based on the transaction identifier by performing a join operation on the first database object and the second database object, and wherein the join operation puts the change data in the first database into an order based on when the operation for each change data in the first database occurred.

2. A method according to claim 1 , further comprising, during the commit of the transaction, the steps of:

obtaining a concurrency lock;

after obtaining the concurrency lock, generating the system change number and performing said recording the transaction identifier and the system change number in the second database object, and concluding the commit; and

after said recording the transaction identifier and the system change number in the second database object, releasing the concurrency lock.

3. A method according to claim 1 , wherein the first database object comprises a change table and the second database object comprises a transaction table.

4. A computer program product having a computer readable storage medium storing instructions for synchronous change data capture executable by a process for performing the steps of method according to claim 1 .

5. A method for processing synchronously captured change data, comprising:

accessing a first database object comprising change data for each operation in a plurality of operations performed within each transaction in a plurality of transactions, a transaction identifier that uniquely identifies each transaction in the plurality of transactions and the plurality of operations performed within each transaction, and an identifier to identify a relative ordering of each operation in the transaction;

accessing a second database object comprising a first transaction identifier and a first system change number; and

associating the change data in the first database object with the first system change number in the second database object based on the first transaction identifier by performing a join operation on the first database object and the second database object, wherein the first system change number is recorded during a commit of the transaction corresponding to the fist transaction identifier and indicates a timing of the commit of the transaction corresponding to the fist transaction identifier that is later than a previously committed transaction, and wherein the join operation puts the change data in the first database into an order based on when the operation for each change data in the first database occurred.

6. A computer program product having a computer readable storage medium storing instructions for synchronous change data capture executable by a process for performing the steps of method according to claim 5 .

7. A method for synchronous change data capture, comprising the steps of:

generating a transaction identifier that uniquely identifies a transaction;

for each operation in a transaction, recording change data for the operations, the transaction identifier for the transaction, and an identifier to identify a relative ordering of each operation in the transaction in a change table wherein at least one of the transactions include a plurality of operations; and

during a commit of the transaction, performing the steps of:

obtaining a concurrency lock;

after obtaining the concurrency lock, generating a system change number indicating a timing of the commit of the transaction that is later than a previously committed transaction and recording the transaction identifier and the system change number in a database table;

after said recording the transaction identifier and the system change number in the second database table, releasing the concurrency lock; and

associating the change data in the first database object with the system change number in the second database object based on the transaction identifier by performing a join operation on the first database object and the second database object, and wherein the join operation puts the change data in the first database in an order based on when the operation for each change data in the first database occurred.

8. A computer program product having a computer readable storage medium storing instructions for synchronous change data capture executable by a process for performing the steps of method according to claim 7 .

9. A method according to claim 7 , wherein the system change number indicates an event occurring between said obtaining the concurrency lock and said releasing the concurrency lock.

10. A method according to claim 9 , wherein the system change number indicates an event occurring before the commit of the transaction.

11. A method according to claim 7 , further comprising generating a commit system change number for the transaction that is later then the system change number.

12. A method according to claim 2 , wherein the system change number indicates an event occurring between said obtaining the concurrency lock and said releasing the concurrency lock.

13. A method according to claim 1 , wherein the system change number indicates an event occurring before the commit of the transaction.

14. A method according to claim 1 , further comprising generating a commit system change number for the transaction that is later then the system change number.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 4, 2003
From: ORACLE CORPORATION
To: ORACLE INTERNATIONAL CORPORATION (OIC)
Reel/Frame 014725/0372 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 24, 2001
From: NORCOTT, WILLIAM D.
To: ORACLE CORPORATION
Reel/Frame 011842/0363 →