IP Library Granted Patent US 6,877,014
Granted Patent B1
US 6,877,014 · App. 10/060,476 · Granted Apr 5, 2005

Method and apparatus to facilitate transactional consistency for references in object-relational databases

Assignee: Oracle International Corporation
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 6,877,014
App. No.
10/060,476
Granted
Apr 5, 2005
Kind
B1
Abstract

One embodiment of the present invention provides a system that facilitates transactional consistency for references in an object-relational database. The system operates by first receiving a reference to an object located in the object-relational database. Next, the system creates a reference object within local storage that includes an object descriptor to indicate whether the object has been loaded into local storage. The reference is stored in this reference object. A pointer within an application program can then point to the reference object, so that the application program can use the pointer to access the object.

Claims (47)

1. A method to facilitate transactional consistency for references in an object-relational database, comprising:

receiving a reference to an object located in the object-relational database;

creating a reference object within local storage, wherein the reference object includes an object descriptor that indicates whether the object has been loaded into local storage;

storing the reference in the reference object;

during execution of an application program, assigning a pointer to point to the reference object, whereby the application program can use the pointer to access the object; and

when the application program dereferences the pointer to access the object, the method further comprises:

loading the object into local storage from the object-relational database, and

setting the object descriptor within the reference object to indicate that the object is in local storage;

wherein the object descriptor allows references to the reference object to remain active when the object is not in local storage.

2. The method of claim 1 , further comprising assigning an additional pointer within the application program to point to the reference object, wherein the additional pointer can be used to access the object in local storage when the object descriptor is set.

3. The method of claim 2 , further comprising clearing the object descriptor when a transaction involving the object is committed to indicate that the object is not in local storage, whereby the application program does not need to invalidate pointers to the reference object.

4. The method of claim 3 , wherein when the application program accesses the reference object when the object descriptor is cleared, the method further comprises:

loading the object into local storage; and

setting the object descriptor to indicate that the object is located in local storage, whereby pointers within the application program currently pointing to the reference object are valid.

5. The method of claim 4 , wherein transaction semantics for the application program are not changed to use the reference object.

6. The method of claim 4 , wherein a dereferencing operator is overloaded to include operations involving the reference object.

7. A computer-readable storage medium storing instructions that when executed by a computer cause the computer to perform a method to facilitate transactional consistency for references in an object-relational database, the method comprising:

receiving a reference to an object located in the object-relational database;

creating a reference object within local storage, wherein the reference object includes an object descriptor that indicates whether the object has been loaded into local storage;

storing the reference in the reference object;

during execution of an application program, assigning a pointer to point to the reference object, whereby the application program can use the pointer to access the object; and

when the application program dereferences the pointer to access the object, the method further comprises:

loading the object into local storage from the object-relational database, and

setting the object descriptor within the reference object to indicate that the object is in local storage;

wherein the object descriptor allows references to the reference object to remain active when the object is not in local storage.

8. The computer-readable storage medium of claim 7 , the method further comprising assigning an additional pointer within the application program to point to the reference object, wherein the additional pointer can be used to access the object in local storage when the object descriptor is set.

9. The computer-readable storage medium of claim 8 , the method further comprising clearing the object descriptor when a transaction involving the object is committed to indicate that the object is not in local storage, whereby the application program does not need to invalidate pointers to the reference object.

10. The computer-readable storage medium of claim 9 , wherein when the application program accesses the reference object when the object descriptor is cleared, the method further comprises:

loading the object into local storage; and

setting the object descriptor to indicate that the object is located in local storage, whereby pointers within the application program currently pointing to the reference object are valid.

11. The computer-readable storage medium of claim 10 , wherein transaction semantics for the application program are not changed to use the reference object.

12. The computer-readable storage medium of claim 10 , wherein a dereferencing operator is overloaded to include operations involving the reference object.

13. An apparatus to facilitate transactional consistency for references in an object-relational database, comprising:

a receiving mechanism that is configured to receive a reference to an object located in the object-relational database;

a creating mechanism that is configured to create a reference object within local storage, wherein the reference object includes an object descriptor that indicates whether the object has been loaded into local storage;

a storing mechanism that is configured to store the reference in the reference object;

an assigning mechanism that is configured to assign a pointer within an application program to point to the reference object, whereby the application program can use the pointer to access the object; and

a loading mechanism that is configured to load the object into local storage from the object-relational database; and

a setting mechanism that is configured to set the object descriptor within the reference object to indicate that the object is in local storage;

wherein the object descriptor allows references to the reference object to remain active when the object is not in local storage.

14. The apparatus of claim 13 , wherein the assigning mechanism is further configured to assign an additional pointer within the application program to point to the reference object, wherein the additional pointer can be used to access the object in local storage when the object descriptor is set.

15. The apparatus of claim 14 , further comprising a clearing mechanism that is configured to clear the object descriptor when a transaction involving the object is committed to indicate that the object is not in local storage, whereby the application program does not need to invalidate pointers to the reference object.

16. The apparatus of claim 15 ,

wherein the loading mechanism is further configured to load the object into local storage; and

wherein the setting mechanism is further configured to set the object descriptor to indicate that the object is located in local storage, whereby pointers within the application program currently pointing to the reference object are valid.

17. The apparatus of claim 16 , wherein transaction semantics for the application program are not changed to use the reference object.

18. The apparatus of claim 16 , wherein a dereferencing operator is overloaded to include operations involving the reference object.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 19, 2003
From: ORACLE CORPORATION
To: ORACLE INTERNATIONAL CORPORATION
Reel/Frame 013737/0276 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 30, 2002
From: KASAMSETTY, RAVIKANTH; KRISHNASWAMY, SRINATH
To: ORACLE CORPORATION
Reel/Frame 012552/0315 →