IP Library Granted Patent US 12,242,511
Granted Patent B2
US 12,242,511 · App. 18/165,666 · Granted Mar 4, 2025

Storage resource provisioning systems and methods

Inventors: Benoit Dageville (Seattle, WA); 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,242,511
App. No.
18/165,666
Granted
Mar 4, 2025
Kind
B2
Abstract

A method and apparatus for managing a set of storage resources for a set of queries is described. In an exemplary embodiment, a method provisions processing resources of an execution platform and provisions storage resources of a storage platform. The execution platform uses the storage platform, which is shared with the execution platform, to process the set of queries. The method changes a number of the storage resources provisioned for the storage platform based on a storage capacity utilization by the set of queries of the storage resources. The method changes the number of the storage resources independently to a change of the processing resources in the execution platform. The method processes the set of queries using the changed number of the storage resources provisioned for the storage platform.

Claims (43)

1. A method comprising:

receiving a set of queries to process;

provisioning processing resources of an execution platform and provisioning storage resources of a storage platform, the execution platform to process the set of queries using the storage platform that is shared with the execution platform;

determining a utilization of the processing resources to process the set of queries;

changing, by a processor and prior to processing the set of queries, a number of the processing resources provisioned for the execution platform based on the utilization of the processing resources, and changing a number of the storage resources provisioned for the storage platform based on the set of queries to process, wherein the changing of the number of the storage resources increases the number of storage resources and is independent to the change of the processing resources in the execution platform;

processing the set of queries using the changed number of the storage resources provisioned for the storage platform;

responsive to completion of processing the set of queries using the changed number of storage resources, determining whether the changed number of storage resources is still required; and

releasing one or more of the storage resources in response to determining that the changed number of storage resources is no longer required.

2. The method of claim 1 , further comprising:

monitoring a storage capacity utilization of the changed number of the storage resources as the set of queries are processed by the storage platform.

3. The method of claim 1 , wherein the changing of the number of the processing resources is independent to the change of the storage resources in the storage platform.

4. The method of claim 1 , further comprising:

determining an additional change in the number of the storage resources in response to receiving an additional query.

5. The method of claim 1 , wherein the set of queries are queries for a relational database.

6. A system comprising:

a set of storage resources;

a resource manager implemented in a processor, which executes to:

receive a set of queries to process;

provision processing resources of an execution platform and provision storage resources of a storage platform, the execution platform to process the set of queries using the storage platform that is shared with the execution platform;

determine a utilization of the processing resources to process the set of queries;

change, prior to processing the set of queries, a number of the processing resources provisioned for the execution platform based on the utilization of the processing resources, and change a number of the storage resources provisioned for the storage platform based on the set of queries to process, wherein the change of the number of the storage resources increases the number of storage resources and is independent to the change of the processing resources in the execution platform;

process the set of queries using the changed number of the storage resources provisioned for the storage platform;

responsive to a completion to process the set of queries using the changed number of storage resources, determine whether the changed number of storage resources is still required; and

release one or more of the storage resources in response to determining that the changed number of storage resources is no longer required.

7. The system of claim 6 , wherein the resource manager further to:

monitor a storage capacity utilization of the changed number of the storage resources as the set of queries are processed by the storage platform.

8. The system of claim 6 , wherein the change of the number of the processing resources is independent to the change of the storage resources in the storage platform.

9. The system of claim 6 , wherein the resource manager further to:

determine an additional change in the number of the storage resources in response to receiving an additional query.

10. The system of claim 6 , wherein the set of queries are queries for a relational database.

11. A non-transitory computer-readable medium storing instructions which, when executed by a computing device, cause the computing device to:

receive a set of queries to process;

provision processing resources of an execution platform and provision storage resources of a storage platform, the execution platform to process the set of queries using the storage platform that is shared with the execution platform;

determine a utilization of the processing resources to process the set of queries;

change, by the computing device and prior to processing the set of queries, a number of the processing resources provisioned for the execution platform based on the utilization of the processing resources, and change a number of the storage resources provisioned for the storage platform based on the set of queries to process, wherein the change of the number of the storage resources increases the number of storage resources and is independent to the change of the processing resources in the execution platform;

process the set of queries using the changed number of the storage resources provisioned for the storage platform;

responsive to a completion to process the set of queries using the changed number of storage resources, determine whether the changed number of storage resources is still required; and

release one or more of the storage resources in response to determining that the changed number of storage resources is no longer required.

12. The non-transitory computer-readable medium of claim 11 , wherein the instructions further cause the computing device to:

monitor a storage capacity utilization of the changed number of the storage resources as the set of queries are processed by the storage platform.

13. The non-transitory computer-readable medium of claim 11 , wherein the change of the number of the processing resources is independent to the change of the storage resources in the storage platform.

14. The non-transitory computer-readable medium of claim 11 , wherein the instructions further cause the computing device to:

