Resource provisioning systems and methods
First Claim
1. A method comprising:
- controlling, by a resource manager, an execution platform comprising a plurality of nodes, each node thereof comprising (1) at least one processor and (2) at least one local cache, wherein the resource manager comprises a software program stored in memory and executed by one or more processors connected to the execution platform;
executing, by the execution platform, data processing requests that originate from a plurality of computerized query sources independent of the execution platform and are directed to data collectively stored in a plurality of shared storage devices independent of the execution platform;
caching, by the execution platform, at least a portion of the data within the at least one local cache of each node of the plurality of nodes;
monitoring, by the resource manager, the data processing requests that originate from the plurality of query sources and are directed to the data;
determining, by the resource manager, that at least one of additional data storage capacity and additional processing capacity are needed based on the data processing requests; and
increasing, by the resource manager, in response to the determining, an amount of the data cached by the execution platform by adding one or more nodes to the plurality of nodes, wherein each of the one or more nodes added comprise (1) at least one processor and (2) at least one local cache.
2 Assignments
0 Petitions
Accused Products
Abstract
Example resource provisioning systems and methods are described. In one implementation, an execution platform accesses multiple remote storage devices. The execution platform includes multiple virtual warehouses, each of which includes a cache to store data retrieved from the remote storage devices and a processor that is independent of the remote storage devices. A resource manager is coupled to the execution platform and monitors received data processing requests and resource utilization. The resource manager also determines whether additional virtual warehouses are needed based on the data processing requests and the resource utilization. If additional virtual warehouses are needed, the resource manager provisions a new virtual warehouse.
89 Citations
13 Claims
-
1. A method comprising:
-
controlling, by a resource manager, an execution platform comprising a plurality of nodes, each node thereof comprising (1) at least one processor and (2) at least one local cache, wherein the resource manager comprises a software program stored in memory and executed by one or more processors connected to the execution platform; executing, by the execution platform, data processing requests that originate from a plurality of computerized query sources independent of the execution platform and are directed to data collectively stored in a plurality of shared storage devices independent of the execution platform; caching, by the execution platform, at least a portion of the data within the at least one local cache of each node of the plurality of nodes; monitoring, by the resource manager, the data processing requests that originate from the plurality of query sources and are directed to the data; determining, by the resource manager, that at least one of additional data storage capacity and additional processing capacity are needed based on the data processing requests; and increasing, by the resource manager, in response to the determining, an amount of the data cached by the execution platform by adding one or more nodes to the plurality of nodes, wherein each of the one or more nodes added comprise (1) at least one processor and (2) at least one local cache. - View Dependent Claims (2, 3, 4, 5)
-
-
6. A method for storing and retrieving data, the method comprising:
-
deploying an execution platform as an interface between (1) a plurality of remote, shared storage devices collectively storing data and (2) a plurality of computerized query sources sending queries directed to the data, wherein the execution platform is independent of the plurality of remote, shared storage devices, the execution platform is independent of the plurality of computerized query sources, and the execution platform comprises a plurality of nodes, each node thereof comprising (1) at least one processor and (2) at least one local cache caching at least a portion of the data; monitoring, by a resource manager, current processing delays of the execution platform as the execution platform processes queries directed to the data by the plurality of computerized query sources, wherein the resource manager comprises a software program stored in memory and executed by one or more processors connected to the execution platform; determining, by the resource manager, that the current processing delays are greater than a threshold; and increasing, by the resource manager in response to the determining, an amount of the data cached by the execution platform by adding one or more nodes to the plurality of nodes, wherein each of the one or more nodes added comprise (1) at least one processor and (2) at least one local cache.
-
-
7. An apparatus comprising:
-
a plurality of shared storage devices collectively storing data; an execution platform independent of the plurality of shared storage devices, the execution platform executing data processing requests directed to the data by a plurality of computerized query sources; the execution platform comprising a plurality of nodes, each node thereof being independent of the plurality of computerized query sources and comprising (1) at least one processor and (2) at least one local cache caching at least a portion of the data; and a resource manager comprising a software program stored in memory and executed by one or more processors connected to the execution platform, the resource manager programmed to; monitor received data processing requests directed to the data; determine that at least one of additional data storage capacity and additional processing capacity are needed based on the data processing requests; and increase, in response to the determining, an amount of the data cached by the execution platform by adding one or more nodes to the plurality of nodes, wherein each of the one or more nodes added comprise (1) at least one processor and (2) at least one local cache. - View Dependent Claims (8, 9, 10, 11, 12, 13)
-
Specification