Back to results
US 8,751,483 B1Granted
Redistribution reduction in EPRDBMS
AssigneeTesora, Inc.
InventorsMrithyunjaya Annapragada, Benjamin Rousseau
Life of this patent
Estimating the term…
Abstract
An elastic parallel database system where metadata is specified out-of-band during database operations via a set of augmentation rules. The rules are used to augment or modify commands received, and indicate whether they are to be used for specific connections on which they are received, for all client connections, or some other scope.
Claims16
A database management system comprising
- a) a network interface, for receiving database queries from two or more client applications, the client applications operating on two or more user client computers, the system providing a least one connection into the system for each such client application;
- b) a group of one or more operational nodes for executing the queries as database operations, each operational node implemented as a logical collection of software components that execute on one or more physical machines;
- c) client applications establish connections with the database and interact with the system in a query language;
- d) one or more operational nodes functioning as storage nodes and collectively referred to as a storage nodegroup;
- e) one or more operational nodes functioning as compute nodes and collectively referred to as a compute nodegroup;
- f) the system further including tables for storing user data, and grouping the tables into databases;
- g) the tables being associated with storage nodegroups and data for the tables is stored on nodes that are part of the associated nodegroup;
- h) a Dynamic Query Planner (DQP) that analyzes queries received for execution from client applications and transforms those queries into Query Execution Steps (QES) based on one or more factors including a query type, a schema of tables referenced by the query, or a manner in which data in the tables is distributed on the storage nodegroups;
- i) a Query Execution Engine (QEE) that executes the QES and produces results of the query that are then returned to the client application that originated the query;
- j) a QES includes redistribution of data in a table from one location to another location as part of the processing of the query, and further such that
- k) the system inspects each row of data that is being redistributed to determine whether or not the data actually needs to be redistributed or could be safely discarded, thereby reducing the amount of data being redistributed needlessly, without compromising the correctness of the results of the query being processed;
- l) a persistent state is associated with each connection including at least a compute-nodegroup that is associated with the connection;
- and
- m) intermediate data streams generated as part of the query processing related to a connection are associated with the compute-nodegroup associated with the connection.
11 more elements
A method for database management comprising:
- a) receiving database queries from two or more client applications via a network interface, the client applications operating on two or more user client computers, such that a least one connection is provided for each such client application;
- b) executing the queries as database operations on two or more operational nodes, each operational node implemented as a logical collection of software components that execute on one or more physical machines;
- c) client applications interacting with the system in a query language;
- d) one or more operational nodes functioning as storage nodes and collectively referred to as a storage nodegroup;
- e) one or more operational nodes functioning as compute nodes and collectively referred to as a compute nodegroup;
- f) storing user data in tables, and grouping the tables into databases;
- g) associating the tables with storage nodegroups such that data for the tables is stored on nodes that are part of the associated nodegroup;
- h) analyzing queries via a Dynamic Query Planner (DQP) for transforming those queries into Query Execution Steps (QES) based on one or more factors including a query type, a schema of tables referenced by the query, or a manner in which data in the tables is distributed on the storage nodegroups;
- i) executing, via a Query Execution Engine, the QES and thereby producing results of the query that are then returned to the client application that originated the query;
- j) redistributing, via the QES, data in a table from one location to another location as part of the processing of the query, and further such that
- k) inspecting each row of data that is being redistributed to determine whether or not the data actually needs to be redistributed or could be safely discarded, thereby reducing the amount of data being redistributed needlessly, without compromising the correctness of the results of the query being processed;
- l) associating a persistent state with each connection including at least a compute-nodegroup that is associated with the connection;
- and
- m) generating intermediate data streams as part of the query processing related to a connection associated with the compute-nodegroup associated with that connection.
11 more elements
Dependencies are inferred from the claim text.