IP Library Granted Patent US 7,945,551
Granted Patent B1
US 7,945,551 · App. 09/881,501 · Granted May 17, 2011

Redirection of misses in queryable caches

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,945,551
App. No.
09/881,501
Granted
May 17, 2011
Kind
B1
Abstract

A cache with a database system that contains a subset of the objects stored in another database system. The cache database system responds to a request that contains a reference to an object that is not in the cache by redirecting the request to the other database system when the request is executed in the cache's database system. Redirection is done by rewriting requests that refer to objects that are not in the cache. In one kind of rewriting, a cursor is marked to indicate redirection, and when the cursor is executed in the cache database system, it is redirected to the other database system for execution. In the other kind, calls to stored procedures that are not present in the cache database system are rewritten as remote procedure calls to the stored procedures in the other database system.

Claims (47)

1. A method employed in a distributed database system that includes a plurality of database systems for responding to a request received in a particular database system of the plurality of the database systems, the particular database system of the plurality of the database systems including a query engine and a database and the method performed in the particular database system's query engine comprising:

placing the request in a form required for execution in the particular database system, wherein the request includes a SQL statement;

determining when the request is parsed whether an execution of the request is preferably done at least in part in another database system of the plurality of the database systems;

modifying the form when it has been determined that the request is preferably executed at least in part in the other database system, the form required for execution is a cursor and the cursor is marked for redirection; and

redirecting that part of the execution to the other database system, wherein the modified form is redirected.

2. The method set forth in claim 1 wherein:

the request includes a specifier referring to an object that is not present in the particular database system; and

the step of determining whether the execution of the request is preferably done in the other database system determines that the object required for execution of the request is not present in the particular database system.

3. The method set forth in claim 1 ,

wherein the act of redirecting can be turned on or off by a user.

4. The method set forth in claim 1 , wherein:

the cursor is redirected whenever an entire object that the cursor refers to is not present in the particular database system.

5. The method set forth in claim 1 wherein:

the request includes a call to a procedure object; and in the step of modifying the form, the call is rewritten in the form required for execution as a remote procedure call directed to the other database system.

6. A data storage device, characterized in that:

the data storage device contains code which when executed by a processor performs the method set forth in claim 1 .

7. A data storage device, characterized in that:

the data storage device contains code which when executed by a processor performs the method set forth in claim 2 .

8. A data storage device, characterized in that:

the data storage device contains code which when executed by a processor performs the method set forth in claim 3 .

9. A data storage device, characterized in that:

the data storage device contains code which when executed by a processor performs the method set forth in claim 4 .

10. A data storage device, characterized in that:

the data storage device contains code which when executed by a processor performs the method set forth in claim 5 .

11. Apparatus that redirects at least a part of a request received in a particular database system belonging to a distributed database system to another database system in the distributed database system, the particular database system belonging to the distributed database system including a query engine and a database and the apparatus comprising:

a request analyzer in the particular database system's query engine that determines that the request, comprising a SQL statement, is preferably executed at least in part in the other database system, wherein the request analyzer places the request in a form required for execution in the particular database system, causes the form to be modified when the request is preferably executed at least in part in the other database system, and includes the SQL statement in a cursor that the request analyzer causes to be marked for redirection; and

a redirector in the particular database system's query engine that redirects execution of at least the part of the request to the other database system, wherein the redirector redirects the modified form and the marked cursor.

12. The apparatus set forth in claim 11 , wherein a user can turn

the redirector on or off.

13. The apparatus set forth in claim 11 , wherein:

the cursor is redirected whenever an entire object that the cursor refers to is not present in the particular database system.

14. The apparatus set forth in claim 11 , wherein:

the request includes a call to a procedure object; and

the redirector causes the call to be rewritten in a form required for execution as a remote procedure call directed to the other database system.

15. The apparatus set forth in claim 11 wherein:

the request includes a specifier referring to an object that is not present in the particular database system and

the request analyzer determines that an object required for execution of the request is not present in the particular database system.

16. A data storage device, characterized in that:

the data storage device contains code which when executed implements an apparatus as set forth in claim 11 .

17. A data storage device, characterized in that:

the data storage device contains code which when executed implements an apparatus as set forth in claim 12 .

18. A data storage device, characterized in that:

the data storage device contains code which when executed implements an apparatus as set forth in claim 13 .

19. A data storage device, characterized in that:

the data storage device contains code which when executed implements an apparatus as set forth in claim 14 .

20. A data storage device, characterized in that:

the data storage device contains code which when executed implements an apparatus as set forth in claim 15 .

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 13, 2004
From: CORPORATION, ORACLE
To: ORACLE INTERNATIONAL CORPORATION
Reel/Frame 015320/0120 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 1, 2003
From: ORACLE CORPORATION
To: ORACLE INTERNATIONAL CORPORATION
Reel/Frame 014743/0910 →
CORRECTIVE ASSIGNMENT TO CORRECT THE SERIAL NUMBER PREVIOUSLY RECORDED AT REEL 012436 FRAME 0065 Recorded Mar 29, 2002
From: KALUSKAR, SANJAY HEMKANT; RACICOT, CHRISTOPHER P.; VOSS, ERICK P.; DECKER, RONALD M.; ALPERN, DAVID M.; FEENAN, JAMES; ROY, ANINDO
To: ORACLE CORPORATION
Reel/Frame 012782/0286 →