IP Library Granted Patent US 12,314,285
Granted Patent B2
US 12,314,285 · App. 18/738,875 · Granted May 27, 2025

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,314,285
App. No.
18/738,875
Granted
May 27, 2025
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 receive a query referencing database data stored in a storage platform, determine a task associated with processing the received query, and create an execution node comprising cache resources and processing resources. Furthermore, a size of the cache resources of the execution node is determined upon creation of the execution node, based at least in part on the task, and processing resources of the execution node are determined upon creation of the execution node, based at least in part on the task. The execution node is included within a plurality of execution nodes to process the task associated with processing the received query.

Claims (52)

1. A system comprising:

a memory; and

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

receive a query referencing database data stored in a storage platform;

determine a task associated with processing the received query;

create, by the processing device, an execution node comprising cache resources and processing resources, wherein:

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

processing resources of the execution node are determined upon creation of the execution node, based at least in part on the task; and

include the execution node within a plurality of execution nodes to process the task associated with processing the received query.

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 at least one 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 a size of the cache of the new execution node is dynamically determined upon creation of the new execution node, based at least in part on the least one task associated with processing the received query to be processed by the new execution node.

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

8. A method comprising:

receiving a query referencing database data stored in a storage platform;

determining a task associated with processing the received query;

creating, by a processing device, an execution node comprising cache resources and processing resources, wherein:

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

processing resources of the execution node are determined upon creation of the execution node, based at least in part on the task; and

including the execution node within a plurality of execution nodes to process the task associated with processing the received query.

9. The method of claim 8 , 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.

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

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

12. The method of claim 8 , wherein the at least one task comprises a first task and a second task, and

wherein 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.

13. The method of claim 8 , wherein a size of the cache of the new execution node is dynamically determined upon creation of the new execution node, based at least in part on the least one task associated with processing the received query to be processed by the new execution node.

14. The method of claim 8 , 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.

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

receive a query referencing database data stored in a storage platform;

determine a task associated with processing the received query;

create an execution node comprising cache resources and processing resources, wherein:

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

processing resources of the execution node are determined upon creation of the execution node, based at least in part on the task; and

include the execution node within a plurality of execution nodes to process the task associated with processing the received query.

16. The non-transitory computer-readable medium of claim 15 , 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.

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

18. The non-transitory computer-readable medium of claim 15 , wherein the at least one 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.

19. The non-transitory computer-readable medium of claim 15 , wherein a size of the cache of the new execution node is dynamically determined upon creation of the new execution node, based at least in part on the least one task associated with processing the received query to be processed by the new execution node.

