# US 12,217,091 B2 · Systems and methods for autoscaling instance groups of computing platforms

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 12,217,091 B2
- Document ID: US12217091B2
- Status: Granted
- Kind: B2
- Application number: 17/727,380
- Filed: 2022-04-22
- Published: 2022-08-04
- Granted: 2025-02-04
- Earliest claimed: 2018-12-11
- Assignees: Palantir Technologies Inc.
- Applicants: Palantir Technologies Inc.
- Inventors: Mahmoud Abdelsalam; Ryan McNamara; Ashray Jain; Greg DeArment; Jason Ma; Guodong Xu; Vivek Lakshmanan
- Web page: https://patentgrep.com/patent/US12217091B2

## CPC

- G06F 9/5027: {the resource being a machine, e.g. CPUs, Servers, Terminals}
- G06F 8/65: Updates (security arrangements therefor G06F21/57)
- G06F 9/45558: {Hypervisor-specific management and integration aspects}
- G06F 9/4881: {Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues}
- G06F 9/5061: {Partitioning or combining of resources}
- G06F 9/5072: {Grid computing}
- G06F 9/5077: {Logical partitioning of resources; Management or configuration of virtualized resources (specific details on emulation or internal functioning of virtual machines G06F9/455)}
- G06F 2009/45562: {Creating, deleting, cloning virtual machine instances}
- G06F 2209/5011: Pool
- G06F 2209/5022: Workload threshold
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

System and method for terminating instances and autoscaling instance groups of computing platforms. For example, a method includes determining whether an instance of an instance group is identified as eligible for termination. The method further includes, in response to determining that the instance of the instance group is identified as eligible for termination, terminating the eligible instance. The terminating the eligible instance includes, in response to a runtime of the eligible instance being equal to or larger than a predetermined maximum lifetime, terminating the eligible instance. The terminating the eligible instance further includes, in response to the runtime being smaller than the predetermined maximum lifetime, detaching the eligible instance from the instance group to allow a new instance to be associated with the instance group, and in response to the eligible instance being detached from the instance group: waiting for the new instance to be associated with the instance group, and evicting each pod associated with the detached instance. The method is performed using one or more processors.

## Claims

### Claim 1

A computer-implemented system for scaling down an instance group of a computing platform, the system comprising:
one or more processors; and
a memory storing instructions, the instructions, when executed by the one or more processors, causing the system to perform:
determining whether a utilization percentage of resources allocated to an instance associated with the instance group is smaller than a predetermined scale-down threshold, the resources allocated to the instance including one or more running pods, the instance group including a predetermined desired number of instances; and
in response to determining that the utilization percentage of the instance is smaller than the predetermined scale-down threshold:
waiting for each running pod of the one or more running pods associated with the instance to run to completion;
preventing an additional pod being scheduled on the instance;
in response to each running pod of the one or more running pods associated with the instance running to completion, detaching the instance from the instance group; and
in response to detaching the instance from the instance group, decreasing by one the predetermined desired instance number associated with the instance group.

### Claim 2 (depends on 1)

The system of claim 1 wherein the memory stores the instructions, the instructions, when executed by the one or more processors, causing the system to further perform:
in response to determining that the utilization percentage of the instance is smaller than the predetermined scale-down threshold, identifying the instance as unschedulable.

### Claim 3 (depends on 1)

The system of claim 1 wherein the memory stores the instructions, the instructions, when executed by the one or more processors, causing the system to further perform:
in response to detaching the instance from the instance group, identifying the detached instance as eligible for termination.

### Claim 4 (depends on 1)

The system of claim 1 wherein the memory stores the instructions, the instructions, when executed by the one or more processors, causing the system to further perform:
in response to detaching the instance from the instance group, terminating the detached instance.

### Claim 5 (depends on 1)

The system of claim 1 wherein the utilization percentage of the instance is equal to scheduled resources of the instance divided by allocatable resources of the instance.

### Claim 6 (depends on 1)

The system of claim 1 wherein the memory stores the instructions, the instructions, when executed by the one or more processors, causing the system to further perform:
waiting for a cool-down timer to expire prior to evaluating the instance group for scaling down.

### Claim 7 (depends on 6)

The system of claim 6 wherein the memory stores the instructions, the instructions, when executed by the one or more processors, causing the system to further perform:
evaluating instance groups of the computing platform in parallel and asynchronously for scaling down.

### Claim 8 (depends on 6)

The system of claim 6 wherein scaling down of the instance group includes decreasing by one the desired instance number associated with the instance group.

### Claim 9 (depends on 1)

The system of claim 1 wherein the memory stores the instructions, the instructions, when executed by the one or more processors, causing the system to further perform:
in response to determining resources for the instance group being requested and unfulfilled, not scaling down the instance group.

### Claim 10 (depends on 6)

The system of claim 6 wherein the evaluating the instance group for scaling down includes determining whether each instance associated with the instance group is identified as eligible for termination.

### Claim 11 (depends on 1)

The system of claim 1 wherein the memory stores the instructions, the instructions, when executed by the one or more processors, causing the system to further perform:
evaluating each instance in the instance group to determine an amount of allocatable resources for each instance; and
sorting a plurality of instances in the instance group based on the amount of allocatable resources for each instance.

### Claim 12 (depends on 11)

The system of claim 11 wherein the memory stores the instructions, the instructions, when executed by the one or more processors, causing the system to further perform:
filtering the plurality of instances in the instance group based on one or more predetermined criteria.

### Claim 13 (depends on 12)

The system of claim 12 wherein the one or more predetermined criteria include a criterion related to whether an instance includes a deferred pod.

### Claim 14 (depends on 12)

The system of claim 12 wherein the one or more predetermined criteria include a criterion related to memory resources and a criterion related to processing resources.

### Claim 15 (depends on 1)

The system of claim 1 wherein the memory stores the instructions, the instructions, when executed by the one or more processors, causing the system to further perform:
accessing a priority of each running pod associated with each instance in the instance group; and
generating an instance priority associated with each instance in the instance group based on a priority of each running pod associated with a corresponding instance in the instance group.

### Claim 16 (depends on 15)

The system of claim 15 wherein the memory stores the instructions, the instructions, when executed by the one or more processors, causing the system to further perform:
selecting the instance based upon the instance priority associated with each instance in the instance group.

### Claim 17 (depends on 15)

The system of claim 15 wherein the memory stores the instructions, the instructions, when executed by the one or more processors, causing the system to further perform:
selecting a plurality of instances to be scaled down based upon the instance priority associated with each instance in the instance group.

### Claim 18 (depends on 4)

The system of claim 4 wherein the memory stores the instructions, the instructions, when executed by the one or more processors, causing the system to further perform:
receiving a scale-down request;
determining a time period from receiving the scale-down request to the instance being terminated.
