IP Library Granted Patent US 12,488,020
Granted Patent B2
US 12,488,020 · App. 18/633,129 · Granted Dec 2, 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,488,020
App. No.
18/633,129
Granted
Dec 2, 2025
Kind
B2
Abstract

Example resource management systems and methods are described. In one implementation, a resource manager is to be coupled to one or more virtual data warehouse instances that each comprise a plurality of computing resources. A resource manager receives a query directed to database data. The resource manager determines a task associated with the query. The resource manager distributes the task to a first virtual data warehouse instance of the plurality of virtual data warehouse instances. The resource manager determines that the first virtual data warehouse instance of the plurality of virtual data warehouse instances no longer accesses the database data. The resource manager reconfigures the first virtual data warehouse instance to delete a communication between the first virtual data warehouse instance and the database.

Claims (63)

1 . A system, comprising:

a resource manager comprising a software program stored in memory and executed by a processing device, the resource manager to be coupled to a plurality of virtual data warehouse instances that each comprise a plurality of computing resources, the plurality of virtual data warehouse instances to be coupled to a database, the resource manager configured to:

receive a query directed to database data stored in the database;

determine a task associated with the query;

distribute the task to a first virtual data warehouse instance of the plurality of virtual data warehouse instances;

determine that the first virtual data warehouse instance of the plurality of virtual data warehouse instances no longer accesses the database data;

reconfigure the first virtual data warehouse instance to delete a communication between the first virtual data warehouse instance and the database;

maintain a logical mapping between the plurality of virtual data warehouse instances and the database, and

dynamically modify the logical mapping based on access patterns of the virtual data warehouse instances.

2 . The system of claim 1 , wherein the database is stored in a data store comprising a plurality of storage devices.

3 . The system of claim 2 , wherein the data store further comprises a virtual database.

4 . The system of claim 1 , wherein the resource manager is external to and separate from the computing resources of the plurality of virtual data warehouse instances.

5 . The system of claim 1 , wherein each of the plurality of computing resources comprises at least one processor.

6 . The system of claim 1 , wherein the query is in a form of one or more SQL statements.

7 . The system of claim 6 , wherein the resource manager is further configured to identify at least one storage device that is associated with database data identified in the query.

8 . The system of claim 1 , wherein the resource manager to:

configure, on demand, a computing resource of the plurality of virtual data warehouse instances.

9 . The system of claim 8 , wherein the resource manager to at least one of:

configure a number of processors of the computing resource;

configure a storage capacity of a cache memory of the computing resource; or

configure a number of processors of the computing resource, and configure a size of the cache memory of the computing resource; and wherein the number of processors and the size of the cache memory are configured independently of each other.

10 . A method, comprising:

receiving, by a processing device, a query directed to database data, the processing device to be coupled to a plurality of virtual data warehouse instances that each comprise a plurality of computing resources, the plurality of virtual data warehouse instances to be coupled to a database;

determining a task associated with the query stored in the database;

distributing the task to a first virtual data warehouse instance of the plurality of virtual data warehouse instances;

determining that the first virtual data warehouse instance of the plurality of virtual data warehouse instances no longer accesses the database data;

reconfiguring the first virtual data warehouse instance to delete a communication between the first virtual data warehouse instance and the database;

maintaining a logical mapping between the plurality of virtual data warehouse instances and the database, and

dynamically modifying the logical mapping based on access patterns of the virtual data warehouse instances.

11 . The method of claim 10 , wherein the database is stored in a data store comprising a plurality of storage devices.

12 . The method of claim 11 , wherein the data store further comprises a virtual database.

13 . The method of claim 10 , wherein the processing device is external to and separate from the computing resources of the plurality of virtual data warehouse instances.

14 . The method of claim 10 , wherein each of the plurality of computing resources comprises at least one processor.

15 . The method of claim 10 , wherein the query is in a form of one or more SQL statements.

16 . The method of claim 15 , further comprising:

identifying at least one storage device that is associated with database data identified in the query.

17 . The method of claim 10 , further comprising:

configuring, on demand, a computing resource of the plurality of virtual data warehouse instances.

18 . The method of claim 17 , further comprising at least one of:

configuring a number of processors of the computing resource;

configuring a storage capacity of a cache memory of the computing resource; or

configuring a number of processors of the computing resource, and configuring a size of the cache memory of the computing resource; and wherein the number of processors and the size of the cache memory are configured independently of each other.

19 . A non-transitory computer-readable medium storing instructions that, when executed by a processing device, cause the processing device to:

receive, by the processing device, a query directed to database data, the processing device to be coupled to a plurality of virtual data warehouse instances that each comprise a plurality of computing resources, the plurality of virtual data warehouse instances to be coupled to a database;

determine a task associated with the query;

distribute the task to a first virtual data warehouse instance of the plurality of virtual data warehouse instances;

determine that the first virtual data warehouse instance of the plurality of virtual data warehouse instances no longer accesses the database data; and

reconfigure the first virtual data warehouse instance to delete a communication between the first virtual data warehouse instance and the database;

maintain a logical mapping between the plurality of virtual data warehouse instances and the database, and

dynamically modify the logical mapping based on access patterns of the virtual data warehouse instances.

20 . The non-transitory computer-readable medium of claim 19 , wherein the database is stored in a data store comprising a plurality of storage devices.

21 . The non-transitory computer-readable medium of claim 20 , wherein the data store further comprises a virtual database.

