IP Library Granted Patent US 11,157,516
Granted Patent B2
US 11,157,516 · App. 17/141,220 · Granted Oct 26, 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,157,516
App. No.
17/141,220
Granted
Oct 26, 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 provisions 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 a number of the processors 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 (42)

1. A method comprising:

receiving a set of queries comprising one or more queries to be processed by a virtual data warehouse;

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

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

updating a number of the nodes in the set of nodes provisioned based on the utilization of the set of nodes as the set of nodes that are processing the set of queries, wherein updating of the set of storage resources is independent to a change in the number of nodes; and

processing the set of queries using the updated set of nodes.

2. The method of claim 1 , wherein the updating the number of nodes includes increasing the number of nodes in the set of nodes.

3. The method of claim 1 , wherein the updating the number of nodes includes decreasing the number of nodes in the set of nodes.

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

5. The method of claim 1 , further comprising:

receiving an additional query for the set of queries.

6. The method of claim 5 , determining a change in the set of nodes in response to receiving the additional query.

7. The method of claim 1 , further comprising:

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

8. The method of claim 1 , wherein the virtual data warehouse is coupled to a relational database.

9. The method of claim 8 , wherein the relational database is a structured query language database.

10. The method of claim 1 , wherein the virtual 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 system comprising:

a set of storage resources;

a resource manager implemented in a processor, which executes to:

receive a set of queries comprising one or more queries to be processed by a virtual data warehouse;

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

monitor a utilization of the set of nodes as the set of nodes processes the set of queries; and

update a number of the nodes in the set of nodes provisioned based on the utilization of the set of nodes as the set of nodes that are processing the set of queries, wherein updating of the set of storage resources is independent to a change in the number of nodes; and

a plurality of nodes to process the set of queries using the updated set of nodes.

12. The system of claim 11 , wherein the resource manager updates the number of nodes by increasing the number of nodes in the set of nodes.

13. The system of claim 11 , wherein the resource manager updates the number of nodes by decreasing the number of nodes in the set of nodes.

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

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

16. The system of claim 15 , wherein the resource manager determines a change in the set of nodes in response to receiving the additional query.

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

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

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

20. The system of claim 11 , wherein the virtual 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 non-transitory computer-readable medium storing instructions which, when executed by one or more second nodes of a computing device, cause the one or more second nodes to:

receive a set of queries comprising one or more queries to be processed by a virtual data warehouse;

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

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

update a number of the nodes in the set of nodes provisioned based on the utilization of the set of nodes as the set of nodes that are processing the set of queries, wherein updating of the set of storage resources is independent to a change in the number of nodes; and

process the set of queries using the updated set of nodes.

22. The non-transitory computer-readable medium of claim 21 , wherein the updating the number of nodes includes increasing the number of nodes in the set of nodes.

23. The non-transitory computer-readable medium of claim 21 , wherein the updating the number of nodes includes decreasing the number of nodes in the set of nodes.

Assignments (2)
CHANGE OF NAME Recorded Sep 21, 2021
From: SNOWFLAKE COMPUTING, INC.
To: SNOWFLAKE INC.
Reel/Frame 057555/0969 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 14, 2021
From: CRUANES, THIERRY; DAGEVILLE, BENOIT; ZUKOWSKI, MARCIN
To: SNOWFLAKE COMPUTING INC.
Reel/Frame 057481/0326 →
Continuity (5)
Continuation 16905599 · Jun 18, 2020
Continuation 16378371 · Apr 8, 2019
Continuation 14518826 · Oct 20, 2014
Provisional Application 61941986 · Feb 19, 2014
Related Publication 20210124761A1 · Apr 29, 2021
Cited By (2)
US 12,242,510 US 12,242,511