1. 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, and one or more platforms; c) client applications establish connections with the system and interact with the system in a query language; d) one or more operational nodes operating as storage nodes and collectively referred to as a storage nodegroup; e) one or more operational nodes operating as compute nodes and collectively referred to as compute nodegroup; f) the system further storing user data in tables, and grouping the tables into databases; g) tables are associated with one or more storage nodegroups and data for the table is stored on the nodes that are part of the associated storage nodegroup(s); h) a Dynamic Query Planner (DQP) analyzes queries received for execution from applications and transforms those queries into query execution steps (QES) based on a query type, a schema of the referenced tables, and a manner in which data in the tables is distributed on the storage nodegroup(s); i) a Query Execution Engine (QEE) executes these QES and produces results of a query that are then returned to the client that originated the query; j) a persistent state is associated with each connection including at least a compute-nodegroup that is associated with the connection; k) intermediate data streams generated as part of query processing related to a connection are associated with a nodegroup, including the compute-nodegroup(s) associated with the connection; and l) one or more physical data processing machines providing compute elasticity by altering which compute nodes are part of the compute nodegroup associated with the connection, or by changing the compute nodegroup(s) associated with the connection, and provisioning and de-provisioning compute nodes dynamically, and further comprising: a Compute Node Plugin which handles the provisioning and deprovisioning of instances, the provisioning and deprovisioning of compute nodes and their assignment to the QEE for executing specific queries, Policy Rules which determine the conditions under which, and the parameters within which the Compute Node Plugin may act, at least one platform on which the database executes, and at least two queries that share the same compute node during query execution.