IP Library Granted Patent US 12,013,876
Granted Patent B2
US 12,013,876 · App. 17/873,359 · Granted Jun 18, 2024

Resource management systems and methods

Inventors: Benoit Dageville (Foster City, CA); Thierry Cruanes (San Mateo, CA); Marcin Zukowski (San Mateo, CA)
Assignee: Snowflake Inc.
G06F16/273A61F5/566G06F9/4881G06F9/5016G06F9/5044G06F9/5083G06F9/5088G06F16/148G06F16/1827G06F16/211G06F16/221G06F16/2365G06F16/24532G06F16/24545G06F16/24552G06F16/2456G06F16/2471G06F16/254G06F16/27G06F16/283G06F16/951G06F16/9535G06F16/9538H04L67/1095H04L67/1097H04L67/568
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 12,013,876
App. No.
17/873,359
Granted
Jun 18, 2024
Kind
B2
Abstract

Example resource management systems and methods are described. In one implementation, a system includes a memory and a processing device operatively coupled to the memory. The processing device is to: provide a plurality of execution nodes, each execution node comprising a cache and a processor, each execution node communicatively coupled to a storage platform; determine at least one task associated with processing a received query referencing database data stored in the storage platform; and create a new execution node within the plurality of execution nodes to process the at least one task associated with processing the received query.

Claims (46)

1. A system comprising:

a memory; and

a processing device operatively coupled to the memory, the processing device to:

provide a plurality of execution nodes, each execution node comprising a cache and a processor, each execution node communicatively coupled to a storage platform;

after providing the plurality of execution nodes, receive a query referencing database data stored in the storage platform;

determine a task associated with processing the received query;

create a new execution node comprising cache resources and processing resources, wherein a size of the cache resources of the new execution node is determined upon creation of the new execution node, based at least in part on the task; and

include the new execution node within the plurality of execution nodes to process the task associated with processing the received query, wherein the processing resources of the new execution node are determined when the new execution node is created, based on the task to be processed by the plurality of execution nodes including the new execution node.

2. The system of claim 1 , wherein the storage platform comprises a plurality of storage devices, and

wherein each of the plurality of execution nodes is communicatively coupled to a subset of the plurality of storage devices.

3. The system of claim 1 , wherein creating the new execution node is performed responsive to determining a deficit in at least one of processing resources or caching resources.

4. The system of claim 1 , wherein the processing device is further to determine portions of the database data that are cached within the respective caches of the plurality of execution nodes.

5. The system of claim 1 , wherein the task comprises a first task and a second task, and

wherein the processing device is further to:

allocate the first task of the received query to a first execution node of the plurality of execution nodes responsive to determining that the first task references a first portion of the database data that is stored in the cache of the first execution node; and

allocate the second task of the received query to the new execution node.

6. The system of claim 1 , wherein the respective caches of multiple ones of the plurality of execution nodes cache a same portion of the database data at a same time.

7. A method comprising:

providing a plurality of execution nodes, each execution node comprising a cache and a processor, each execution node communicatively coupled to a storage platform;

after providing the plurality of execution nodes, receive a query referencing database data stored in the storage platform;

determining a task associated with processing the received query;

creating, by a processing device, a new execution node having cache resources and processing resources, wherein a size of the cache resources of the new execution node is determined upon creation of the new execution node, based at least in part on the task; and

include the new execution node within the plurality of execution nodes to process the task associated with processing the received query, wherein the processing resources of the new execution node are determined when the new execution node is created, based on the task to be processed by the plurality of execution nodes including the new execution node.

8. The method of claim 7 , wherein the storage platform comprises a plurality of storage devices, and

wherein each of the plurality of execution nodes is communicatively coupled to a subset of the plurality of storage devices.

9. The method of claim 7 , wherein creating the new execution node is performed responsive to determining a deficit in at least one of processing resources or caching resources.

10. The method of claim 7 , further comprising determining portions of the database data that are cached within the respective caches of the plurality of execution nodes.

11. The method of claim 7 , wherein the task comprises a first task and a second task, and

wherein the method further comprises:

allocating the first task of the received query to a first execution node of the plurality of execution nodes responsive to determining that the first task references a first portion of the database data that is stored in the cache of the first execution node; and

allocating the second task of the received query to the new execution node.

12. The method of claim 7 , wherein the respective caches of multiple ones of the plurality of execution nodes cache a same portion of the database data at a same time.

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

provide a plurality of execution nodes, each execution node comprising a cache and a processor, each execution node communicatively coupled to a storage platform;

after providing the plurality of execution nodes, receive a query referencing database data stored in the storage platform;

determine a task associated with processing the received query;

create, by the processing device, a new execution node comprising cache resources and processing resources, wherein a size of the cache resources of the new execution node is determined upon creation of the new execution node, based at least in part on the task; and

include the new execution node within the plurality of execution nodes to process the task associated with processing the received query, wherein the processing resources of the new execution node are determined when the new execution node is created, based on the task to be processed by plurality of execution nodes including the new execution node.

14. The non-transitory computer-readable medium of claim 13 , wherein the storage platform comprises a plurality of storage devices, and

wherein each of the plurality of execution nodes is communicatively coupled to a subset of the plurality of storage devices.

15. The non-transitory computer-readable medium of claim 13 , wherein creating the new execution node is performed responsive to determining a deficit in at least one of processing resources or caching resources.

16. The non-transitory computer-readable medium of claim 13 , wherein the task comprises a first task and a second task, and

wherein the processing device is further to:

allocate the first task of the received query to a first execution node of the plurality of execution nodes responsive to determining that the first task references a first portion of the database data that is stored in the cache of the first execution node; and

allocate the second task of the received query to the new execution node.

17. The non-transitory computer-readable medium of claim 13 , wherein the respective caches of multiple ones of the plurality of execution nodes cache a same portion of the database data at a same time.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 26, 2022
From: BENOIT GAGEVILLE; THIERRY CRUANES; ZUKOWSKI, MARCIN
To: SNOWFLAKE COMPUTING, INC.
Reel/Frame 060624/0197 →
MERGER AND CHANGE OF NAME Recorded Jul 26, 2022
From: SNOWFLAKE COMPUTING, INC.; SNOWFLAKE INC.
To: SNOWFLAKE INC.
Reel/Frame 060921/0145 →
Continuity (6)
Continuation 17524439 · Nov 11, 2021
Continuation 16816180 · Mar 11, 2020
Continuation 16447416 · Jun 20, 2019
Continuation 14518884 · Oct 20, 2014
Provisional Application 61941986 · Feb 19, 2014
Related Publication 20220358139A1 · Nov 10, 2022