IP Library Granted Patent US 11,093,524
Granted Patent B2
US 11,093,524 · App. 16/810,648 · Granted Aug 17, 2021

Resource provisioning systems and methods

Inventors: Thierry Cruanes (San Mateo, CA); Benoit Dageville (Foster City, 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,093,524
App. No.
16/810,648
Granted
Aug 17, 2021
Kind
B2
Abstract

A method and apparatus managing a set of processors for a set of queries is described. In an exemplary embodiment, a device receives a set of queries for a data warehouse, the set of queries including one or more queries to be processed by the data warehouse. The device further provision a set of processors from a first plurality of processors, where the set of processors to process the set of queries and a set of storage resources to store data for the set of queries. In addition, the device monitors a utilization of the set of processors as the set of processors processes the set of queries. The device additionally updates an amount of the processor resources in the set of processors provisioned based on the utilization. Furthermore, the device processes the set of queries using the updated set of processors.

Claims (55)

1. 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:

receive a set of queries for a data warehouse, the set of queries including one or more queries to be processed by the data warehouse;

provision a set of processors from a first plurality of processors, the set of processors to process the set of queries, a set of storage resources shared by each of the set of processors to store data for the set of queries;

monitor a utilization of the set of processors as the set of processors processes the set of queries;

change an amount of the processor resources in the set of processors based on the utilization of the set of processors as the set of processors that are processing the set of queries, wherein the changing of the set of storage resources is independent to a change in the number of processors; and

process the set of queries using the changed set of processors.

2. The non-transitory computer-readable medium of claim 1 , wherein the changing the number of processors includes at least one of increasing the number of processors in the set of processors or decreasing the number of processors in the set of processors.

3. The non-transitory computer-readable medium of claim 1 , wherein the instructions further cause the one or more second processors to:

monitor a utilization of the set of storage resources as the set of queries are processed by the data warehouse, and

update an amount of the storage resources in the set of storage resources provisioned based on the utilization, wherein the updating of the set of storage resources is independent to a change in the number of processors.

4. The non-transitory computer-readable medium of claim 1 , wherein the utilization is selected from the group consisting of a number of queries running concurrently, a percentage of maximum load, and query processing delay.

5. The non-transitory computer-readable medium of claim 1 , wherein the instructions further cause the one or more second processors to:

receive an additional query for the set of queries.

6. The non-transitory computer-readable medium of claim 5 , determining a change in the set of processors in response to receiving the additional query.

7. The non-transitory computer-readable medium of claim 1 , wherein the instructions further cause the one or more second processors to:

optimize at least one of the queries in the set of queries.

8. The non-transitory computer-readable medium of claim 1 , wherein the data warehouse is coupled to a relational database.

9. The non-transitory computer-readable medium of claim 8 , wherein the relational database is a structured query language database.

10. The non-transitory computer-readable medium of claim 1 , wherein the data warehouse is coupled to a database system that is a multi-tenant database and isolates computing resources and data between a plurality of different customers.

11. A method comprising:

receiving a set of queries for a data warehouse, the set of queries including one or more queries to be processed by the data warehouse;

provisioning a set of processors from a first plurality of processors, the set of processors to process the set of queries, a set of storage resources shared by each of the set of processors to store data for the set of queries;

monitoring a utilization of the set of processors as the set of processors processes the set of queries;

changing an amount of the processor resources in the set of processors based on the utilization of the set of processors as the set of processors that are processing the set of queries, wherein the changing of the set of storage resources is independent to a change in the number of processors; and

processing the set of queries using the changed set of processors.

12. The method of claim 11 , wherein the changing the number of processors includes at least one of increasing the number of processors in the set of processors or decreasing the number of processors in the set of processors.

13. The method of claim 11 , further comprising:

monitoring a utilization of the set of storage resources as the set of queries are processed by the data warehouse, and

updating an amount of the storage resources in the set of storage resources provisioned based on the utilization, wherein the updating of the set of storage resources is independent to a change in the number of processors.

14. The method of claim 11 , wherein the utilization is selected from the group consisting of a number of queries running concurrently, a percentage of maximum load, and query processing delay.

15. The method of claim 11 , further comprising:

receiving an additional query for the set of queries.

16. The method of claim 15 , determining a change in the set of processors in response to receiving the additional query.

17. The method of claim 11 , further comprising:

optimizing at least one of the queries in the set of queries.

18. The method of claim 11 , wherein the data warehouse is coupled to a relational database.

19. The method of claim 18 , wherein the relational database is a structured query language database.

20. The method of claim 11 , wherein the data warehouse is coupled to a database system that is a multi-tenant database and isolates computing resources and data between a plurality of different customers.

21. A system comprising:

a set of storage resources;

a resource manager to:

receive a set of queries for a data warehouse, the set of queries including one or more queries to be processed by the data warehouse;

provision the set of storage resources coupled to the data warehouse from a plurality of storage resources, the set of storage resources shared by each of a set of plurality of processing units to store data for the set of queries;

monitor a utilization of the set of storage resources as the set of queries are processed by the data warehouse; and

change an amount of the storage resources in the set of storage resources based on the utilization of the storage capacity of the set of storage resources as the set of storage resources that are used in processing the set of queries, wherein the changing of the set of storage resources is independent to a change in a number of processing units in the plurality of processing units; and

the plurality of processing units to process the set of queries using the changed amount of storage resources.

22. The system of claim 21 , wherein the resource manager changes the amount of storage resources by increasing the amount of storage resources in the set of storage resources.

23. The system of claim 21 , wherein the resource manager changed the amount of storage resources by decreasing the amount of storage resources in the set of storage resources.

24. The system of claim 21 , wherein the utilization is selected from the group consisting of a number of queries running concurrently, a percentage of maximum load, and query processing delay.

25. The system of claim 21 , wherein the resource manager further to receive an additional query for the set of queries.

26. The system of claim 25 , wherein the resource manager determines a change in the set of storage resources in response to receiving the additional query.

27. The system of claim 21 , wherein the resource manager further to optimize at least one of the queries in the set of queries.

28. The system of claim 21 , wherein the data warehouse is coupled to a relational database.

29. The system of claim 28 , wherein the relational database is a structured query language database.

30. The system of claim 21 , wherein the data warehouse is coupled to a database system that is a multi-tenant database and isolates computing resources and data between a plurality of different customers.

Assignments (2)
CHANGE OF NAME Recorded Jul 9, 2021
From: SNOWFLAKE COMPUTING INC.
To: SNOWFLAKE INC.
Reel/Frame 056820/0106 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 5, 2020
From: DAGEVILLE, BENOIT; CRUANES, THIERRY; ZUKOWSKI, MARCIN
To: SNOWFLAKE COMPUTING, INC.
Reel/Frame 052033/0183 →
Continuity (4)
Continuation 16378371 · Apr 8, 2019
Continuation 14518826 · Oct 20, 2014
Provisional Application 61941986 · Feb 19, 2014
Related Publication 20200201883A1 · Jun 25, 2020