IP Library › Granted Patent US 10,248,685
Granted Patent B2
US 10,248,685 · App. 15/253,626 · Granted Apr 2, 2019

Efficient determination of committed changes

Inventors: Kartik Kulkarni (Foster City, CA); Juan R. Loaiza (Woodside, CA); Vivekanandhan Raja (Foster City, CA); Kothanda Umamageswaran (Sunnyvale, CA); Sanket Hase (Mountain View, CA); Vasudha Krishnaswamy (Fremont, CA); Tirthankar Lahiri (Palo Alto, CA)
Assignee: Oracle International Corporation
G06F17/30371G06F17/3056G06F17/30368G06F17/30377
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 10,248,685
App. No.
15/253,626
Granted
Apr 2, 2019
Kind
B2
Abstract

A minimum value (MV) is computed for start timestamps that each correspond to an uncommitted transaction. In an embodiment, the MV is computed for a pluggable database that is open on at least first and second instances of a database. The MV is computed for the first instance as of a first current timestamp (CT). The MV and the first CT are communicated to a second instance that has a second CT. If the first and second CTs are equal, the second instance store the MV. If the first CT is bigger, the second CT also becomes equal to the first CT. If the first CT is smaller, the MV is discarded, and the first CT becomes equal to the second CT. In an embodiment, if the MV remains unchanged for a predetermined time period, a start timestamp corresponding to the MV is advanced to a current or future timestamp.

Claims (45)

1. A method comprising:

for a pluggable database that is open on a plurality of instances of a database, identifying a first current timestamp of said pluggable database for a first instance of said plurality of instances, wherein said pluggable database is open on said first instance;

as of said first current timestamp, computing a minimum value of one or more start timestamps that each correspond to an uncommitted transaction of said pluggable database on said first instance;

communicating, from said first instance to a second instance of said plurality of instances, said minimum value and said first current timestamp;

wherein said pluggable database is open on said second instance;

causing comparing said first current timestamp to a second current timestamp of said pluggable database that is open on said second instance:

when said first current timestamp is greater than said second current timestamp, causing said second current timestamp to become equal to said first current timestamp and causing said second instance to store said minimum value,

when said first current timestamp is equal to said second current timestamp, causing said second instance to store said minimum value, and

when said first current timestamp is less than said second current timestamp, causing said second instance to discard said minimum value and advancing said first current timestamp to said second current timestamp; and

wherein said method is performed by one or more computing devices.

2. Said method of claim 1 , further comprising periodically determining a master instance for said pluggable database.

3. Said method of claim 2 , further comprising, prior to identifying said first current timestamp of said pluggable database, designating said first instance as said master instance for said pluggable database.

4. Said method of claim 3 , further comprising, after communicating, from said first instance to said second instance of said plurality of instances, said minimum value and said first current timestamp, designating another instance as said master instance for said pluggable database.

5. Said method of claim 1 , wherein said minimum value guarantees that any transaction with a start timestamp less than said minimum value is committed.

6. Said method of claim 1 , wherein said minimum value guarantees that any transaction that modified a data block with a last-changed timestamp that is less than said minimum value is a committed transaction.

7. Said method of claim 1 , wherein said one or more start timestamps are stored in one or more transaction tables of said pluggable database.

8. Said method of claim 1 , wherein communicating, from said first instance to said second instance of said plurality of instances, said minimum value and said first current timestamp includes asynchronously communicating, from said first instance to said second instance, said minimum value and said first current timestamp.

9. Said method of claim 1 , wherein advancing said first current timestamp to said second current timestamp includes receiving, from said second instance, a message including said second current timestamp.

10. Said method of claim 1 , wherein prior to causing said second instance to store said minimum value, causing said second instance to compare said minimum value against a history of inter-instance communications related to minimum values.

11. Said method of claim 1 , the method further comprising:

advancing a particular start timestamp of said one or more start timestamps, said minimum value corresponding to said particular start timestamp;

