# US 11,907,762 B2 · Resource conservation for containerized systems

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

- Number: US 11,907,762 B2
- Document ID: US11907762B2
- Status: Granted
- Kind: B2
- Application number: 17/159,127
- Filed: 2021-01-26
- Published: 2021-05-20
- Granted: 2024-02-20
- Earliest claimed: 2018-10-30
- Assignees: Google Inc.
- Applicants: Google LLC
- Inventors: Justin Santa Barbara; Timothe Hockin; Robert Bailey; Jeffrey Johnson
- Web page: https://patentgrep.com/patent/US11907762B2

## CPC

- G06F 9/5022: {Mechanisms to release resources}
- G06F 9/542: {Event management; Broadcasting; Multicasting; Notifications}
- G06F 9/5005: {to service a request}
- G06F 9/5011: {the resources being hardware resources other than CPUs, Servers and Terminals}
- G06F 9/5016: {the resource being the memory}
- G06F 9/5027: {the resource being a machine, e.g. CPUs, Servers, Terminals}
- G06F 9/50: Allocation of resources, e.g. of the central processing unit [CPU]
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

A method for conserving resources in a distributed system includes receiving an event-criteria list from a resource controller. The event-criteria list includes one or more events watched by the resource controller and the resource controller controls at least one target resource and is configured to respond to events from the event-criteria list that occur. The method also includes determining whether the resource controller is idle. When the resource controller is idle, the method includes terminating the resource controller, determining whether any event from the event-criteria list occurs after terminating the resource controller, and, when at least one event from the event-criteria list occurs after terminating the resource controller, recreating the resource controller.

## Claims

### Claim 1

A computer-implemented method when executed by data processing hardware causes the data processing hardware to perform operations comprising:
receiving, from a distributed computing system, a system metric for computing resources associated with a pod deployment of containerized applications hosted at the distributed computing system, each pod of the pod deployment executing one of the containerized applications, the pod deployment having a deployment size that specifies a number of pods in the pod deployment;
determining whether the system metric satisfies a threshold resource metric, the threshold resource metric indicating a target resource utilization for the pod deployment of containerized applications;
when the system metric fails to satisfy the threshold resource metric, scaling the pod deployment by decreasing the number of pods in the pod deployment based on adjusting the deployment size of the pod deployment; and
when the system metric satisfies the threshold resource metric, maintaining the deployment size for the pod deployment.

### Claim 2 (depends on 1)

The method of claim 1, wherein scaling the pod deployment by decreasing the number of pods in the pod deployment comprises downscaling the pod deployment to zero such that respective resources reserved for the pod deployment are returned to an available resource pool.

### Claim 3 (depends on 2)

The method of claim 2, wherein downscaling the pod deployment to zero comprises:
setting the deployment size of the pod deployment to zero; and
terminating the containerized applications operating in the pod deployment.

### Claim 4 (depends on 2)

The method of claim 2, wherein the operations further comprise, after downscaling the pod deployment to zero:
determining that the system metric satisfies the threshold resource metric; and
scaling the pod deployment to increase a number of containerized applications operating in the pod deployment from zero to an integer number greater than or equal to one.

### Claim 5 (depends on 4)

The method of claim 4, wherein scaling the pod deployment to increase the number of containerized applications operating in the pod deployment comprises determining that a priority designation for the pod deployment is a greatest priority designation among a plurality of pod deployments.

### Claim 6 (depends on 1)

The method of claim 1, wherein the operations further comprise receiving an event-criteria list from a deployment controller associated with the pod deployment, the event-criteria list comprising one or more events watched by the deployment controller, the deployment controller configured to respond to events from the event-criteria list that occur with respect to the pod deployment.

### Claim 7 (depends on 6)

The method of claim 6, wherein scaling the pod deployment by decreasing the number of pods in the pod deployment comprises downscaling the pod deployment to zero such that respective resources reserved for the pod deployment are returned to an available resource pool when the deployment controller corresponding to the pod deployment is idle.