20. The non-transitory computer-readable medium of claim 15 , 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)
CHANGE OF NAME Recorded Mar 7, 2025
From: SNOWFLAKE COMPUTING, INC.
To: SNOWFLAKE INC.
Reel/Frame 070448/0582 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 26, 2025
From: DAGEVILLE, BENOIT; CRUANES, THIERRY; ZUKOWSKI, MARCIN
To: SNOWFLAKE COMPUTING INC.
Reel/Frame 070334/0148 →
Continuity (7)
Continuation 17873359 · Jul 26, 2022
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 20240330319A1 · Oct 3, 2024
References Cited (159)
US 3640137A · Allen et al. · 1972 [cited by applicant]
US 3725875A · Choate · 1973 [cited by applicant]
US 5787466A · Berliner · 1998 [cited by applicant]
US 6490590B1 · Fink · 2002 [cited by applicant]
US 6505227B1 · Mirchandaney et al. · 2003 [cited by applicant]
US 6757689B2 · Battas et al. · 2004 [cited by applicant]
US 7111019B1 · Nishizawa et al. · 2006 [cited by applicant]
US 7280998B1 · Aboujaoude · 2007 [cited by applicant]
US 7823009B1 · Tormasov et al. · 2010 [cited by applicant]
US 7844608B2 · Natkovich · 2010 [cited by applicant]
US 8209697B2 · Kobayashi et al. · 2012 [cited by applicant]
US 8341363B2 · Chou et al. · 2012 [cited by applicant]
US 8381015B2 · Kaminski · 2013 [cited by applicant]
US 8428087B1 · Vincent · 2013 [cited by applicant]
US 8516159B2 · Anathanarayanan et al. · 2013 [cited by applicant]
US 8516355B2 · Gale et al. · 2013 [cited by applicant]
US 8560887B2 · Behrendt et al. · 2013 [cited by applicant]
US 8706914B2 · Duchesneau · 2014 [cited by applicant]
US 8769537B1 · Ruggiero · 2014 [cited by examiner]
US 9118538B1 · Lekkalapudi · 2015 [cited by applicant]
US 9152642B2 · Harrison et al. · 2015 [cited by applicant]
US 9164702B1 · Nesbit et al. · 2015 [cited by applicant]
US 9171042B1 · Welton et al. · 2015 [cited by applicant]
US 9210100B2 · Van Der Linden et al. · 2015 [cited by applicant]
US 9253017B2 · Adlung et al. · 2016 [cited by applicant]
US 9335989B2 · Apte et al. · 2016 [cited by applicant]
US 9336272B1 · Thombre · 2016 [cited by applicant]
US 9417897B1 · Klompje et al. · 2016 [cited by applicant]
US 9602423B2 · Suchter et al. · 2017 [cited by applicant]
US 9639562B2 · Raitto et al. · 2017 [cited by applicant]
US 9870269B1 · Viswanathan · 2018 [cited by examiner]
US 9880933B1 · Gupta et al. · 2018 [cited by applicant]
US 10282350B1 · Pathak · 2019 [cited by applicant]
US 10528262B1 · Shmuylovich et al. · 2020 [cited by applicant]
US 20020038308A1 · Cappi · 2002 [cited by applicant]
US 20020120630A1 · Christianson et al. · 2002 [cited by applicant]
US 20030069973A1 · Ganesan et al. · 2003 [cited by applicant]
US 20030158884A1 · Alford, Jr. · 2003 [cited by applicant]
US 20030177239A1 · Shinohara et al. · 2003 [cited by applicant]
US 20040098359A1 · Bayliss · 2004 [cited by applicant]
US 20040098447A1 · Verbeke et al. · 2004 [cited by applicant]
US 20040167904A1 · Wen et al. · 2004 [cited by applicant]
US 20040181522A1 · Jardin · 2004 [cited by applicant]
US 20050081210A1 · Day · 2005 [cited by examiner]
US 20050210049A1 · Foster · 2005 [cited by applicant]
US 20060059173A1 · Hirsch et al. · 2006 [cited by applicant]
US 20060074872A1 · Gordon · 2006 [cited by applicant]
US 20060136354A1 · Bell et al. · 2006 [cited by applicant]
US 20060136761A1 · Frasier et al. · 2006 [cited by applicant]
US 20060224563A1 · Hanson et al. · 2006 [cited by applicant]
US 20070033247A1 · Martin · 2007 [cited by applicant]
US 20070174290A1 · Narang · 2007 [cited by applicant]
US 20070198656A1 · Mazzaferri et al. · 2007 [cited by applicant]
US 20070276861A1 · Pryce et al. · 2007 [cited by applicant]
US 20070294692A1 · Zhao et al. · 2007 [cited by applicant]
US 20080021987A1 · Bates · 2008 [cited by applicant]
US 20080027788A1 · Said et al. · 2008 [cited by applicant]
US 20080027920A1 · Schipunov et al. · 2008 [cited by applicant]
US 20080027965A1 · Garret et al. · 2008 [cited by applicant]
US 20080082644A1 · Isard et al. · 2008 [cited by applicant]
US 20080091806A1 · Shen · 2008 [cited by applicant]
US 20090182836A1 · Aviles et al. · 2009 [cited by applicant]
US 20090183152A1 · Yang · 2009 [cited by examiner]
US 20090254516A1 · Meiyyappan et al. · 2009 [cited by applicant]
US 20090254532A1 · Yang et al. · 2009 [cited by applicant]
US 20090254774A1 · Chamdani · 2009 [cited by examiner]
US 20090300043A1 · Maclennan · 2009 [cited by applicant]
US 20100005054A1 · Smith et al. · 2010 [cited by applicant]
US 20100031267A1 · Maessen et al. · 2010 [cited by applicant]
US 20100083264A1 · Mehta · 2010 [cited by applicant]
US 20100100888A1 · Tene et al. · 2010 [cited by applicant]
US 20100107170A1 · Stehley · 2010 [cited by applicant]
US 20100145929A1 · Burger et al. · 2010 [cited by applicant]
US 20100145939A1 · Burger · 2010 [cited by applicant]
US 20100179940A1 · Gilder et al. · 2010 [cited by applicant]
US 20100199042A1 · Bates · 2010 [cited by applicant]
US 20110145307A1 · Ananthanarayanan et al. · 2011 [cited by applicant]
US 20110161488A1 · Anderson et al. · 2011 [cited by applicant]
US 20110167421A1 · Soundararajan · 2011 [cited by applicant]
US 20110225167A1 · Bhattacharjee et al. · 2011 [cited by applicant]
US 20110225299A1 · Nathuji et al. · 2011 [cited by applicant]
US 20110246448A1 · Tatemura · 2011 [cited by applicant]
US 20110302151A1 · Abadi et al. · 2011 [cited by applicant]
US 20120005307A1 · Das et al. · 2012 [cited by applicant]
US 20120047107A1 · Doddavula · 2012 [cited by applicant]
US 20120054182A1 · Gupta · 2012 [cited by applicant]
US 20120101860A1 · Ezzat · 2012 [cited by applicant]
US 20120109888A1 · Zhang et al. · 2012 [cited by applicant]
US 20120110570A1 · Jacobson · 2012 [cited by applicant]
US 20120158650A1 · Andre · 2012 [cited by applicant]
US 20120166771A1 · Ringseth · 2012 [cited by applicant]
US 20120173824A1 · Iyigun et al. · 2012 [cited by applicant]
US 20120191641A1 · Crupi · 2012 [cited by applicant]
US 20120204187A1 · Breiter et al. · 2012 [cited by applicant]
US 20120233315A1 · Hoffman et al. · 2012 [cited by applicant]
US 20120260050A1 · Kaliannan · 2012 [cited by applicant]
US 20120265881A1 · Chen et al. · 2012 [cited by applicant]
US 20120296883A1 · Ganesh et al. · 2012 [cited by applicant]
US 20120311065A1 · Ananthanarayanan et al. · 2012 [cited by applicant]
US 20120323971A1 · Pasupuleti · 2012 [cited by applicant]
US 20130007753A1 · Jain · 2013 [cited by applicant]
US 20130124545A1 · Holmberg et al. · 2013 [cited by applicant]
US 20130110778A1 · Taylor et al. · 2013 [cited by applicant]
US 20130110961A1 · Jadhav · 2013 [cited by applicant]
US 20130117305A1 · Varakin et al. · 2013 [cited by applicant]
US 20130132967A1 · Soundararajan · 2013 [cited by applicant]
US 20130145375A1 · Kang · 2013 [cited by applicant]
US 20130151884A1 · Hsu · 2013 [cited by applicant]
US 20130174146A1 · Dasgupta et al. · 2013 [cited by applicant]
US 20130177239A1 · Ueda et al. · 2013 [cited by applicant]
US 20130198459A1 · Joshi et al. · 2013 [cited by applicant]
US 20130205028A1 · Crockett et al. · 2013 [cited by applicant]
US 20130205092A1 · Roy et al. · 2013 [cited by applicant]
US 20130218837A1 · Bhatnagar · 2013 [cited by applicant]
US 20130263117A1 · Konik et al. · 2013 [cited by applicant]
US 20130282650A1 · Zhang et al. · 2013 [cited by applicant]
US 20130282795A1 · Tsao · 2013 [cited by applicant]
US 20130332484A1 · Gajic · 2013 [cited by applicant]
US 20130332614A1 · Brunk et al. · 2013 [cited by applicant]
US 20140013059A1 · Joshi et al. · 2014 [cited by applicant]
US 20140025638A1 · Hu · 2014 [cited by applicant]
US 20140059226A1 · Messerli · 2014 [cited by applicant]
US 20140067852A1 · Wong · 2014 [cited by applicant]
US 20140095646A1 · Chan · 2014 [cited by applicant]
US 20140109095A1 · Farkash · 2014 [cited by applicant]
US 20140115091A1 · Lee · 2014 [cited by applicant]
US 20140136473A1 · Faerber · 2014 [cited by applicant]
US 20140143787A1 · Bostic · 2014 [cited by applicant]
US 20140149461A1 · Wijayaratne · 2014 [cited by applicant]
US 20140173594A1 · Ng et al. · 2014 [cited by applicant]
US 20140195558A1 · Murthy et al. · 2014 [cited by applicant]
US 20140310259A1 · Tian · 2014 [cited by applicant]
US 20140379725A1 · Choe · 2014 [cited by applicant]
US 20150106611A1 · Cao et al. · 2015 [cited by applicant]
US 20150120224A1 · Siebel · 2015 [cited by applicant]
US 20150121371A1 · Gummaraju et al. · 2015 [cited by applicant]
US 20150149503A1 · Wollrath et al. · 2015 [cited by applicant]
US 20150188782A1 · Carlin et al. · 2015 [cited by applicant]
US 20150199408A1 · Wulff · 2015 [cited by applicant]
US 20150234895A1 · Erdogan et al. · 2015 [cited by applicant]
US 20150256484A1 · Cameron · 2015 [cited by applicant]
US 20160188628A1 · Hartman et al. · 2016 [cited by applicant]
US 20160373405A1 · Miller · 2016 [cited by applicant]
CN 102496060A · 2012 [cited by applicant]
CN 203261358U · 2013 [cited by applicant]
JP 2005056077 · 2005 [cited by applicant]
JP 2009015534A · 2022 [cited by applicant]
WO 2006026659 · 2006 [cited by applicant]
WO 2013006157 · 2013 [cited by applicant]
WO 2013072232 · 2013 [cited by applicant]
WO 2013084078 · 2013 [cited by applicant]
Aiia Abouzeid et al: “HadoopDB”, Proceedings of the VLDB Endowment; [ACM Digital Library], Assoc. of Computing Machinery, New York, NY, vol. 2, No. 1, Aug. 1, 2009, pp. 922-933. [cited by applicant]
Burroughs, et al.: “Oracle9i Database New Features, Release 2 (9.2)” Mar. 2002, pp. 166. [cited by applicant]
Melnik, et al: “Dremel: Interactive Analysis of Web-Scale Datasets”, Proceedings of the VLDB Endowment, vol. 3, 2010, Jan. 1, 2010, pp. 330-339. [cited by applicant]
Maluf et al., “NASA Technology Transfer System” Space Missiong Challenges for Information Technology (SMC-IT), 2011 IEEE Fourth International Conference on IEEE, Aug. 2, 2011, pp. 111-117. [cited by applicant]
Hollmann Etal, “Empirical observations regarding predictability in user access-behavior in a distributed digital library system”, Parallel and Distributed Processing Program Symposium, Proceedings International, IPDPS 2… [cited by applicant]
Stokley et al., “Storage provisioning and allocation in a large cloud environment”, Sep. 2012, 3 pages. (Abstract only). [cited by applicant]
Gupta et al., “MIRAGE: Storage provisioning in large data centers using balanced component utilizations”, Jan. 2008, 4 pages. (Abstract only). [cited by applicant]
Casalicchio et al, “Autonomic resource provisioning in cloud systems with availability goals”, Aug. 2013, 10 pages. [cited by applicant]