IP Library Granted Patent US 12681765
Granted Patent B1
US 12681765 · App. 19/285,176 · Granted Jul 14, 2026

Optimal free pool preprovisioning

Inventors: Orestis Kostakis (Redmond, WA); Murray Marvin Stokely, III (Los Altos, CA); Piotr Adam Tabor (Warsaw, PL); Cong Wang (Sammamish, WA); Lawrence Douglas Webley (Woodinville, WA)
Assignee: Snowflake Inc.
G06F9/5038G06F2209/5011G06F2209/5019
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 12681765
App. No.
19/285,176
Granted
Jul 14, 2026
Kind
B1
Abstract

A cloud data platform determines a set of candidate pre-provisioning times for compute resources to be provisioned from a cloud provider service to a free pool maintained by the cloud platform, the set of candidate pre-provisioning times being based on a demand of compute resources (N) and a target time. For each candidate pre-provisioning time: the cloud data platform finds similar historical periods based on historical distribution of provisioning latencies. For each historical period of the similar historical periods, the cloud data platform determines a minimum number of compute resources (M) to provision at the candidate pre-provisioning time so that at least N compute resources are ready by the target time within a specified confidence.

Claims (65)

1 . A system comprising:

at least one hardware processor; and

at least one memory storing instructions that cause the at least one hardware processor to perform operations comprising:

determining, by a cloud data platform, a set of candidate pre-provisioning times for compute resources to be provisioned from a cloud provider service to a free pool maintained by the cloud platform, the set of candidate pre-provisioning times being based on a demand of compute resources (N) and a target time;

for each candidate pre-provisioning time:

finding similar historical periods based on historical distribution of provisioning latencies;

for each historical period of the similar historical periods, determining a minimum number of compute resources (M) to provision at the candidate pre-provisioning time so that at least N compute resources are ready by the target time within a specified confidence; and

calculating a cost metric for pair of M and candidate pre-provisioning time; and

selecting a pair of M and candidate pre-provisioning time based on the calculated cost metrics; and

causing the provisioning of the selected M number of compute resources at the selected pre-provisioning time from the cloud provider service to add to the free pool.

2 . The system of claim 1 , wherein M is greater than or equal to N.

3 . The system of claim 1 , wherein provisioning comprises loading software related to the cloud data platform on the provisioned compute resources.

4 . The system of claim 1 , wherein finding the similar historical periods is performed using a k-nearest neighbor algorithm based on context features.

5 . The system of claim 1 , wherein the operations further comprise:

determining a probability that provisioning a single compute resource is completed within the candidate pre-provisioning time; and

selecting a specified probability, wherein determining the minimum number of M compute resources is based on the specified probability.

6 . The system of claim 5 , wherein determining the minimum number of M compute resources is performed using a binomial survival function where the specified probability is a variable in the binomial survival function or a bootstrapping technique.

7 . The system of claim 1 , wherein the operations further comprise:

projecting free pool size for each of a set of future time windows;

for at least one future time window of the set of future time windows, determining a deficit of compute resources in the free pool is projected;

determining whether to provision new compute resources at a current time based on a future number of compute resources and start time to meet the deficit by comparing the current time to the start time;

initiating provisioning of the future number of compute resources if provisioning is needed at the current time; and

not initiating provisioning if no provisioning is not needed at the current time.

8 . The system of claim 7 , wherein the future number of compute resources and start time is determined based on an overprovisioning algorithm.

9 . The system of claim 1 , the operations further comprise:

determining that no compute resources are to be provisioned at a current time;

sorting release candidates in a release candidate set in descending order;

determining a maximum safe quantity of compute resources to release based on the sorted release candidates; and

releasing the maximum safe quantity of compute resources from the free pool to the cloud provider service.

10 . A method comprising:

determining, by a cloud data platform, a set of candidate pre-provisioning times for compute resources to be provisioned from a cloud provider service to a free pool maintained by the cloud platform, the set of candidate pre-provisioning times being based on a demand of compute resources (N) and a target time;

for each candidate pre-provisioning time:

finding similar historical periods based on historical distribution of provisioning latencies;

for each historical period of the similar historical periods, determining a minimum number of compute resources (M) to provision at the candidate pre-provisioning time so that at least N compute resources are ready by the target time within a specified confidence; and

calculating a cost metric for pair of M and candidate pre-provisioning time; and

selecting a pair of M and candidate pre-provisioning time based on the calculated cost metrics; and

causing the provisioning of the selected M number of compute resources at the selected pre-provisioning time from the cloud provider service to add to the free pool.

11 . The method of claim 10 , wherein M is greater than or equal to N.

12 . The method of claim 10 , wherein provisioning comprises loading software related to the cloud data platform on the provisioned compute resources.

13 . The method of claim 10 , wherein finding the similar historical periods is performed using a k-nearest neighbor algorithm based on context features.

14 . The method of claim 10 , further comprising:

determining a probability that provisioning a single compute resource is completed within the candidate pre-provisioning time; and

selecting a specified probability, wherein determining the minimum number of M compute resources is based on the specified probability.

15 . The method of claim 14 , wherein determining the minimum number of M compute resources is performed using a binomial survival function where the specified probability is a variable in the binomial survival function or a bootstrapping technique.

16 . The method of claim 10 , further comprising:

projecting free pool size for each of a set of future time windows;

for at least one future time window of the set of future time windows, determining a deficit of compute resources in the free pool is projected;

determining whether to provision new compute resources at a current time based on a future number of compute resources and start time to meet the deficit by comparing the current time to the start time;

initiating provisioning of the future number of compute resources if provisioning is needed at the current time; and

not initiating provisioning if no provisioning is not needed at the current time.

17 . The method of claim 16 , wherein the future number of compute resources and start time is determined based on an overprovisioning algorithm.

18 . The method of claim 10 , further comprising:

determining that no compute resources are to be provisioned at a current time;

sorting release candidates in a release candidate set in descending order;

determining a maximum safe quantity of compute resources to release based on the sorted release candidates; and

releasing the maximum safe quantity of compute resources from the free pool to the cloud provider service.

19 . A machine-storage medium embodying instructions that, when executed by a machine, cause the machine to perform operations comprising:

determining, by a cloud data platform, a set of candidate pre-provisioning times for compute resources to be provisioned from a cloud provider service to a free pool maintained by the cloud platform, the set of candidate pre-provisioning times being based on a demand of compute resources (N) and a target time;

for each candidate pre-provisioning time:

finding similar historical periods based on historical distribution of provisioning latencies;

for each historical period of the similar historical periods, determining a minimum number of compute resources (M) to provision at the candidate pre-provisioning time so that at least N compute resources are ready by the target time within a specified confidence; and

calculating a cost metric for pair of M and candidate pre-provisioning time; and

selecting a pair of M and candidate pre-provisioning time based on the calculated cost metrics; and

causing the provisioning of the selected M number of compute resources at the selected pre-provisioning time from the cloud provider service to add to the free pool.

20 . The machine-storage medium of claim 19 , wherein M is greater than or equal to N.