IP Library Granted Patent US 11,132,380
Granted Patent B2
US 11,132,380 · App. 17/111,781 · Granted Sep 28, 2021

Resource management systems and methods

Inventors: Benoit Dageville (Seattle, WA); 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,132,380
App. No.
17/111,781
Granted
Sep 28, 2021
Kind
B2
Abstract

Example resource management systems and methods are described. In one implementation, a resource manager is configured to manage data processing tasks associated with multiple data elements. An execution platform is coupled to the resource manager and includes multiple execution nodes configured to store data retrieved from multiple remote storage devices. Each execution node includes a cache and a processor, where the cache and processor are independent of the remote storage devices. A metadata manager is configured to access metadata associated with at least a portion of the multiple data elements.

Claims (50)

1. A method, comprising:

receiving, by a resource manager running on a first executor node of a plurality of executor nodes, a query to process database data, wherein each of the plurality of executor nodes comprises virtual resources including at least one CPU and a cache to cache data from a plurality of storage devices;

retrieving, by the resource manager, information regarding storage of at least a portion of the database data to one or more caches accessible to a plurality of execution nodes; and

allocating, based at least in part on the retrieved information, the query to one or more of the plurality of executor nodes with access to one or more caches storing at least a portion of the database data, the one or more execution nodes to process the database data based at least in part on an organization of the database data within the plurality of cache memories of the plurality of executor nodes and the plurality of storage devices.

2. The method of claim 1 , further comprising determining an organization of the database data within a plurality of cache memories of the plurality of executor nodes based on metadata associated with the database data.

3. The method of claim 1 , wherein allocating the query comprises:

determining more than one task required to process the query; and

allocating the more than one task to the one or more executor nodes.

4. The method of claim 3 , wherein allocating the query to one or more of the plurality of executor nodes further comprises:

determining which executor nodes of the plurality of executor nodes already cache at least a portion of the database data needed to process the query in a respective cache based on the organization of the database data within a plurality of caches of the plurality of executor nodes and the plurality of storage devices; and

allocating the query to one or more of the executor nodes that already cache at least a portion of the database data.

5. The method of claim 4 , wherein portions of the database data are allocated within one or more of a plurality of caches of the plurality of executor nodes based on how frequently the database data is accessed.

6. The method of claim 1 , wherein the plurality of executor nodes is organized into one or more virtual warehouses, each of the one or more virtual warehouses to dynamically communicate with a subset of the plurality of storage devices based on the query.

7. The method of claim 6 , wherein the one or more virtual warehouses are logically mapped with each other.

8. The method of claim 1 , wherein the plurality of executor nodes is external to and separate from the plurality of storage devices.

9. The method of claim 1 , wherein the plurality of storage devices comprises a virtual database.

10. A system, comprising:

a memory; and

one or more processors operatively coupled to the memory, the one or more processors to:

receive, by a resource manager running on a first executor node of a plurality of executor nodes, a query to process database data, wherein each of the plurality of executor nodes comprises virtual resources including at least one CPU core and a cache to cache data from a plurality of storage devices;

retrieve, by the resource manager, information regarding storage of at least a portion of the database data to one or more caches accessible to a plurality of execution nodes; and

allocate, based at least in part on the retrieved information, the query to one or more of the plurality of executor nodes with access to one or more caches storing at least a portion of the database data, the one or more execution nodes to process the database data based at least in part on an organization of the database data within the plurality of cache memories of the plurality of executor nodes and the plurality of storage devices.

11. The system of claim 10 , wherein the one or more processors are further to determine an organization of the database data within a plurality of cache memories of the plurality of executor nodes based on metadata associated with the database data.

12. The system of claim 10 , wherein to allocate the query the one or more processors are to:

determine more than one task required to process the query; and

allocate the more than one task to the one or more executor nodes.

13. The system of claim 12 , wherein to allocate the query to one or more of the plurality of executor nodes, the one or more processors are further to:

