Patent ID: 8214356
Filing Date: 2012-07-03
Classification: G06F

Abstract:
1. A database management system comprising: a network interface, for receiving database queries from two or more client application processes as a network database service, the client application processes originating from two different users, the system providing a least one connection into the system for each such client application process; a group of two 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; where the number of physical machines is not necessarily the same as the number of operational nodes; with the operational nodes assigned as controller-nodes, compute-nodes or storage-nodes, and groups of controller-nodes forming controller nodegroups, and groups of compute-nodes forming compute nodegroups, and groups of storage nodes forming storage nodegroups; the number of operational nodes, and their available assignment as compute-nodes or storage-nodes varying during execution of the queries; each client connection being assigned to an associated compute nodegroup; the queries also specifying one or more tables for an associated database operation, with each such table being assigned to a respective storage nodegroup; the operational nodes further: operating in parallel; with the number of operational nodes executing a given query or queries changing during a given time interval by at least one of: distributing data from the tables among the nodes in the storage nodegroup to which the table is assigned based on a Distribution Method which may be either data dependent or data independent; and wherein the storage and compute nodes contain multiple potentially heterogeneous data stores that can be presented and queried as if they were one database; wherein the steps in the query plan generated by the DQP process are expressed in a form that is understood by an underlying data store on the node(s) executing the step(s); and wherein the form in which the client communicates the query to the system may or may not be in the same form used to communicate with the data stores on the compute and storage nodes.