IP Library Granted Patent US 11,106,696
Granted Patent B2
US 11,106,696 · App. 16/378,371 · Granted Aug 31, 2021

Resource provisioning systems and methods

Inventors: Benoit Dageville (Foster City, CA); Thierry Cruanes (San Mateo, CA); Marcin Zukowski (San Mateo, CA)
Assignee: Snowflake Inc.
G06F16/27G06F9/4881G06F9/5016G06F9/5044G06F9/5083G06F9/5088G06F16/148G06F16/1827G06F16/211G06F16/221G06F16/2365G06F16/2456G06F16/2471G06F16/24532G06F16/24545G06F16/24552G06F16/951G06F16/9535H04L67/1095H04L67/1097H04L67/2842
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,106,696
App. No.
16/378,371
Granted
Aug 31, 2021
Kind
B2
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.

Claims (44)

1. A system comprising:

a plurality of storage resources;

a processor, coupled to the plurality of storage resources, to:

monitor data processing requests received from a plurality of accounts directed to database data stored in a plurality of remote storage devices;

monitor resource utilization of an execution platform, wherein the execution platform comprises a plurality of virtual warehouses that each share the plurality of remote storage devices, the execution platform configured to access the plurality of remote storage devices;

determine current and future resource needs for the execution platform to execute the data processing requests;

determine whether an additional virtual warehouse is needed based on the current and future resource needs for the execution platform; and

provision an amount of processing resources for the additional virtual warehouse independently of increasing an amount of storage in the plurality of remote storage devices used by the execution platform.

2. The system of claim 1 , wherein each virtual warehouse of the execution platform comprises a storage means for storing data retrieved from the plurality of remote storage devices and a processor that is independent of the plurality of remote storage devices.

3. The system of claim 1 , wherein the processor further to monitor response rates for the data processing requests.

4. The system of claim 1 , wherein the processor further to deactivate the additional virtual warehouse in response to determining that the additional virtual warehouse is no longer needed.

5. The system of claim 1 , wherein the processor further to receive a notice of an upcoming data processing request; and

provision a new virtual warehouse to execute the upcoming data processing request.

6. The system of claim 5 , wherein the processor further to deactivate the new virtual warehouse upon completion of the upcoming data processing request.

7. The system of claim 5 , wherein the processor further to determine a predetermined time duration for the upcoming data processing request; and

deactivate the new virtual warehouse after the predetermined time duration.

8. The system of claim 1 , wherein the processor further to receive a request to perform a plurality of data processing activities; and means for automatically provisioning a new virtual warehouse to execute the request in response to receiving the request.

9. The system of claim 1 , wherein the processor further to determine a plurality of discrete tasks to execute each of the data processing requests; and

assign the plurality of discrete tasks for each of the data processing requests to one or more virtual warehouses of the execution platform.

10. The system of claim 9 , wherein the processor further to generate a statement result for each of the data processing requests; and means for communicating the statement result to a corresponding account.

11. A method comprising:

monitoring data processing requests received from a plurality of accounts directed to database data stored in a plurality of remote storage devices;

monitoring resource utilization of an execution platform comprising a plurality of virtual warehouses that each share the plurality of remote storage devices, the execution platform configured to access the plurality of remote storage devices;

determining current and future resource needs for the execution platform to execute the data processing requests;

determining whether an additional virtual warehouse is needed based on the current and future resource needs for the execution platform; and

provisioning an amount of processing resources for the additional virtual warehouse independently of increasing an amount of storage in the plurality of remote storage devices used by the execution platform.

12. The method of claim 11 , wherein each virtual warehouse of the execution platform comprises a cache configured to store data retrieved from the plurality of remote storage devices and a processor that is independent of the plurality of remote storage devices.

13. The method of claim 11 , further comprising deactivating the additional virtual warehouse in response to determining that the additional virtual warehouse is no longer needed.

14. The method of claim 11 , further comprising:

receiving a notice of an upcoming data processing request; and

provisioning a new virtual warehouse to execute the upcoming data processing request.

15. The method of claim 14 , further comprising deactivating the new virtual warehouse upon completion of the upcoming data processing request.

16. A non-transitory computer-readable medium storing instructions which, when executed by one or more second processors of a computing device, cause the one or more second processors to:

monitor data processing requests received from a plurality of accounts directed to database data stored in a plurality of remote storage devices;

monitor resource utilization of an execution platform comprising a plurality of virtual warehouses that each share the plurality of remote storage devices, the execution platform configured to access the plurality of remote storage devices;

determine current and future resource needs for the execution platform to execute the data processing requests;

determine whether an additional virtual warehouse is needed based on the current and future resource needs for the execution platform; and

provision an amount of processing resources for the additional virtual warehouse independently of increasing an amount of storage in the plurality of remote storage devices used by the execution platform.

17. The non-transitory computer-readable medium of claim 16 , wherein each virtual warehouse of the execution platform comprises a cache configured to store data retrieved from the plurality of remote storage devices and a processor that is independent of the plurality of remote storage devices.

18. The non-transitory computer-readable medium of claim 16 , wherein the instructions further comprise: receiving a notice of an upcoming data processing request; and

provision a new virtual warehouse to execute the upcoming data processing request.

19. The non-transitory computer-readable medium of claim 16 , wherein the instructions further comprise deactivating the new virtual warehouse upon completion of the upcoming data processing request.

20. The non-transitory computer-readable medium of claim 16 , wherein the instructions further comprise: receiving a request to perform a plurality of data processing activities; and

automatically provision a new virtual warehouse to execute the request in response to receiving the request.

Assignments (3)
CHANGE OF NAME Recorded Apr 30, 2019
From: SNOWFLAKE COMPUTING INC.
To: SNOWFLAKE INC.
Reel/Frame 049042/0419 →
CHANGE OF NAME Recorded Apr 11, 2019
From: SNOWFLAKE COMPUTING, INC.
To: SNOWFLAKE INC.
Reel/Frame 049127/0027 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 8, 2019
From: DAGEVILLE, BENOIT; CRUANES, THIERRY; ZUKOWSKI, MARCIN
To: SNOWFLAKE COMPUTING INC.
Reel/Frame 048824/0138 →
Continuity (3)
Continuation 14518826 · Oct 20, 2014
Provisional Application 61941986 · Feb 19, 2014
Related Publication 20190236080A1 · Aug 1, 2019
Cited By (2)
US 12,242,510 US 12,242,511