IP Library Granted Patent US 11,372,679
Granted Patent B1
US 11,372,679 · App. 17/647,635 · Granted Jun 28, 2022

Providing resources using predicted size values

Inventors: Qiming Jiang (Redmond, WA); Orestis Kostakis (Redmond, WA); Abdul Munir (San Mateo, CA); Prayag Chandran Nirmala (Seattle, WA); Jeffrey Rosen (San Mateo, CA)
Assignee: Snowflake Inc.
G06F9/5005G06F16/2455G06N5/04G06N20/00G06F2209/5011
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 11,372,679
App. No.
17/647,635
Granted
Jun 28, 2022
Kind
B1
Abstract

The subject technology requests information related to usage history metadata from a metadata database. The subject technology receives the requested information from the metadata database, the requested information comprising information related to user demand. The subject technology predicts a size value indicating an amount of computing resources to request for executing a set of queries based on the usage history metadata. The subject technology determines, during a prefetch window of time within a first period of time, a current size of freepool of computing resources. The subject technology, in response to the current size of the freepool of computing resources being smaller than the predicted size value, sends a request for additional computing resources to include in the freepool of computing resources.

Claims (89)

1. A system comprising:

at least one hardware processor; and

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

monitoring a response time of a cloud provider;

determining that the response time of the cloud provider has increased beyond a threshold for a prefetch window size during a first prefetch window of time within a first period of time;

increasing a size of the prefetch window size and a size of a prediction window;

predicting a size value indicating an amount of computing resources to request for executing a set of queries based at least in part on usage history metadata;

determining, during a second prefetch window of time within a second period of time, a second current size of a freepool of computing resources; and

in response to the second current size of the freepool of computing resources being greater than the predicted size value, sending a second request for removing computing resources from the freepool of computing resources.

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

prior to predicting the size value indicating the amount of computing resources, requesting information related to the usage history metadata from a metadata database; and

receiving information from the metadata database, the information comprising information related to user demand, the information related to user demand comprising requests for allocation of additional computing resources to a freepool of computing resources and requests for releasing computing resources from the freepool of computing resources.

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

predicting a second size value indicating a second amount of computing resources to request for executing a second set of queries based at least in part on the usage history metadata;

determining, during a third prefetch window of time within a third period of time, a second current size of the freepool of computing resources; and

in response to the second current size of the freepool of computing resources being greater than the predicted size value, sending a second request for removing computing resources from the freepool of computing resources.

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

predicting a second size value indicating a second amount of computing resources to request for executing a second set of queries based at least in part on the usage history metadata;

determining, during a third prefetch window of time within a third period of time, a second current size of the freepool of computing resources; and

in response to the second current size of the freepool of computing resources being smaller than the predicted second size value, sending a second request for additional computing resources to include in the freepool of computing resources.

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

receiving an indication that the request for removing computing resources was granted; and

performing an operation to remove the computing resources in the freepool of computing resources.

6. The system of claim 1 , wherein sending the request for removing computing resources to include in the freepool of computing resources is performed asynchronously, and wherein the operations further comprise:

performing a different task from the set of queries while awaiting a response from the request for removing computing resources.

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

storing the predicted size value in a metadata database; and

reading, prior to predicting the size value, the stored predicted size value from the metadata database.

8. The system of claim 1 , wherein predicting the size value indicating the amount of computing resources to request for executing the set of queries is performed based on a machine learning model.

9. The system of claim 1 , wherein another database operation is performed after sending the request for removing computing resources and before receiving the indication that the request for removing computing resources was granted.

10. The system of claim 2 , wherein the information related to user demand comprises user demand during corresponding time slots of a number of prior days.

11. A method comprising:

monitoring a response time of a cloud provider;

determining that the response time of the cloud provider has increased beyond a threshold for a prefetch window size during a first prefetch window of time within a first period of time;

increasing a size of the prefetch window size and a size of a prediction window;

predicting a size value indicating an amount of computing resources to request for executing a set of queries based at least in part on usage history metadata;

determining, during a second prefetch window of time within a second period of time, a second current size of a freepool of computing resources; and

in response to the second current size of the freepool of computing resources being greater than the predicted size value, sending a second request for removing computing resources from the freepool of computing resources.

12. The method of claim 11 , further comprising:

prior to predicting the size value indicating the amount of computing resources, requesting information related to the usage history metadata from a metadata database; and

receiving information from the metadata database, the information comprising information related to user demand, the information related to user demand comprising requests for allocation of additional computing resources to a freepool of computing resources and requests for releasing computing resources from the freepool of computing resources.

13. The method of claim 11 , further comprising:

predicting a second size value indicating a second amount of computing resources to request for executing a second set of queries based at least in part on the usage history metadata;

determining, during a third prefetch window of time within a third period of time, a second current size of the freepool of computing resources; and

in response to the second current size of the freepool of computing resources being greater than the predicted size value, sending a second request for removing computing resources from the freepool of computing resources.

