Optimal free pool preprovisioning
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.
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.