IP Library Granted Patent US 11,163,794
Granted Patent B2
US 11,163,794 · App. 16/827,103 · Granted Nov 2, 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,163,794
App. No.
16/827,103
Granted
Nov 2, 2021
Kind
B2
Abstract

Example resource provisioning systems and methods are described. In one implementation, multiple processing resources are provided within a data warehouse. The processing resources include at least one processor and at least one storage device. At least one query to process database data is received. At least some of the processing resources may process the database data. When a processing capacity of the processing resources has reached a threshold processing capacity, the processing capacity is automatically scaled by adding at least one additional processor to the data warehouse.

Claims (50)

1. A method comprising:

providing a plurality of processing resources associated with a data warehouse, wherein the plurality of processing resources comprising at least one processor and at least one storage device and wherein the plurality of processing resources are part of an execution platform;

receiving at least one processing request to process database data stored on a storage platform comprising a plurality of shared storage devices in association with the data warehouse, wherein the plurality of processing resources are divided into groups of processing resources;

determining that a portion of data associated with a processing request is pre-cached by a first group of the plurality of processing resources based on metadata including information regarding pre-cached data on the first group of the plurality of processing resources;

providing the processing request to the first group of the plurality of processing resources responsive to determining that the portion of data associated with the processing request is pre-cached by the first group of the plurality of processing resources;

determining that one or more of a processing capacity of the first group of the plurality of processing resources has reached a threshold processing capacity and a storage capacity associated with the plurality of computation resources has reached a threshold storage capacity; and

automatically scaling one or more of the processing capacity of the first group of the plurality of processing resources by adding additional processing resources to the data warehouse and the storage capacity of the storage platform by adding at least one additional storage device, wherein the processing capacity and the storage capacity are independently scalable and wherein the processing capacity is allocated within the execution platform.

2. The method of claim 1 , wherein adding additional processing resources comprises adding at least one additional processor to process the at least one request to process database data stored in the data warehouse.

3. The method of claim 2 , further comprising:

determining that the at least one additional processor is no longer needed; and

removing the at least one additional processor from the data warehouse.

4. The method of claim 2 , wherein adding at least one additional processor to the data warehouse is accomplished without affecting a storage capacity of the plurality of shared storage devices.

5. The method of claim 1 , wherein determining that the processing capacity has reached a threshold processing capacity comprises determining that a current query processing delay has exceeded a threshold delay.

6. The method of claim 1 , wherein each processing resource comprises a processor and a storage device.

7. The method of claim 1 , wherein the storage platform is physically separate from the plurality of processing resources.

8. The method of claim 1 , wherein the processing requests comprise a data retrieval request or a data storage request.

9. A system, comprising:

a processing device programmed to:

provide a plurality of processing resources associated with a data warehouse, wherein the plurality of processing resources comprising at least one processor and at least one storage device and wherein the plurality of processing resources are part of an execution platform;

receive at least one processing request to process database data stored on a storage platform comprising a plurality of shared storage devices in association with the data warehouse, wherein the plurality of processing resources are divided into groups of processing resources;

determine that a portion of data associated with a processing request is pre-cached by a first group of the plurality of processing resources based on metadata including information regarding pre-cached data on the first group of the plurality of processing resources;

provide the processing request to the first group of the plurality of processing resources responsive to determining that the portion of data associated with the processing request is pre-cached by the first group of the plurality of processing resources;

determine that one or more of a processing capacity of the first group of the plurality of processing resources has reached a threshold processing capacity and a storage capacity associated with the plurality of computation resources has reached a threshold storage capacity; and

automatically scale one or more of the processing capacity of the first group of the plurality of processing resources by adding additional processing resources to the data warehouse and the storage capacity of the storage platform by adding at least one additional storage device, wherein the processing capacity and the storage capacity are independently scalable and wherein the processing capacity is allocated within the execution platform.

10. The system of claim 9 , wherein adding additional processing resources comprises adding at least one additional processor to process the at least one request to process database data stored in the data warehouse.