advancing said minimum value; and

for each data block of one or more data blocks of said pluggable database, advancing a last-changed timestamp stored in said each data block.

12. One or more non-transitory storage media storing one or more sequences of instructions which, when executed by one or more computing devices, cause:

for a pluggable database that is open on a plurality of instances of a database, identifying a first current timestamp of said pluggable database for a first instance of said plurality of instances, wherein said pluggable database is open on said first instance;

as of said first current timestamp, computing a minimum value of one or more start timestamps that each correspond to an uncommitted transaction of said pluggable database on said first instance;

communicating, from said first instance to a second instance of said plurality of instances, said minimum value and said first current timestamp;

wherein said pluggable database is open on said second instance; and

causing comparing said first current timestamp to a second current timestamp of said pluggable database that is open on said second instance:

when said first current timestamp is greater than said second current timestamp, causing said second current timestamp to become equal to said first current timestamp and causing said second instance to store said minimum value,

when said first current timestamp is equal to said second current timestamp, causing said second instance to store said minimum value, and

when said first current timestamp is less than said second current timestamp, causing said second instance to discard said minimum value and advancing said first current timestamp to said second current timestamp.

13. Said one or more non-transitory storage media of claim 12 , wherein said one or more sequences of instructions include instructions, which when executed by said one or more computing devices, cause periodically determining a master instance for said pluggable database.

14. Said one or more non-transitory storage media of claim 13 , wherein said one or more sequences of instructions include instructions, which when executed by said one or more computing devices cause, prior to identifying said first current timestamp of said pluggable database, designating said first instance as said master instance for said pluggable database.

15. Said one or more non-transitory storage media of claim 14 , wherein said one or more sequences of instructions include instructions, which when executed by said one or more computing devices cause, after communicating, from said first instance to said second instance of said plurality of instances, said minimum value and said first current timestamp, designating another instance as said master instance for said pluggable database.

16. Said one or more non-transitory storage media of claim 12 , wherein said minimum value guarantees that any transaction with a start timestamp less than said minimum value is committed.

17. Said one or more non-transitory storage media of claim 12 , wherein said minimum value guarantees that any transaction that modified a data block with a last-changed timestamp that is less than said minimum value is a committed transaction.

18. Said one or more non-transitory storage media of claim 12 , wherein said one or more start timestamps are stored in one or more transaction tables of said pluggable database.

19. Said one or more non-transitory storage media of claim 12 , wherein communicating, from said first instance to said second instance of said plurality of instances, said minimum value and said first current timestamp includes asynchronously communicating, from said first instance to said second instance, said minimum value and said first current timestamp.

20. Said one or more non-transitory storage media of claim 12 , wherein advancing said first current timestamp to said second current timestamp includes receiving, from said second instance, a message including said second current timestamp.

21. Said one or more non-transitory storage media of claim 12 , wherein prior to causing said second instance to store said minimum value, causing said second instance to compare said minimum value against a history of inter-instance communications related to minimum values.

22. Said one or more non-transitory storage media of claim 12 , wherein said one or more sequences of instructions include instructions, which when executed by said one or more computing devices cause:

advancing a particular start timestamp of said one or more start timestamps, said minimum value corresponding to said particular start timestamp;

advancing said minimum value; and

for each data block of one or more data blocks of said pluggable database, advancing a last-changed timestamp stored in said each data block.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 6, 2019
From: KULKARNI, KARTIK; LOAIZA, JUAN R.; RAJA, VIVEKANANDHAN; UMAMAGESWARAN, KOTHANDA; KRISHNASWAMY, VASUDHA; LAHIRI, TIRTHANKAR
To: ORACLE INTERNATIONAL CORPORATION
Reel/Frame 048257/0276 →
Continuity (1)
Related Publication 20180060377A1 · Mar 1, 2018
Cited By (1)
US 12,248,476