Processing queries against one or more markup language sources
First Claim
1. A method of processing a query, comprising the computer-implemented steps of:
- receiving the query, wherein the query specifies certain operations to be performed, wherein the certain operations comprise a first set of one or more operations that are to be performed on a markup language data source;
wherein the first set of one or more operations includes a second set of one or more operations;
determining that the first set of one or more operations can be performed at any one of a plurality of entities;
wherein the plurality of entities includes one or more of an XML database server, a relational database server, and a middle-tier engine;
generating a plurality of execution plans for executing the query, wherein the plurality of execution plans include;
a first execution plan indicating a first entity at which the second set of one or more operations are to be performed; and
a second execution plan indicating a second entity at which the second set of one or more operations are to be performed;
selecting, based on a particular set of criteria, a particular execution plan from the plurality of execution plans;
wherein selecting the particular execution plan from the plurality of execution plans comprises one or more of;
selecting the particular execution plan based at least in part on costs determined for the plurality of execution plans; and
selecting the particular execution plan by using one or more rules to determine which execution plan, of the plurality of execution plans, to use for executing the query;
wherein the selected particular execution plan indicates a first server at which the second set of one or more operations are to be performed;
determining that a third set of one or more operations are to be performed at the middle-tier engine, wherein the first set of one or more operations include all operations in the third set of one or more operations, and the third set of one or more operations include no operation that are in the second set of one or more operations;
sending a request to the first server to perform the second set of one or more operations;
receiving a response to the request, wherein the response contains results of performing the second set of one or more operations on the markup language data source; and
generating results for the query based at least in part on the results of performing the second set of one or more operations;
wherein the steps of generating the plurality of execution plans and selecting the particular execution plan are performed by one or more computing devices.
1 Assignment
0 Petitions
Accused Products
Abstract
Techniques are provided for processing a query, including receiving the query, where the query specifies certain operations to be performed, including (a) a first set of one or more operations that are to be performed on a markup language data source and (b) a second set of one or more operations that are to be performed on a second data source. Then it is determined that a first server that manages the markup language data source is capable of performing the first set of operations. A request is sent to the first server to perform the first set of operations. A response is received, where the response contains results of performing the first set of operations on the markup language data source. Finally, results are generated for the query based at least in part on the results of performing the first set of operations.
-
Citations
62 Claims
-
1. A method of processing a query, comprising the computer-implemented steps of:
-
receiving the query, wherein the query specifies certain operations to be performed, wherein the certain operations comprise a first set of one or more operations that are to be performed on a markup language data source; wherein the first set of one or more operations includes a second set of one or more operations; determining that the first set of one or more operations can be performed at any one of a plurality of entities; wherein the plurality of entities includes one or more of an XML database server, a relational database server, and a middle-tier engine; generating a plurality of execution plans for executing the query, wherein the plurality of execution plans include; a first execution plan indicating a first entity at which the second set of one or more operations are to be performed; and a second execution plan indicating a second entity at which the second set of one or more operations are to be performed; selecting, based on a particular set of criteria, a particular execution plan from the plurality of execution plans; wherein selecting the particular execution plan from the plurality of execution plans comprises one or more of; selecting the particular execution plan based at least in part on costs determined for the plurality of execution plans; and selecting the particular execution plan by using one or more rules to determine which execution plan, of the plurality of execution plans, to use for executing the query; wherein the selected particular execution plan indicates a first server at which the second set of one or more operations are to be performed; determining that a third set of one or more operations are to be performed at the middle-tier engine, wherein the first set of one or more operations include all operations in the third set of one or more operations, and the third set of one or more operations include no operation that are in the second set of one or more operations; sending a request to the first server to perform the second set of one or more operations; receiving a response to the request, wherein the response contains results of performing the second set of one or more operations on the markup language data source; and generating results for the query based at least in part on the results of performing the second set of one or more operations; wherein the steps of generating the plurality of execution plans and selecting the particular execution plan are performed by one or more computing devices. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61)
-
-
31. A method of processing a query, comprising the computer-implemented steps of:
-
receiving the query, wherein the query specifies certain operations to be performed, wherein the certain operations comprise (a) a first set of one or more operations that are to be performed on a markup language data source and (b) a second set of one or more operations that are to be performed on a second data source that is different than the markup language data source; determining that the first set of one or more operations and the second set of one or more operations cannot be preformed by a single database server; generating a plurality of execution plans for executing the query, wherein the plurality of execution plans include; a first execution plan indicating that the first set of one or more operations are to be performed at a first server; and a second execution plan indicating that the first set of one or more operations are to be performed at a second server; selecting, based on a particular set of criteria, the first execution plan from the plurality of execution plans; wherein selecting the first execution plan from the plurality of execution plans comprises one or more of; selecting the first execution plan based at least in part on costs determined for the plurality of execution plans; and selecting the first execution plan by using one or more rules to determine which execution plan, of the plurality of execution plans, to use for executing the query; determining that a third set of one or more operations are to be performed at a middle-tier engine, wherein the second set of one or more operations include all operations in the third set of one or more operations, and the third set of one or more operations include no operation that are in the first set of one or more operations; sending a request to the first server to perform the first set of one or more operations; receiving a response to the request, wherein the response contains results of performing the first set of one or more operations on the markup language data source; and generating results for the query based at least in part on the results of performing the first set of one or more operations; and wherein the steps of generating the plurality of execution plans and selecting the first execution plan are performed by one or more computing devices. - View Dependent Claims (62)
-
Specification