Automatic demand-driven resource scaling for relational database-as-a-service
US-2019325370-A1 · Oct 24, 2019 · US
US10761897B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-10761897-B2 |
| Application number | US-201815887889-A |
| Country | US |
| Kind code | B2 |
| Filing date | Feb 2, 2018 |
| Priority date | Feb 2, 2018 |
| Publication date | Sep 1, 2020 |
| Grant date | Sep 1, 2020 |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
Official abstract text for this publication.
A system for automatically scaling provisioned resources includes an input interface and a processor. The input interface is configured to receive an estimate of a required number of processing threads. The processor is configured to determine required resources for processing the required number of processing threads using a model; provision the required resources; indicate to execute client tasks using the provisioned resources; determine server telemetry or logging data for the provisioned resources; provide the server telemetry or the logging data to the model; determine a resource utilization score based at least in part on the server telemetry or the logging data; determine a provisioning performance reward based at least in part on the resource utilization score; and adjust model parameters using the provisioning performance reward.
Opening claim text (preview).
What is claimed is: 1. A system for automatically scaling provisioned resources, comprising: an input interface configured to: receive an indication to execute a set of tasks; and a processor configured to: determine a required number of processing threads for the set of tasks, comprising to: randomly order the set of tasks to obtain an ordered set of tasks; allocate a first task of the ordered set of tasks to a first processing thread of a set of processing threads; determine whether at least one processing thread of the set of processing threads has an available capacity for a next processing task of the ordered set of processing tasks; in response to determining that no processing thread of the set of processing threads has the available capacity for the next processing task, create a new processing thread of the set of processing threads and allocate the next processing task to the new processing thread; and in response to determining that there are no more tasks of the ordered set of tasks to allocate to the set of processing threads, indicate the required number of processing threads for the set of tasks is a count of the processing threads in the set of processing threads; determine required resources for processing the required number of processing threads using a model; provision the required resources; indicate to execute client tasks using the provisioned resources; determine server telemetry or logging data for the provisioned resources; provide the server telemetry or the logging data to the model; determine a resource utilization score based at least in part on the server telemetry or the logging data; determine a provisioning performance reward based at least in part on the resource utilization score; and adjust model parameters using the provisioning performance reward. 2. The system of claim 1 , wherein indicating to execute client tasks causes the client tasks to execute. 3. The system of claim 1 , wherein the required number of processing threads comprises a required number of processing threads for a server type of a plurality of server types. 4. The system of claim 1 , wherein the client tasks comprise client tasks for a client of a plurality of clients. 5. The system of claim 1 , wherein the resource utilization score is based at least in part on a nonlinear function of the performance metric data. 6. The system of claim 1 , wherein the resource utilization score is based at least in part on asymmetric function of the server telemetry or the logging data. 7. The system of claim 1 , wherein the provisioner performance reward comprises: a first value in response to the resource utilization score indicating the provisioned resources are underutilized; a second value in response to the resource utilization score indicating the provisioned resources are correctly utilized; and a third value in response to the resource utilization score indicating the provisioned resources are overutilized. 8. The system of claim 1 , wherein a next determination of required resources is based at least in part on the server telemetry or the logging data provided to the model. 9. The system of claim 1 , wherein the model comprises a neural network. 10. The system of claim 9 , wherein the neural network comprises one or more of: a neuron layer, a plurality of neuron layers, a dense neuron layer, a dropout neuron layer, a feedforward layer, a recurrent layer, a long short term memory layer, a rectified linear unit activation function, or a tan h activation function. 11. The system of claim 1 , wherein adjusting the model using the resource utilization score comprises using reinforcement learning. 12. The system of claim 1 , wherein the estimate of the required number of processing threads is based at least in part on historical usage data. 13. The system of claim 1 , wherein a determination of required resources is made at a regular interval. 14. The system of claim 13 , wherein the regular interval comprises every minute, every 5 minutes, every 10 minutes, or every hour. 15. The system of claim 1 , wherein determining the server telemetry or the logging data comprises determining a set of performance metrics. 16. The system of claim 15 , wherein determining the server telemetry or the logging data comprises processing the set of performance metrics. 17. The system of claim 16 , wherein processing the set of performance metrics comprises one or more of: scaling one or more performance metrics, computing a linear function of one or more performance metrics, aggregating performance metrics, computing a nonlinear function of one or more performance metrics, thresholding one or more performance metrics, processing the set of performance metrics using a model, processing the set of performance metrics using a machine learning model, or processing the set of metrics using a neural network. 18. The system of claim 1 , wherein in response to determining that at least one processing thread of the set of processing threads has the available capacity for the next processing task of the ordered set of processing tasks, allocate the next processing thread to one processing thread of the at least one processing thread. 19. A method for automatically scaling provisioned resources, comprising: receiving an indication to execute a set of tasks; determining a required number of processing threads for the set of tasks, comprising to: randomly ordering the set of tasks to obtain an ordered set of tasks; allocating a first task of the ordered set of tasks to a first processing thread of a set of processing threads; determining whether at least one processing thread of the set of processing threads has an available capacity for a next processing task of the ordered set of processing tasks; in response to determining that no processing thread of the set of processing threads has the available capacity for the next processing task, creating a new processing thread of the set of processing threads and allocating the next processing task to the new processing thread; and in response to determining that there are no more tasks of the ordered set of tasks to allocate to the set of processing threads, indicating the required number of processing threads for the set of tasks is a count of the processing threads in the set of processing threads; determining, using a processor, required resources for processing the required number of processing threads using a model; provisioning the required resources; indicating to execute client tasks using the provisioned resources; determining server telemetry or logging data for the provisioned resources; providing the server telemetry or the logging data to the model; determining a resource utilization score based at least in part on the server telemetry or the logging data; determining a provisioning performance reward based at least in part on the resource utilization score; and adjusting model parameters using the provisioning performance reward. 20. A computer program product for automatically scaling provisioned resources, the computer program product being embodied in a non-transitory computer readable storage medium and comprising computer instructions for: receiving an indication to execute a set of tasks; determining a required number of processing threads for the set of tasks, comprising to: randomly ordering the set of tasks to obtain an ordered set of tasks; allocating a first task of the ordered set of tasks to a first processing thread of a set o
Recurrent networks, e.g. Hopfield networks · CPC title
Combinations of networks · CPC title
for predicting network behaviour · CPC title
Learning methods · CPC title
Reinforcement learning · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.