14. The method of claim 11 , further comprising:

predicting a second size value indicating a second amount of computing resources to request for executing a second set of queries based at least in part on the usage history metadata;

determining, during a third prefetch window of time within a third period of time, a second current size of the freepool of computing resources; and

in response to the second current size of the freepool of computing resources being smaller than the predicted second size value, sending a second request for additional computing resources to include in the freepool of computing resources.

15. The method of claim 11 , further comprising:

receiving an indication that the request for removing computing resources was granted; and

performing an operation to remove the computing resources in the freepool of computing resources.

16. The method of claim 11 , wherein sending the request for removing computing resources to include in the freepool of computing resources is performed asynchronously, and further comprising:

performing a different task from the set of queries while awaiting a response from the request for removing computing resources.

17. The method of claim 11 , further comprising:

storing the predicted size value in a metadata database; and

reading, prior to predicting the size value, the stored predicted size value from the metadata database.

18. The method of claim 11 , wherein predicting the size value indicating the amount of computing resources to request for executing the set of queries is performed based on a machine learning model.

19. The method of claim 11 , wherein another database operation is performed after sending the request for removing computing resources and before receiving the indication that the request for removing computing resources was granted.

20. The method of claim 12 , wherein the information related to user demand comprises user demand during corresponding time slots of a number of prior days.

21. A non-transitory computer-storage medium comprising instructions that, when executed by one or more processors of a machine, configure the machine to perform operations comprising:

monitoring a response time of a cloud provider;

determining that the response time of the cloud provider has increased beyond a threshold for a prefetch window size during a first prefetch window of time within a first period of time;

increasing a size of the prefetch window size and a size of a prediction window;

predicting a size value indicating an amount of computing resources to request for executing a set of queries based at least in part on usage history metadata;

determining, during a second prefetch window of time within a second period of time, a second current size of a freepool of computing resources; and

in response to the second current size of the freepool of computing resources being greater than the predicted size value, sending a second request for removing computing resources from the freepool of computing resources.

22. The non-transitory computer-storage medium of claim 21 , wherein the operations further comprise:

prior to predicting the size value indicating the amount of computing resources, requesting information related to the usage history metadata from a metadata database; and

receiving information from the metadata database, the information comprising information related to user demand, the information related to user demand comprising requests for allocation of additional computing resources to a freepool of computing resources and requests for releasing computing resources from the freepool of computing resources.

23. The non-transitory computer-storage medium of claim 21 , wherein the operations further comprise:

predicting a second size value indicating a second amount of computing resources to request for executing a second set of queries based at least in part on the usage history metadata;

determining, during a third prefetch window of time within a third period of time, a second current size of the freepool of computing resources; and

in response to the second current size of the freepool of computing resources being greater than the predicted size value, sending a second request for removing computing resources from the freepool of computing resources.

24. The non-transitory computer-storage medium of claim 21 , wherein the operations further comprise:

predicting a second size value indicating a second amount of computing resources to request for executing a second set of queries based at least in part on the usage history metadata;

determining, during a third prefetch window of time within a third period of time, a second current size of the freepool of computing resources; and

in response to the second current size of the freepool of computing resources being smaller than the predicted second size value, sending a second request for additional computing resources to include in the freepool of computing resources.

25. The non-transitory computer-storage medium of claim 21 , wherein the operations further comprise:

receiving an indication that the request for removing computing resources was granted; and

performing an operation to remove the computing resources in the freepool of computing resources.

26. The non-transitory computer-storage medium of claim 21 , wherein sending the request for removing computing resources to include in the freepool of computing resources is performed asynchronously, and wherein the operations further comprise:

performing a different task from the set of queries while awaiting a response from the request for removing computing resources.

27. The non-transitory computer-storage medium of claim 21 , wherein the operations further comprise:

storing the predicted size value in a metadata database; and

reading, prior to predicting the size value, the stored predicted size value from the metadata database.

28. The non-transitory computer-storage medium of claim 21 , wherein predicting the size value indicating the amount of computing resources to request for executing the set of queries is performed based on a machine learning model.

29. The non-transitory computer-storage medium of claim 21 , wherein another database operation is performed after sending the request for removing computing resources and before receiving the indication that the request for removing computing resources was granted.

30. The non-transitory computer-storage medium of claim 22 , wherein the information related to user demand comprises user demand during corresponding time slots of a number of prior days.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 11, 2022
From: JIANG, QIMING; KOSTAKIS, ORESTIS; MUNIR, ABDUL; NIRMALA, PRAYAG CHANDRAN; ROSEN, JEFFREY
To: SNOWFLAKE INC.
Reel/Frame 058617/0236 →
Continuity (3)
Continuation 17390265 · Jul 30, 2021
Continuation 17173717 · Feb 11, 2021
Provisional Application 63143668 · Jan 29, 2021