Dynamic query master agent for query execution
First Claim
1. One or more computer-storage memory storing computer-useable instructions that, when used by a computing device, cause the computing device to perform a method for assigning a segment root, the method comprising:
- receiving a search query;
identifying a set of nodes in a segment that will be used to resolve the search query, the segment is assigned a group of documents indexed by atom in a reverse index and indexed by document in a forward index, wherein corresponding portions of the reverse index and forward index are apportioned to each node in the set of nodes, and wherein the reverse index is used for a preliminary ranking process and the forward index is used for a final ranking process;
selecting a preliminary segment root from the set of nodes;
receiving, at the preliminary segment root, statistical data from each node in the identified set of nodes, the statistical data indicating each node'"'"'s capability to act as a final segment root that is responsible for assembling query-execution results from the set of nodes based on the search query, wherein the statistical data is generated based on, at least in part, the preliminary ranking process and the final ranking process;
algorithmically selecting the final segment root from the set of nodes based on the statistical data; and
notifying the set of nodes about the final segment root so that the nodes know where to send their respective query-execution results.
2 Assignments
0 Petitions
Accused Products
Abstract
A preliminary segment root and a final segment root are selected for each segment. Each time a search query is received, a set of nodes in each segment that will be used to resolve the search query is identified. A preliminary segment root is selected from the set of nodes. Based on statistical data from each node in the set of nodes indicating each node'"'"'s capability to act as a final segment root that assembles query-execution data, the preliminary segment root algorithmically selects the final segment root. The other nodes in the set of nodes are notified regarding the identity of the final segment root.
-
Citations
20 Claims
-
1. One or more computer-storage memory storing computer-useable instructions that, when used by a computing device, cause the computing device to perform a method for assigning a segment root, the method comprising:
-
receiving a search query; identifying a set of nodes in a segment that will be used to resolve the search query, the segment is assigned a group of documents indexed by atom in a reverse index and indexed by document in a forward index, wherein corresponding portions of the reverse index and forward index are apportioned to each node in the set of nodes, and wherein the reverse index is used for a preliminary ranking process and the forward index is used for a final ranking process; selecting a preliminary segment root from the set of nodes; receiving, at the preliminary segment root, statistical data from each node in the identified set of nodes, the statistical data indicating each node'"'"'s capability to act as a final segment root that is responsible for assembling query-execution results from the set of nodes based on the search query, wherein the statistical data is generated based on, at least in part, the preliminary ranking process and the final ranking process; algorithmically selecting the final segment root from the set of nodes based on the statistical data; and notifying the set of nodes about the final segment root so that the nodes know where to send their respective query-execution results. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. One or more tangible computer-storage memory storing computer-useable instructions that, when used by a computing device, cause the computing device to perform a method for assigning a segment root, the method comprising:
-
at a segment comprising a plurality of nodes, receiving a search query to be executed; identifying a set of nodes from the plurality of nodes in the segment that will be used to execute the search query, the segment is assigned a group of documents indexed by atom in a reverse index and indexed by document in a forward index, wherein corresponding portions of the reverse index and forward index are apportioned to each node in the set of nodes, and wherein the reverse index is used for a preliminary ranking process and the forward index is used for a final ranking process; prior to execution of the search query, selecting a preliminary segment root from the plurality of nodes, the selection based on one or more of an expected load for each node or a random selection; receiving statistical data at the preliminary segment root at the preliminary segment root from each node in the set of nodes that will be used to execute the search query, the statistical data generated based on, at least in part, the preliminary ranking process and the final ranking process, wherein the statistical data includes current load and cost data associated with sending data across a network; based on the statistical data, selecting a final segment root that will aggregate query-execution data from the set of nodes during query execution; and executing the search query. - View Dependent Claims (11, 12, 13, 14, 15, 16)
-
-
17. One or more memory storing computer-useable instructions that, when used by a computing device, cause the computing device to perform a method for assigning a segment root, the method comprising:
-
at a corpus root that comprises a plurality of segments, receiving a search query, wherein each of the plurality of segments comprises a plurality of nodes that each has a portion of a search index stored thereon, the search index comprising a group of documents indexed by atom in a reverse index and indexed by document in a forward index, and wherein each of the plurality of nodes has stored thereon corresponding portions of the reverse index and forward index apportioned to each node, and wherein the reverse index is used for a preliminary ranking process and the forward index is used for a final ranking process;
identifying a set of nodes in each segment that will be used to execute the received search query;for each of the plurality of segments, identifying a preliminary segment root from the set of nodes; requesting statistical data from each node in the set of nodes that will be used to execute the received search query; receiving the statistical data from each node of the set of nodes, the statistical data indicating an availability of each node to act as a final segment root, wherein the statistical data is generated based on, at least in part, the preliminary ranking process and the final ranking process; based on the statistical data, selecting the final segment root for each segment such that the final segment root collects the query-execution data for both the preliminary ranking process and the final ranking process; and executing the search query. - View Dependent Claims (18, 19, 20)
-
Specification