### Claim 8 (depends on 6)

The method of claim 6, wherein determining whether the deployment controller is idle comprises:
analyzing events that have occurred during a threshold period of time; and
determining that the deployment controller is idle when no events on the event-criteria list have occurred within the threshold period of time.

### Claim 9 (depends on 1)

The method of claim 1,
wherein, when a second system metric for computing resources associated with a second pod deployment satisfies the threshold resource metric, the operations further comprise:
determining that the second pod deployment is idle based on an event-criteria list for a deployment controller; and
preventing a termination procedure from terminating the idle second pod deployment.

### Claim 10 (depends on 1)

The method of claim 1, wherein a deployment controller is configured to control pod deployment of the containerized applications.

### Claim 11

A system comprising:
data processing hardware; and
memory hardware in communication with the data processing hardware, the memory hardware storing instructions that when executed on the data processing hardware cause the data processing hardware to perform operations comprising:
receiving, from a distributed computing system, a system metric for computing resources associated with a pod deployment of containerized applications hosted at the distributed computing system, each pod of the pod deployment executing one of the containerized applications, the pod deployment having a deployment size that specifies a number of pods in the pod deployment;
determining whether the system metric satisfies a threshold resource metric, the threshold resource metric indicating a target resource utilization for the pod deployment of containerized applications;
when the system metric fails to satisfy the threshold resource metric, scaling the pod deployment by decreasing the number of pods in the pod deployment based on adjusting the deployment size of the pod deployment; and
when the system metric satisfies the threshold resource metric, maintaining the deployment size for the pod deployment.

### Claim 12 (depends on 11)

The system of claim 11, wherein scaling the pod deployment by decreasing the number of pods in the pod deployment comprises downscaling the pod deployment to zero such that respective resources reserved for the pod deployment are returned to an available resource pool.

### Claim 13 (depends on 12)

The system of claim 12, wherein downscaling the pod deployment to zero comprises:
setting the deployment size of the pod deployment to zero; and
terminating the containerized applications operating in the pod deployment.

### Claim 14 (depends on 12)

The system of claim 12, wherein the operations further comprise, after downscaling the pod deployment to zero:
determining that the system metric satisfies the threshold resource metric; and
scaling the pod deployment to increase a number of containerized applications operating in the pod deployment from zero to an integer number greater than or equal to one.

### Claim 15 (depends on 14)

The system of claim 14, wherein scaling the pod deployment to increase the number of containerized applications operating in the pod deployment comprises determining that a priority designation for the pod deployment is a greatest priority designation among a plurality of pod deployments.

### Claim 16 (depends on 11)

The system of claim 11, wherein the operations further comprise receiving an event-criteria list from a deployment controller associated with the pod deployment, the event-criteria list comprising one or more events watched by the deployment controller, the deployment controller configured to respond to events from the event-criteria list that occur with respect to the pod deployment.

### Claim 17 (depends on 16)

The system of claim 16, wherein scaling the pod deployment by decreasing the number of pods in the pod deployment comprises downscaling the pod deployment to zero such that respective resources reserved for the pod deployment are returned to an available resource pool when the deployment controller corresponding to the pod deployment is idle.

### Claim 18 (depends on 16)

The system of claim 16, wherein determining whether the deployment controller is idle comprises:
analyzing events that have occurred during a threshold period of time; and
determining that the deployment controller is idle when no events on the event-criteria list have occurred within the threshold period of time.

### Claim 19 (depends on 11)

The system of claim 11,
wherein, when a second system metric for computing resources associated with a second pod deployment satisfies the threshold resource metric, the operations further comprise:
determining that the second pod deployment is idle based on an event-criteria list for a second deployment controller; and
preventing a termination procedure from terminating the idle second pod deployment.

### Claim 20 (depends on 11)

The system of claim 11, wherein a deployment controller is configured to control the pod deployment of the containerized applications.