22 . The non-transitory computer-readable medium of claim 19 , wherein the processing device is external to and separate from the computing resources of the plurality of virtual data warehouse instances.

23 . The non-transitory computer-readable medium of claim 19 , wherein each of the plurality of computing resources comprises at least one processor.

24 . The non-transitory computer-readable medium of claim 19 , wherein the query is in a form of one or more SQL statements.

25 . The non-transitory computer-readable medium of claim 24 , wherein the processing device is further to:

identify at least one storage device that is associated with database data identified in the query.

26 . The non-transitory computer-readable medium of claim 19 , wherein the processing device is further to:

configure, on demand, a computing resource of the plurality of virtual data warehouse instances.

27 . The non-transitory computer-readable medium of claim 26 , wherein the processing device is further to at least one of:

configure a number of processors of the computing resource;

configure a storage capacity of a cache memory of the computing resource; or

configure a number of processors of the computing resource, and configure a size of the cache memory of the computing resource; and wherein the number of processors and the size of the cache memory are configured independently of each other.

Assignments (2)
CHANGE OF NAME Recorded Sep 26, 2025
From: SNOWFLAKE COMPUTING, INC.
To: SNOWFLAKE INC.
Reel/Frame 072963/0752 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 26, 2025
From: DAGEVILLE, BENOIT; CRUANES, THIERRY; ZUKOWSKI, MARCIN
To: SNOWFLAKE COMPUTING INC.
Reel/Frame 072121/0156 →
Continuity (5)
Continuation 17563418 · Dec 28, 2021
Continuation 16447416 · Jun 20, 2019
Continuation 14518884 · Oct 20, 2014
Provisional Application 61941986 · Feb 19, 2014
Related Publication 20240256571A1 · Aug 1, 2024
References Cited (140)
US 5634125A · Li · 1997 [cited by applicant]
US 5694593A · Baclawski · 1997 [cited by applicant]
US 5787466A · Berliner · 1998 [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 8479194B2 · Rangegowda · 2013 [cited by examiner]
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 8935318B1 · Konerding · 2015 [cited by examiner]
US 9152642B2 · Harrison et al. · 2015 [cited by applicant]
US 9171042B1 · Welton · 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 9335989B2 · Apte et al. · 2016 [cited by applicant]
US 9417897B1 · Klompje et al. · 2016 [cited by applicant]
US 9870269B1 · Viswanatan et al. · 2018 [cited by applicant]
US 9880933B1 · Gupta et al. · 2018 [cited by applicant]
US 10282350B1 · Pathak · 2019 [cited by applicant]
US 11748338B1 · Paulus · 2023 [cited by examiner]
US 20020038308A1 · Cappi · 2002 [cited by applicant]
US 20020073086A1 · Thompson et al. · 2002 [cited by applicant]
US 20020120630A1 · Christianson et al. · 2002 [cited by applicant]
US 20030069973A1 · Ganesan et al. · 2003 [cited by applicant]
US 20030154236A1 · Dar · 2003 [cited by applicant]
US 20030158884A1 · Alford, Jr. · 2003 [cited by applicant]
US 20040098359A1 · Bayliss et al. · 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 et al. · 2005 [cited by applicant]
US 20050210049A1 · Foster · 2005 [cited by applicant]
US 20060059173A1 · Hirsch et al. · 2006 [cited by applicant]
US 20060074872A1 · Gordon · 2006 [cited by applicant]
US 20060136761A1 · Fraiser · 2006 [cited by applicant]
US 20060212477A1 · Murphy · 2006 [cited by examiner]
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 20080082644A1 · Isard · 2008 [cited by applicant]
US 20080256548A1 · Branson et al. · 2008 [cited by applicant]
US 20080256549A1 · Liu et al. · 2008 [cited by applicant]
US 20090019103A1 · Tommaney · 2009 [cited by examiner]
US 20090144417A1 · Kisel et al. · 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 20110196899A1 · Hughes et al. · 2011 [cited by applicant]
US 20110225167A1 · Bhattacharjee et al. · 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 et al. · 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 · Scott et al. · 2012 [cited by applicant]
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 et al. · 2013 [cited by applicant]
US 20130124545A1 · Holmberg 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 · 2013 [cited by applicant]
US 20130177239A1 · Ueda 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 20130282795A1 · Tsao · 2013 [cited by applicant]
US 20130332614A1 · Brunk · 2013 [cited by applicant]
US 20140013059A1 · Joshi · 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 20140244687A1 · Shmueli et al. · 2014 [cited by applicant]
US 20140310259A1 · Tian · 2014 [cited by applicant]
US 20140379691A1 · Teletia et al. · 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 20150234895A1 · Erdogan · 2015 [cited by applicant]
US 20160085643A1 · Mcalister et al. · 2016 [cited by applicant]
US 20160188628A1 · Hartman et al. · 2016 [cited by applicant]
US 20170177665A1 · Chang et al. · 2017 [cited by applicant]
US 20200334241A1 · Muralidhar · 2020 [cited by examiner]
CN 101305365A · 2008 [cited by applicant]
CN 102496060 · 2012 [cited by applicant]
CN 203261358 · 2013 [cited by applicant]
JP 2005056077 · 2005 [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]
“European Patent Office—Office Action” regarding application No. 21188538.9, mailed: May 6, 2024, pp. 1-10. [cited by applicant]