IP Library Granted Patent US 12,287,808
Granted Patent B2
US 12,287,808 · App. 18/472,912 · Granted Apr 29, 2025

Resource management systems and methods

Inventors: Thierry Cruanes (San Mateo, CA); Benoit Dageville (San Carlos, 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,287,808
App. No.
18/472,912
Granted
Apr 29, 2025
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 (38)

1. A method, comprising:

storing at least a portion of database data to one or more caches accessible to a plurality of execution nodes;

receiving, by a resource manager running on a first execution node of the plurality of execution nodes, a query to process the database data, wherein each of the plurality of execution nodes comprises at least one processor and a cache to cache data from a plurality of storage devices to independently process an allocated portion of the database data, wherein the resource manager is scaled independently from other resource managers based on the query and associated database data to be processed, wherein the cache varies in size among the plurality of execution nodes; and

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

2. The method of claim 1 , wherein the resource manager comprises a virtual warehouse manager and wherein the plurality of execution nodes belong to one or more virtual warehouses managed by the virtual warehouse manager.

3. The method of claim 2 , wherein the virtual warehouse manager comprises at least a logical mapping of the one or more virtual warehouses, wherein the logical mapping is based on access control parameters related to security and resource access management settings.

4. The method of claim 1 , further comprising:

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

identifying candidate execution nodes for processing the received query, wherein the candidate execution nodes have already cached the portion of the database data needed to process the query, wherein the query is allocated based at least in part on the retrieved information; and

retrieving the information from the candidate execution nodes.

5. The method of claim 1 , wherein the organization of the database data is stored in a structured and optimized format, and wherein the database data is accessible as a service separate from computing or processing resources.

6. The method of claim 1 , wherein the query is in a form of one or more structured query language (SQL) statements.

7. The method of claim 1 , wherein the at least one processor is a one of a physical processor or a virtual processor.

8. A system comprising:

a memory; and

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

storing at least a portion of database data to one or more caches accessible to a plurality of execution nodes;

receive, in a resource manager running on a first execution node of the plurality of execution nodes, a query to process the database data, wherein each of the plurality of execution nodes comprises at least one processor and a cache to cache data from a plurality of storage devices to independently process an allocated portion of the database data, wherein the resource manager is scaled independently from other resource managers based on the query and associated database data to be processed, wherein the cache varies in size among the plurality of execution nodes; and

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

9. The system of claim 8 , wherein the resource manager comprises a virtual warehouse manager and wherein the plurality of execution nodes belong to one or more virtual warehouses managed by the virtual warehouse manager.

10. The system of claim 9 , wherein the virtual warehouse manager comprises at least a logical mapping of the one or more virtual warehouses, wherein the logical mapping is based on access control parameters related to security and resource access management settings.

11. The system of claim 8 , wherein the processing device is to retrieve information regarding the storage of a portion of the database data to one or more caches accessible to the plurality of execution nodes by:

identifying candidate execution nodes for processing the received query, wherein the candidate execution nodes have already cached the portion of the database data needed to process the query, and wherein the query is allocated based at least in part on the retrieved information; and

retrieving the information from the candidate execution nodes.

12. The system of claim 8 , wherein the organization of the database data is stored in a structured and optimized format, and wherein the database data is accessible as a service separate from computing or processing resources.

13. The system of claim 8 , wherein the query is in a form of one or more structured query language (SQL) statements.

14. The system of claim 8 , wherein the at least one processor is a one of a physical processor or a virtual processor.

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

storing at least a portion of database data to one or more caches accessible to a plurality of execution nodes;

receive, in a resource manager running on a first execution node of the plurality of execution nodes, a query to process the database data, wherein each of the plurality of execution nodes comprises at least one processor and a cache to cache data from a plurality of storage devices to independently process an allocated portion of the database data, wherein the resource manager is scaled independently from other resource managers based on the query and associated database data to be processed, wherein the cache varies in size among the plurality of execution nodes; and

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

16. The non-transitory computer-readable storage medium of claim 15 , wherein the resource manager comprises a virtual warehouse manager and wherein the plurality of execution nodes belong to one or more virtual warehouses managed by the virtual warehouse manager.

17. The non-transitory computer-readable storage medium of claim 16 , wherein the virtual warehouse manager comprises at least a logical mapping of the one or more virtual warehouses, wherein the logical mapping is based on access control parameters related to security and resource access management settings.

18. The non-transitory computer-readable storage medium of claim 15 , further comprising instructions stored thereon that, when executed by the processing device, cause the processing device to:

identify candidate execution nodes for processing the received query, wherein the candidate execution nodes have already cached the portion of the database data needed to process the query; and

retrieve information from the candidate execution nodes.

19. The non-transitory computer-readable storage medium of claim 15 , wherein the organization of the database data is stored in a structured and optimized format, and wherein the database data is accessible as a service separate from computing or processing resources.

20. The non-transitory computer-readable storage medium of claim 15 , wherein the at least one processor is a one of a physical processor or a virtual processor.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 21, 2025
From: SNOWFLAKE COMPUTING, INC.
To: SNOWFLAKE INC.
Reel/Frame 069964/0644 →
CORRECTIVE ASSIGNMENT TO CORRECT THE THE NAME OF THE 3RD INVENTOR PREVIOUSLY RECORDED AT REEL: 69807 FRAME: 844. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Jan 15, 2025
From: CRUANES, THIERRY; DAGEVILLE, BENOIT; ZUKOWSKI, MARCIN
To: SNOWFLAKE COMPUTING INC.
Reel/Frame 069924/0974 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 9, 2025
From: CRUANES, THIERRY; DAGEVILLE, BENOIT; ZUKOWKSI, MARCIN
To: SNOWFLAKE COMPUTING INC.
Reel/Frame 069807/0844 →
Continuity (6)
Continuation 17463357 · Aug 31, 2021
Continuation 17111781 · Dec 4, 2020
Continuation 16447416 · Jun 20, 2019
Continuation 14518884 · Oct 20, 2014
Provisional Application 61941986 · Feb 19, 2014
Related Publication 20240012836A1 · Jan 11, 2024
References Cited (168)
US 5787466A · Berliner · 1998 [cited by applicant]
US 6363411B1 · Dugan · 2002 [cited by applicant]
US 6490590B1 · Fink · 2002 [cited by applicant]
US 6505227B1 · Mirchandaney · 2003 [cited by applicant]
US 6757689B2 · Battas · 2004 [cited by applicant]
US 7280998B1 · Aboujaoude · 2007 [cited by applicant]
US 7823009B1 · Tormasov · 2010 [cited by applicant]
US 8209697B2 · Kobayashi et al. · 2012 [cited by applicant]
US 8341363B2 · Chou · 2012 [cited by applicant]
US 8381015B2 · Kaminski · 2013 [cited by applicant]
US 8386540B1 · Mcalister et al. · 2013 [cited by applicant]
US 8428087B1 · Vincent · 2013 [cited by applicant]
US 8516159B2 · Ananthanarayanan · 2013 [cited by applicant]
US 8516355B2 · Gale · 2013 [cited by applicant]
US 8560887B2 · Behrendt · 2013 [cited by applicant]
US 8640137B1 · Bostic et al. · 2014 [cited by applicant]
US 8706914B2 · Duchesneau · 2014 [cited by applicant]
US 8725875B2 · Supalov · 2014 [cited by applicant]
US 9118538B1 · Lekkalapudi · 2015 [cited by applicant]
US 9152642B2 · Harrison et al. · 2015 [cited by applicant]
US 9171042B1 · Welton · 2015 [cited by applicant]
US 9208032B1 · McAlister · 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 9292523B1 · Todd · 2016 [cited by applicant]
US 9304663B1 · Guo · 2016 [cited by applicant]
US 9335989B2 · Apte et al. · 2016 [cited by applicant]
US 9417897B1 · Klompje et al. · 2016 [cited by applicant]
US 9639562B2 · Raitto et al. · 2017 [cited by applicant]
US 9870269B1 · Viswanathan et al. · 2018 [cited by applicant]
US 9880933B1 · Gupta et al. · 2018 [cited by applicant]
US 10133797B1 · Mishra · 2018 [cited by applicant]
US 10282350B1 · Pathak · 2019 [cited by applicant]
US 11782950B2 · Dageville · 2023 [cited by applicant]
US 20020038308A1 · Cappi · 2002 [cited by applicant]
US 20020120630A1 · Christianson et al. · 2002 [cited by applicant]
US 20030069973A1 · Ganesan · 2003 [cited by applicant]
US 20030154236A1 · Dar · 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 · 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 applicant]
US 20050210049A1 · Foster · 2005 [cited by applicant]
US 20060026154A1 · Altinel · 2006 [cited by applicant]
US 20060059173A1 · Hirsch et al. · 2006 [cited by applicant]
US 20060074872A1 · Gordon · 2006 [cited by applicant]
US 20060136761A1 · Frasier · 2006 [cited by applicant]
US 20060224563A1 · Hanson et al. · 2006 [cited by applicant]
US 20070016555A1 · Ito et al. · 2007 [cited by applicant]
US 20070033247A1 · Martin · 2007 [cited by applicant]
US 20070198656A1 · Mazzaferri et al. · 2007 [cited by applicant]
US 20070220320A1 · Sen · 2007 [cited by applicant]
US 20070276861A1 · Pryce et al. · 2007 [cited by applicant]
US 20070294692A1 · Zhao · 2007 [cited by applicant]
US 20080027788A1 · Lawrence 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 20080065644A1 · Pasupuleti · 2008 [cited by examiner]
US 20080082644A1 · Isard · 2008 [cited by applicant]
US 20090013325A1 · Kobayashi et al. · 2009 [cited by applicant]
US 20090144417A1 · Kisel · 2009 [cited by applicant]
US 20090182836A1 · Aviles et al. · 2009 [cited by applicant]
US 20090254516A1 · Meiyyappan et al. · 2009 [cited by applicant]
US 20090254532A1 · Yang et al. · 2009 [cited by applicant]
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 20100100888A1 · Tene et al. · 2010 [cited by applicant]
US 20100107170A1 · Stehley · 2010 [cited by applicant]
US 20100145929A1 · Berger · 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 20110167033A1 · Strelitz et al. · 2011 [cited by applicant]
US 20110167421A1 · Soundararajan · 2011 [cited by applicant]
US 20110225167A1 · Bhattacharjee 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 examiner]
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 examiner]
US 20120166771A1 · Ringseth · 2012 [cited by applicant]
US 20120173824A1 · Iyigun et al. · 2012 [cited by applicant]
US 20120204187A1 · Breiter et al. · 2012 [cited by applicant]
US 20120233315A1 · Hoffman · 2012 [cited by applicant]
US 20120260050A1 · Kaliannan · 2012 [cited by applicant]
US 20120265881A1 · Chen · 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 20130110778A1 · Taylor et al. · 2013 [cited by applicant]
US 20130110961A1 · Jadhav · 2013 [cited by applicant]
US 20130117305A1 · Varakin · 2013 [cited by applicant]
US 20130124545A1 · Holmberg et al. · 2013 [cited by applicant]
US 20130132764A1 · Shafiee · 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 · 2013 [cited by applicant]
US 20130177239A1 · Shinohara et al. · 2013 [cited by applicant]
US 20130185729A1 · Vasic et al. · 2013 [cited by applicant]
US 20130198459A1 · Joshi · 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 20130262443A1 · Leida · 2013 [cited by applicant]
US 20130282650A1 · Zhang · 2013 [cited by applicant]
US 20130282795A1 · Tsao · 2013 [cited by applicant]
US 20130332614A1 · Brunk · 2013 [cited by applicant]
US 20140013059A1 · Joshi · 2014 [cited by applicant]
US 20140019966A1 · Neuse · 2014 [cited by applicant]
US 20140025638A1 · Hu · 2014 [cited by applicant]
US 20140059226A1 · Messerli · 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 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 20140325182A1 · Varakur · 2014 [cited by applicant]
US 20150106611A1 · Cao et al. · 2015 [cited by applicant]
US 20150121371A1 · Gummaraju · 2015 [cited by applicant]
US 20150186226A1 · Oppermann · 2015 [cited by applicant]
US 20150188782A1 · Carlin et al. · 2015 [cited by applicant]
US 20150234895A1 · Erdogan · 2015 [cited by applicant]
US 20160085643A1 · Mcalister · 2016 [cited by applicant]
US 20160188628A1 · Hartman et al. · 2016 [cited by applicant]
US 20160299932A1 · Pound · 2016 [cited by applicant]
CN 101453398A · 2009 [cited by applicant]
CN 102496060A · 2012 [cited by applicant]
CN 102742251A · 2012 [cited by applicant]
CN 102868542A · 2013 [cited by applicant]
CN 102906738A · 2013 [cited by applicant]
CN 103229146A · 2013 [cited by applicant]
CN 103327067A · 2013 [cited by applicant]
CN 203261358U · 2013 [cited by applicant]
JP 2005056077A · 2005 [cited by applicant]
JP 2009015534A · 2009 [cited by applicant]
JP 2010140362A · 2010 [cited by applicant]
JP 2013196421A · 2013 [cited by applicant]
JP 2014507706A · 2014 [cited by applicant]
WO 2006026659A2 · 2006 [cited by applicant]
WO 2012091844A2 · 2012 [cited by applicant]
WO 2013006157A1 · 2013 [cited by applicant]
WO 2013072232A1 · 2013 [cited by applicant]
WO 2013084078A1 · 2013 [cited by applicant]
Abouzeid, A. 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 (Aug. 1, 2009), pp. 922-933. [cited by applicant]
Appuswamy, Raja et al “Scale-up vs scale-out for Hadoop: Time to rethink?”, Proceedings of the 4th Annual Symposium on Cloud Computing, SOCC '13, vol. 13, Oct. 1, 2013 (Oct. 1, 2013), New York, New York, USA, pp. 1-13. [cited by applicant]
Casalicchio, E., et al., “Autonomic resource provisioning in cloud systems with availability goals”, Aug. 2013, 10 pages. [cited by applicant]
Gupta, et al., “Mirage: Storage provisioning in large data centers using balanced component utilizations”, Jan. 2008, 2 pages. [cited by applicant]
Hollman J. et al, “Empirical observations regarding predictability in user access-behavior in a distributed digital library system”, Parallel and Distributed Processing Symposium, Proceeding International, PDPS 2002, Ab… [cited by applicant]
Maluf, David A., et al, “NASA Technology Transfer System”, Space Mission Challenges for Information Technology (SMC-IT), 2011 IEEE Fourth International Conference on, IEEE, Aug. 2, 2011 (Aug. 2, 2011), pp. 111-117. [cited by applicant]
Melnik, Sergey et al, “Dremel: Interactive Analysis of WebScale Datasets”, Proceedings of the VLDB Endowment, vol. 3, 2010, Jan. 1, 2010, pp. 330-339. [cited by applicant]
“Oracle9i Database New Features, Release 2 (9.2)” Mar. 2002, pp. 166. [cited by applicant]
Stokley, M. et al., Storage provisioning and allocation in a large cloud environment, MBDS '12: Proceedings of the 2012 workshop on Management of big data system; DOI: 10.1145/2378356.2378366, Sep. 2012 (1 page). [cited by applicant]
Tandon, P., et al., International Symposium on Parallel & Distributed Processing, Workshops and PhD Forum, IEEE, May 20, 2013 (May 20, 2013), pp. 1928-1936. [cited by applicant]
Wikipedia “Master/Slave”, retrieved from https://de.wikipedia.org/wiki/Master/Slave on Oct. 8, 2021, 4 pages. [cited by applicant]
Chinese foreign office action in corresponding CN application 2019105957089 dated May 8, 2024 (25 pages). [cited by applicant]