determine which executor nodes of the plurality of executor nodes already cache at least a portion of the database data needed to process the query in a respective cache based on the organization of the database data within a plurality of caches of the plurality of executor nodes and the plurality of storage devices; and

allocate the query to one or more of the executor nodes that already cache at least a portion of the database data.

14. The system of claim 13 , wherein portions of the database data are allocated within one or more of a plurality of caches of the plurality of executor nodes based on how frequently the database data is accessed.

15. The system of claim 10 , wherein the plurality of executor nodes is organized into one or more virtual warehouses, each of the one or more virtual warehouses to dynamically communicate with a subset of the plurality of storage devices based on the query.

16. The system of claim 15 , wherein the one or more virtual warehouses are logically mapped with each other.

17. The system of claim 10 , wherein the plurality of executor nodes is external to and separate from the plurality of storage devices.

18. The system of claim 10 , wherein the plurality of storage devices comprises a virtual database.

19. A non-transitory computer-readable medium having instructions stored thereon which, when executed by one or more processors, causes the one or more processors to:

receive, by a resource manager running on a first executor node of a plurality of executor nodes, a query to process database data, wherein each of the plurality of executor nodes comprises virtual resources including at least one CPU core and a cache to cache data from a plurality of storage devices;

retrieve, by the resource manager, information regarding storage of at least a portion of the database data to one or more caches accessible to a plurality of execution nodes; and

allocate, based at least in part on the retrieved information, the query to one or more of the plurality of executor nodes with access to one or more caches storing at least a portion of the database data, the one or more execution nodes to process the database data based at least in part on an organization of the database data within the plurality of cache memories of the plurality of executor nodes and the plurality of storage devices.

20. The non-transitory computer-readable medium of claim 19 , wherein the one or more processors are further to determine an organization of the database data within a plurality of cache memories of the plurality of executor nodes based on metadata associated with the database data.

21. The non-transitory computer-readable medium of claim 19 , wherein to allocate the query the one or more processors are to:

determine more than one task required to process the query; and

allocate the more than one task to the one or more executor nodes.

22. The non-transitory computer-readable medium of claim 21 , wherein to allocate the query to one or more of the plurality of executor nodes, the one or more processors are further to:

determine which executor nodes of the plurality of executor nodes already cache at least a portion of the database data needed to process the query in a respective cache based on the organization of the database data within a plurality of caches of the plurality of executor nodes and the plurality of storage devices; and

allocate the query to one or more of the executor nodes that already cache at least a portion of the database data.

23. The non-transitory computer-readable medium of claim 22 , wherein portions of the database data are allocated within one or more of a plurality of caches of the plurality of executor nodes based on how frequently the database data is accessed.

24. The non-transitory computer-readable medium of claim 19 , wherein the plurality of executor nodes is organized into one or more virtual warehouses, each of the one or more virtual warehouses to dynamically communicate with a subset of the plurality of storage devices based on the query.

25. The non-transitory computer-readable medium of claim 24 , wherein the one or more virtual warehouses are logically mapped with each other.

26. The non-transitory computer-readable medium of claim 19 , wherein the plurality of executor nodes is external to and separate from the plurality of storage devices.

27. The non-transitory computer-readable medium of claim 19 , wherein the plurality of storage devices comprises a virtual database.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 4, 2020
From: DAGEVILLE, BENOIT; CRUANES, THIERRY; ZUKOWSKI, MARCIN
To: SNOWFLAKE COMPUTING, INC.
Reel/Frame 054544/0491 →
CHANGE OF NAME Recorded Dec 4, 2020
From: SNOWFLAKE COMPUTING, INC.
To: SNOWFLAKE INC.
Reel/Frame 054595/0500 →
Continuity (4)
Continuation 16447416 · Jun 20, 2019
Continuation 14518884 · Oct 20, 2014
Provisional Application 61941986 · Feb 19, 2014
Related Publication 20210089554A1 · Mar 25, 2021
Cited By (1)
US 12,619,631