Patent ID: 7987181
Filing Date: 2011-07-26
Classification: G06F

Abstract:
1. A system comprising: a plurality of query server computers, each configured to evaluate queries directed to one or more datasets of a database; and a query traffic director device coupled to the plurality of query server computers, wherein in response to receiving a given query of said queries formulated in a query language for evaluation, the query traffic director device is configured to: parse said given query; identify a particular one of said datasets targeted by said given query dependent upon parsing said given query; identify two or more query server computers of the plurality of query server computers which are coupled for access to the particular one of said datasets, both of the two or more query servers evaluate the given query, wherein a first server of the two or more query server computers is configured with processing resources which provide greater processing performance when evaluating processing intensive computations than a second server of the two or more query server computers, and the second query server computer is configured with memory resources which provide greater performance when evaluating memory intensive computations than the first server; determine available resources to evaluate said given query of each of the identified two or more query server computers; estimate a computational complexity of evaluating said given query by a query server of the plurality of query servers, in response to receiving the given query, wherein estimating said computational complexity, is configured to use at least one characteristic selected from a group: operators used in the query, degree of iteration, and the size of the particular one of said datasets, and further includes determining a type of computation required to evaluate said given query, said type corresponding to at least one of a first type which is processing intensive, and a second type which is memory intensive; select the first server as a selected server to process the given query when the given query corresponds to the first type, and select the second server as the selected server to process the given query when the given query corresponds to the second type; and convey said given query to said selected server for evaluation and processing.