determine an additional change in the number of the storage resources in response to receiving an additional query.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 7, 2023
From: DAGEVILLE, BENOIT; CRUANES, THIERRY; ZUKOWSKI, MARCIN
To: SNOWFLAKE COMPUTING INC.
Reel/Frame 062619/0092 →
CHANGE OF NAME Recorded Feb 7, 2023
From: SNOWFLAKE COMPUTING INC.
To: SNOWFLAKE INC.
Reel/Frame 062669/0791 →
Continuity (8)
Continuation 17665262 · Feb 4, 2022
Continuation 17497176 · Oct 8, 2021
Continuation 17141220 · Jan 4, 2021
Continuation 16905599 · Jun 18, 2020
Continuation 16378371 · Apr 8, 2019
Continuation 14518826 · Oct 20, 2014
Provisional Application 61941986 · Feb 19, 2014
Related Publication 20230185824A1 · Jun 15, 2023
References Cited (144)
US 5325509A · Lautzenheiser · 1994 [cited by applicant]
US 5787466A · Berliner · 1998 [cited by applicant]
US 6490590B1 · Fink · 2002 [cited by applicant]
US 6757689B2 · Battas et al. · 2004 [cited by applicant]
US 7280998B1 · Aboujaoude et al. · 2007 [cited by applicant]
US 7519608B2 · Foster · 2009 [cited by applicant]
US 7823009B1 · Tormasov et al. · 2010 [cited by applicant]
US 8290972B1 · Deshmukh 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 · Ananthanarayanan 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 8621145B1 · Kimmel et al. · 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 9026624B2 · Gusev et al. · 2015 [cited by applicant]
US 9207984B2 · Sivasubramanian · 2015 [cited by examiner]
US 10325032B2 · Dageville et al. · 2019 [cited by applicant]
US 11106696B2 · Dageville et al. · 2021 [cited by applicant]
US 11157516B2 · Cruanes · 2021 [cited by examiner]
US 20010039581A1 · Deng et al. · 2001 [cited by applicant]
US 20020120630A1 · Christianson et al. · 2002 [cited by applicant]
US 20030158884A1 · Alford, Jr. · 2003 [cited by applicant]
US 20030177239A1 · Shinohara et al. · 2003 [cited by applicant]
US 20040039729A1 · Boger et al. · 2004 [cited by applicant]
US 20040167904A1 · Wen et al. · 2004 [cited by applicant]
US 20050021758A1 · White · 2005 [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 20070101022A1 · Schulz et al. · 2007 [cited by applicant]
US 20070198656A1 · Mazzaferri et al. · 2007 [cited by applicant]
US 20070276861A1 · Pryce et al. · 2007 [cited by applicant]
US 20080027788A1 · Lawrence et al. · 2008 [cited by applicant]
US 20080027965A1 · Garrett et al. · 2008 [cited by applicant]
US 20080052720A1 · Barsness · 2008 [cited by examiner]
US 20080222346A1 · Raciborski et al. · 2008 [cited by applicant]
US 20090043993A1 · Ford et al. · 2009 [cited by applicant]
US 20090182836A1 · Aviles et al. · 2009 [cited by applicant]
US 20090217267A1 · Gebhart 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 20100145929A1 · Burger et al. · 2010 [cited by applicant]
US 20100179940A1 · Gilder et al. · 2010 [cited by applicant]
US 20100199042A1 · Bates et al. · 2010 [cited by applicant]
US 20110082854A1 · Eidson et al. · 2011 [cited by applicant]
US 20110145307A1 · Ananthanarayanan et al. · 2011 [cited by applicant]
US 20110161488A1 · Anderson et al. · 2011 [cited by applicant]
US 20110225167A1 · Bhattacharjee et al. · 2011 [cited by applicant]
US 20110320546A1 · Holden · 2011 [cited by applicant]
US 20120005307A1 · Das et al. · 2012 [cited by applicant]
US 20120072762A1 · Atchison 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 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 20120210068A1 · Joshi et al. · 2012 [cited by applicant]
US 20120233315A1 · Hoffman et al. · 2012 [cited by applicant]
US 20120254443A1 · Ueda · 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 20130041871A1 · Das et al. · 2013 [cited by applicant]
US 20130110778A1 · Taylor et al. · 2013 [cited by applicant]
US 20130110961A1 · Jadhav · 2013 [cited by applicant]
US 20130124545A1 · Holmberg et al. · 2013 [cited by applicant]
US 20130132967A1 · Soundararajan et al. · 2013 [cited by applicant]
US 20130145375A1 · Kang · 2013 [cited by applicant]
US 20130151884A1 · Hsu et al. · 2013 [cited by applicant]
US 20130174146A1 · Dasgupta et al. · 2013 [cited by applicant]
US 20130179574A1 · Calder 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 20130219385A1 · Geibel · 2013 [cited by examiner]
US 20130227558A1 · Du et al. · 2013 [cited by applicant]
US 20130282795A1 · Tsao · 2013 [cited by applicant]
US 20130332614A1 · Brunk et al. · 2013 [cited by applicant]
US 20140025638A1 · Hu et al. · 2014 [cited by applicant]
US 20140059226A1 · Messerli et al. · 2014 [cited by applicant]
US 20140095646A1 · Chan et al. · 2014 [cited by applicant]
US 20140109095A1 · Farkash et al. · 2014 [cited by applicant]
US 20140115091A1 · Lee · 2014 [cited by applicant]
US 20140136473A1 · Faerber et al. · 2014 [cited by applicant]
US 20140149461A1 · Wijayaratne et al. · 2014 [cited by applicant]
US 20140164621A1 · Nakama · 2014 [cited by applicant]
US 20140222975A1 · Vasseur et al. · 2014 [cited by applicant]
US 20150006254A1 · Fackrell et al. · 2015 [cited by applicant]
US 20150113120A1 · Jacobson et al. · 2015 [cited by applicant]
US 20150363113A1 · Rahman et al. · 2015 [cited by applicant]
US 20160127200A1 · Dippenaar et al. · 2016 [cited by applicant]
CN 102496060A · 2012 [cited by applicant]
CN 203261358U · 2013 [cited by applicant]
JP 2005056077A · 2005 [cited by applicant]
JP 2009015534A · 2009 [cited by applicant]
JP 2010145929A · 2010 [cited by applicant]
JP 2011258119A · 2011 [cited by applicant]
JP 2012198843A · 2012 [cited by applicant]
JP 2012208781A · 2012 [cited by applicant]
JP 2012221273A · 2012 [cited by applicant]
JP 2013041397A · 2013 [cited by applicant]
JP 2013182509A · 2013 [cited by applicant]
WO 2006026659A2 · 2006 [cited by applicant]
WO 2013006157A1 · 2013 [cited by applicant]
WO 2013072232A1 · 2013 [cited by applicant]
WO 2013084078A1 · 2013 [cited by applicant]
Azza Abouzeid et al, “HadoopDB”, Proceedings of the VLDB Endowment, ACM Digital Library, Assoc. Of Computing Machinery, New York, NY, vol. 2, No. 1, Aug. 2009. [cited by applicant]
Tai Squared et al. “Why is it not advisable to have the database and webserver on the same machine?” Asked Mar. 18, 2009. Accessed Jun. 12, 2018 https://stackoverflow.com/questions/659970/why-is-it-not-advisable-to-have… [cited by applicant]
PCT International Search Report for PCT Application No. PCT/US2015/016425, 2 pgs. (May 15, 2015). [cited by applicant]
PCT Written Opinion for PCT Application No. PCT/US2015/016425, 7 pgs. (May 15, 2015). [cited by applicant]
PCT International Preliminary Report for PCT Application No. PCT/US2015/016425, 8 pgs. (Aug. 23, 2016). [cited by applicant]
Examination Report for counterpart Australian Patent Application No. 2015219117, 3 pgs. (Sep. 17, 2019). [cited by applicant]
First Office Action for counterpart Chinese Patent Application No. 201580020410.5, 13 pgs. (Mar. 2, 2019). [cited by applicant]
Extended European Search Report for counterpart EP Patent Application No. 15752570.0, 9 pgs. (Oct. 25, 2017). [cited by applicant]
First Office Action for counterpart EP Patent Application No. 15752570.0, 9 pgs. (Aug. 6, 2019). [cited by applicant]
First Office Action for counterpart JP Patent Application No. 2016-553025 with English translation, 8 pgs. (Mar. 5, 2019). [cited by applicant]
Second Office Action for counterpart JP Patent Application No. 2016-553025 with English translation, 7 pgs. (Nov. 5, 2019). [cited by applicant]
Sergey Melnik et al., “Dremel: Interactive Analysis of WebScale Datasets,” Proceedings of the VLDB Endowment, vol. 3, Jan. 1, 2010, pp. 300-339. [cited by applicant]
David a Maluf, et al., “NASA Technology Transfer System,” Space Mission Challenges for Information Technology (SMC-IT), 2011 IEEE Fourth International Conference on, IEEE, Aug. 2, 2011, pp. 111-117. [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, Proceedings International, IPDPS 2002,… [cited by applicant]
“Oracle9i Database New Features, Release 2 (9.2),” Mar. 2002, 166 pages. [cited by applicant]
Tai Squared et al. “Why is it not advisable to have the database and webserver on the same machine?” Asked Mar. 18, 2009; https://stackoverflow.com/questions/659970/why-is-it-not-advisable-to-have-the-database-and-web-s… [cited by applicant]
Second Office Action for counterpart JP Application No. 2016-553025 (Feb. 28, 2019). [cited by applicant]
First Examination Report for counterpart AU Application No. 2015219117 (Sep. 17, 2019). [cited by applicant]
Examiner's Report for counterpart CA Application No. 2,939,908 (Dec. 4, 2020). [cited by applicant]
Second Examination Report for counterpart AU Application No. 2015219117 (Apr. 28, 2020). [cited by applicant]
Extended European Search Report for counterpart EP Application No. 20211859.2 (Mar. 18, 2021). [cited by applicant]
Notice of Rejection for counterpart JP Application No. 2021-017358 (Feb. 22, 2022). [cited by applicant]
Dean et al., “MapReduce: Simplified Data Processing on Large Clusters,” Communications on the ACM; vol. 51, No. 1; pp. 107-113 (Jan. 2008). [cited by applicant]
Examiner's Report for counterpart CA Application No. 2,939,908 (Aug. 17, 2022). [cited by applicant]