Autoscaling in an elastic cloud service
AssigneeSnowflake Inc.
InventorsJohan Harjono, Daniel Geoffrey Karp, Kunal Prafulla Nabar, Rares Radut, Arthur Kelvin Shi
Life of this patent
Estimating the term…
Abstract
Techniques described herein can optimize usage of computing resources in a data system. Dynamic throttling can be performed locally on a computing resource in the foreground and autoscaling can be performed in a centralized fashion in the background. Dynamic throttling can lower the load without overshooting while minimizing oscillation and reducing the throttle quickly. Autoscaling may involve scaling in or out the number of computing resources in a cluster as well as scaling up or down the type of computing resources to handle different types of situations.
Claims18
A method comprising:
- receiving information and statistics of usage levels of computing resources in a plurality of clusters, the information including notifications of memory error events;
- generating a plurality of moving average windows of usage levels of the computing resources in each of the plurality of clusters, each of the plurality of moving average windows being for different, overlapping time durations, wherein the plurality of moving average windows includes three moving average windows of different durations for scaling in and only a shortest window of the three moving average windows is used for scaling out;
- based on the plurality of moving average windows, adjusting a number of computing resources assigned to the plurality of clusters including decreasing the number of computing resources to a first of the plurality of clusters based on all three moving average windows and increasing the number of computing resources assigned to a second of the plurality of clusters based on the shortest window;
- and
- adjusting a type of computing resources assigned to at least one of the plurality of clusters based on the notifications of memory error events.
A machine-storage medium embodying instructions that, when executed by a machine, cause the machine to perform operations comprising:
- receiving information and statistics of usage levels of computing resources in a plurality of clusters, the information including notifications of memory error events;
- generating a plurality of moving average windows of usage levels of the computing resources in each of the plurality of clusters, each of the plurality of moving average windows being for different, overlapping time durations, wherein the plurality of moving average windows includes three moving average windows of different durations for scaling in and only a shortest window of the three moving average windows is used for scaling out;
- based on the plurality of moving average windows, adjusting a number of computing resources assigned to the plurality of clusters including decreasing the number of computing resources to a first of the plurality of clusters based on all three moving average windows and increasing the number of computing resources assigned to a second of the plurality of clusters based on the shortest window;
- and
- adjusting a type of computing resources assigned to at least one of the plurality of clusters based on the notifications of memory error events.
A system comprising:
- at least one hardware processor;
- and
- at least one memory storing instructions that, when executed by the at least one hardware processor, cause the at least one hardware processor to perform operations comprising:
- receiving information and statistics of usage levels of computing resources in a plurality of clusters, the information including notifications of memory error events;
- generating a plurality of moving average windows of usage levels of the computing resources in each of the plurality of clusters, each of the plurality of moving average windows being for different, overlapping time durations, wherein the plurality of moving average windows includes three moving average windows of different durations for scaling in and only a shortest window of the three moving average windows is used for scaling out;
- based on the plurality of moving average windows, adjusting a number of computing resources assigned to the plurality of clusters including decreasing the number of computing resources to a first of the plurality of clusters based on all three moving average windows and increasing the number of computing resources assigned to a second of the plurality of clusters based on the shortest window;
- and
- adjusting a type of computing resources assigned to at least one of the plurality of clusters based on the notifications of memory error events.
Dependencies are inferred from the claim text.