11. The system of claim 10 , wherein the processing device is further programmed to:

determine that the at least one additional processor is no longer needed; and

remove the at least one additional processor from the data warehouse.

12. The system of claim 10 , wherein adding at least one additional processor to the data warehouse is accomplished without affecting a storage capacity of the plurality of shared storage devices.

13. The system of claim 9 , wherein determining that the processing capacity has reached a threshold processing capacity comprises determining that a current query processing delay has exceeded a threshold delay.

14. The system of claim 9 , wherein each processing resource comprises a processor and a storage device.

15. The system of claim 9 , wherein the storage platform is physically separate from the plurality of processing resources.

16. The system of claim 9 , wherein the processing requests comprise a data retrieval request or a data storage request.

17. A non-transitory computer-readable medium having instructions stored thereon that, when executed by a processor, cause the processor to:

provide a plurality of processing resources associated with a data warehouse, wherein the plurality of processing resources comprising at least one processor and at least one storage device and wherein the plurality of processing resources are part of an execution platform;

receive at least one processing request to process database data stored on a storage platform comprising a plurality of shared storage devices in association with the data warehouse, wherein:

the plurality of processing resources are divided into groups of processing resources;

determine that a portion of data associated with a processing request is pre-cached by a first group of the plurality of processing resources based on metadata including information regarding pre-cached data on the first group of the plurality of processing resources;

provide the processing request to the first group of the plurality of processing resources responsive to determining that the portion of data associated with the processing request is pre-cached by the first group of the plurality of processing resources;

determine that one or more of a processing capacity of the first group of the plurality of processing resources has reached a threshold processing capacity and a storage capacity associated with the plurality of computation resources has reached a threshold storage capacity; and

automatically scale one or more of the processing capacity of the first group of the plurality of processing resources by adding additional processing resources to the data warehouse and the storage capacity of the storage platform by adding at least one additional storage device, wherein the processing capacity and the storage capacity are independently scalable and wherein the processing capacity is allocated within the execution platform.

18. The non-transitory computer-readable medium of claim 17 , wherein adding additional processing resources comprises adding at least one additional processor to process the at least one request to process database data stored in the data warehouse.

19. The non-transitory computer-readable medium of claim 18 , wherein the instructions further cause the processor to:

determine that the at least one additional processor is no longer needed; and

remove the at least one additional processor from the data warehouse.

20. The non-transitory computer-readable medium of claim 18 , wherein adding at least one additional processor to the data warehouse is accomplished without affecting a storage capacity of the plurality of shared storage devices.

21. The non-transitory computer-readable medium of claim 17 , wherein determining that the processing capacity has reached a threshold processing capacity comprises determining that a current query processing delay has exceeded a threshold delay.

22. The non-transitory computer-readable medium of claim 17 , wherein each processing resource comprises a processor and a storage device.

23. The non-transitory computer-readable medium of claim 17 , wherein the storage platform is physically separate from the plurality of processing resources.

24. The non-transitory computer-readable medium of claim 17 , wherein the processing requests comprise a data retrieval request or a data storage request.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 1, 2021
From: ZUKOWSKI, MARCIN
To: SNOWFLAKE COMPUTING INC.
Reel/Frame 057674/0581 →
CHANGE OF NAME Recorded Sep 27, 2021
From: SNOWFLAKE COMPUTING INC.
To: SNOWFLAKE INC.
Reel/Frame 057608/0837 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 24, 2021
From: DAGEVILLE, BENOIT; CRUANES, THIERRY
To: SNOWFLAKE COMPUTING INC.
Reel/Frame 057595/0735 →
Continuity (5)
Continuation 16741660 · Jan 13, 2020
Continuation 15403654 · Jan 11, 2017
Continuation 14518898 · Oct 20, 2014
Provisional Application 61941986 · Feb 19, 2014
Related Publication 20200226148A1 · Jul 16, 2020