System and method of distributed query execution
AssigneeEMC Corporation
InventorsJeroen van Rotterdam, Mark Polman
Life of this patent
Estimating the term…
Abstract
A method, article of manufacture, and apparatus for searching a computing environment, such as a cloud data repository. In some embodiments, this includes providing an extension function for distributed execution of queries. In some embodiments, subqueries or subexpressions of a query may be executed in parallel amoung different repositories or collections.
Claims9
A method of evaluating a query against a data repository comprising a non-transitory storage device having at least one data partition, the method comprising:
- receiving a query at a dispatcher;
- communicating the query from the dispatcher to a director, the director comprising a module enabled to determine at least one repository node needed to execute the query, wherein the at least one repository node is in the data repository;
- dividing the query into at least two subqueries at the director, each subquery corresponding to pertinent information residing in different collections of the data repository;
- dividing at least one partition comprising tenant data into a set of at least two collections, wherein the partition resides on the at least one repository node;
- defining the context at the director for each subquery so as to encompass a collection containing the information pertinent to each subquery;
- communicating the subqueries from the director to the dispatcher;
- distributing at least one of the subqueries to a subdispatcher;
- evaluating the at least one of the subqueries against the defined context for the at least one of the subqueries context at the subdispatcher;
- gathering the information responsive to the at least one subquery;
- and
- returning the information as the response to the received query.
A system for organizing data, comprising a storage device and a processor configured to:
- receive a query at a dispatcher;
- communicate the query from the dispatcher to a director, the director comprising a module enabled to determine at least one repository node needed to execute the query, wherein the at least one repository node is in the data repository;
- divide the query into at least two subqueries at the director, each subquery corresponding to pertinent information residing in different collections of the data repository;
- divide at least one partition comprising tenant data into a set of at least two collections, wherein the partition resides on the at least one repository node;
- define the context at the director for each subquery so as to encompass a collection containing the information pertinent to each subquery;
- communicate the subqueries from the director to the dispatcher;
- distribute at least one of the subqueries to a subdispatcher;
- evaluate the at least one of the subqueries against the defined context for the at least one of the subqueries context at the subdispatcher;
- gather the information responsive to the at least one subquery;
- and
- return the information as the response to the received query.
A computer program product for querying data stored in a repository, comprising a non-transitory computer readable medium having program instructions embodied therein for:
- receiving a query at a dispatcher;
- communicating the query from the dispatcher to a director, the director comprising a module enabled to determine at least one repository node needed to execute the query, wherein the at least one repository node is in the data repository;
- dividing the query into at least two subqueries at the director, each subquery corresponding to pertinent information residing in different collections of the data repository;
- dividing at least one partition comprising tenant data into a set of at least two collections, wherein the partition resides on the at least one repository node;
- defining the context at the director for each subquery so as to encompass a collection containing the information pertinent to each subquery;
- communicating the subqueries from the director to the dispatcher;
- distributing at least one of the subqueries to a subdispatcher;
- evaluating the at least one of the subqueries against the defined context for the at least one of the subqueries context at the subdispatcher;
- gathering the information responsive to the at least one subquery;
- and returning the information as the response to the received query.
Dependencies are inferred from the claim text.