IP Library Granted Patent US 8,200,658
Granted Patent B2
US 8,200,658 · App. 13/158,808 · Granted Jun 12, 2012

System and method for providing highly available database performance

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 8,200,658
App. No.
13/158,808
Granted
Jun 12, 2012
Kind
B2
Abstract

A system and method for enabling a second database instance to more quickly process a request to execute a database statement that has previously been executed by a first database instance is described. In one embodiment, the method involves sending the database statement from the first database instance to the second database instance, and generating by the second database instance one or more structures needed to prepare the statement for execution, such as a parse tree and an execution plan for the statement. If at some point in the future, the second database instance receives a request to execute the same statement, the above structures can be used for execution, thereby eliminating the need for one or more potentially time-consuming operations, such as generation of a parse tree or execution plan for the statement.

Claims (34)

1. One or more processes comprising:

receiving, from a first database server at a second database server, a structure generated by the first database server in response to receiving a first request, from a first client, to execute a first occurrence of a database statement at the first database server, wherein the structure is required to prepare the first occurrence of the database statement for execution at the first database server, wherein the first occurrence of the database statement is executed at the first database server, wherein the structure is received by the second database server prior to the second database server receiving any other request to execute another occurrence of the database statement at the second database server, and wherein the first occurrence of the database statement is not to be executed by the second database server in response to receiving the structure from the first database server; and

wherein the first database server and the second database server operate on separate devices each having a separate local cache;

in response to receiving the structure from the first database server at the second database server, and before receiving any other request to execute another occurrence of the database statement at the second database server, storing the structure in the separate local cache of the second database server;

after storing the structure in the separate local cache of the second database server,

receiving a second request, from a second client, to execute a second occurrence of the database statement at the second database server; and

in response to receiving the second request, executing the second occurrence of the database statement at the second database server using the structure stored in the separate local cache of the second database server without the first database server completing execution of the second occurrence of the database statement;

wherein the one or more processes are performed by one or more computing devices.

2. The one or more processes of claim 1 , wherein the structure comprises a parse tree.

3. The one or more processes of claim 2 , wherein, in response to receiving the second request, the second database server uses the parse tree instead of parsing the second occurrence of the database statement.

4. The one or more processes of claim 1 , wherein the structure comprises an execution plan.

5. The one or more processes of claim 4 , wherein, in response to receiving the second request, the second database server uses the execution plan instead of generating an execution plan for the second occurrence of the database statement.

6. The one or more processes of claim 1 , wherein the structure is sent from the first database server to the second database server in anticipation of a shutdown of the first database server.

7. The one or more processes of claim 1 , wherein the structure is sent from the first database server to the second database server prior to any indication that the first database server may become inoperable.

8. The one or more processes of claim 1 , wherein the structure is sent from the first database server to the second database server in response to determining that the second database server is capable of executing the database statement.

9. The one or more processes of claim 1 , further comprising, prior to receiving the structure, requesting by the second database server a transfer of structures that were generated by the first database server in preparation of one or more database statements for execution.

10. The one or more processes of claim 1 , further comprising periodically receiving, from the first database server at the second database server, structures that were generated by the first database server in preparation of one or more database statements for execution.

11. The one or more processes of claim 1 , wherein the first client and the second client are different clients.

12. One or more non-transitory computer-readable storage media storing one or more sequences of instructions, wherein execution of the one or more sequences of instructions by one or more processors causes the one or more processors to perform:

receiving, from a first database server at a second database server, a structure generated by the first database server in response to receiving a first request, from a first client, to execute a first occurrence of a database statement at the first database server, wherein the structure is required to prepare the first occurrence of the database statement for execution at the first database server, wherein the first occurrence of the database statement is executed at the first database server, wherein the structure is received by the second database server prior to the second database server receiving any other request to execute another occurrence of the database statement at the second database server, and wherein the first occurrence of the database statement is not to be executed by the second database server in response to receiving the structure from the first database server; and

wherein the first database server and the second database server operate on separate devices each having a separate local cache;

in response to receiving the structure from the first database server at the second database server, and before receiving any other request to execute another occurrence of the database statement at the second database server, storing the structure in the separate local cache of the second database server;

after storing the structure in the separate local cache of the second database server, receiving a second request, from a second client, to execute a second occurrence of the database statement at the second database server; and

in response to receiving the second request, executing the second occurrence of the database statement at the second database server using the structure stored in the separate local cache of the second database server without the first database server completing execution of the second occurrence of the database statement.

13. The one or more non-transitory computer-readable storage media of claim 12 , wherein the structure comprises a parse tree.

14. The one or more non-transitory computer-readable storage media of claim 13 , wherein, in response to receiving the second request, the second database server uses the parse tree instead of parsing the second occurrence of the database statement.

15. The one or more non-transitory computer-readable storage media of claim 12 , wherein the structure comprises an execution plan.

16. The one or more non-transitory computer-readable storage media of claim 15 , wherein, in response to receiving the second request, the second database server uses the execution plan instead of generating an execution plan for the second occurrence of the database statement.

17. The one or more non-transitory computer-readable storage media of claim 12 , wherein the structure is sent from the first database server to the second database server in anticipation of a shutdown of the first database server.

18. The one or more non-transitory computer-readable storage media of claim 12 , wherein the structure is sent from the first database server to the second database server prior to any indication that the first database server may become inoperable.

19. The one or more non-transitory computer-readable storage media of claim 12 , wherein the structure is sent from the first database server to the second database server in response to determining that the second database server is capable of executing the database statement.

20. The one or more non-transitory computer-readable storage media of claim 12 , wherein execution of the one or more sequences of instructions by the one or more processors further causes the one or more processors to perform, prior to receiving the structure, requesting by the second database server a transfer of structures that were generated by the first database server in preparation of one or more database statements for execution.

21. The one or more non-transitory computer-readable storage media of claim 12 , wherein execution of the one or more sequences of instructions by the one or more processors further causes the one or more processors to perform periodically receiving, from the first database server at the second database server, structures that were generated by the first database server in preparation of one or more database statements for execution.

22. The one or more non-transitory computer-readable storage media of claim 12 , wherein the first client and the second client are different clients.

Continuity (4)
Division 11088340 · Mar 23, 2005
Division 10086842 · Feb 28, 2002
Provisional Application 60272386 · Feb 28, 2001
Related Publication 20110238655A1 · Sep 29, 2011