IP Library Granted Patent US 11,200,081
Granted Patent B2
US 11,200,081 · App. 16/659,553 · Granted Dec 14, 2021

Systems and methods for tuning containers in a high availability environment

Inventors: Beau Croteau (Bay Shore, NY); Robert Blue (Issaquah, WA); Jeremyah Corner (Renton, WA)
Assignee: ForgeRock, Inc.
G06F9/45558G06F9/5077G06F2009/4557G06F2009/45562
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,200,081
App. No.
16/659,553
Granted
Dec 14, 2021
Kind
B2
Abstract

The disclosed technology teaches tuning containers in pods, in a high availability environment that runs two or more pods to implement a service, while the containers are running, including instrumenting a tunable container to communicate application metrics to a tuning engine that runs in a pod and maintains current configuration state information for the container. The tuning engine accesses the application metrics and a rule that specifies tuning of resource configuration for the container. The rule combines variables in the metrics to determine whether an update should be applied to the container. The tuning engine determines a new resource configuration for the tunable container and updates the configuration state information for the container according to the new configuration. An update manager detects updating of the configuration state information and performs a rolling update of instances of the tunable container in the pods that implement the service.

Claims (38)

1. A computer-implemented method of tuning of containers in pods, in a high availability environment that runs two or more pods to implement a particular service, while the containers are running, including:

instrumenting a tunable container to communicate application metrics to a tuning engine that runs in a pod and maintains current configuration state information for the tunable container;

the tuning engine accessing the application metrics and a rule that specifies tuning of resource configuration for the tunable container, wherein the rule combines a plurality of variables in the application metrics to determine whether a tuning update should be applied to the tunable container;

the tuning engine, responsive to applying the rule, determining a new resource configuration for the tunable container and updating the configuration state information for the tunable container according to the new resource configuration;

wherein the new resource configuration updates one or more of a cache size, number of concurrent connections, number of work threads in a pool, and number of open files allowed, for the tunable container; and

an update manager detecting updating of the configuration state information and performing a rolling update of instances of the tunable container in the pods, while the particular service is running.

2. The computer-implemented method of claim 1 , wherein the instances of the tunable container include a deployment running in containers.

3. The computer-implemented method of claim 1 , wherein the current configuration state information for the tunable container is expressed in a yet another markup language (abbreviated YAML) file that describes a related set of resources in the high availability environment.

4. The computer-implemented method of claim 1 , wherein the current configuration state information for the tunable container is expressed in a deployment resource bundle with at least one file that describes a related set of resources for pods in the high availability environment.

5. The computer-implemented method of claim 1 , further including the update manager deploying updated tunable container instances from the updated configuration state information, in pods during the rolling update of instances.

6. The computer-implemented method of claim 1 , further including the update manager, during the rolling update of instances of the tunable container:

continuing to run a configurable minimum number of instances of the tunable container in the pods, and

deleting legacy pods that were instantiated from outdated configuration state information.

7. The computer-implemented method of claim 1 , wherein the tuning update includes adding an index associated with a field whose count of field lookups occurring during a configurable time period is greater than a configurable percent of a total count of field lookups during the configurable time period.

8. The computer-implemented method of claim 1 , wherein the tuning update includes deleting an index associated with a field that has an index and whose count of field lookups occurring during a configurable time period is less than a configurable percent of a total count of field lookups during the configurable time period.

9. The computer-implemented method of claim 1 , further including the tuning engine accessing the application metrics from which phases of operation can be determined and a rule that, based on the determined phase of operation, resets resource configuration of one or more of a cache size, number of concurrent connections, number of work threads in a pool, and number of open files allowed, for the tunable container.

10. The computer-implemented method of claim 1 , wherein the tuning engine uses persistent storage for maintaining current configuration state information for the tunable container to avoid loss of state information.

11. A tangible non-transitory computer readable storage media, including program instructions loaded into memory that, when executed on processors cause the processors to implement a method of tuning of containers in pods, in a high availability environment that runs two or more pods to implement a particular service, while the containers are running, the method including:

instrumenting a tunable container to communicate application metrics to a tuning engine that runs in a pod and maintains current configuration state information for the tunable container;

the tuning engine accessing the application metrics and a rule that specifies tuning of resource configuration for the tunable container, wherein the rule combines a plurality of variables in the application metrics to determine whether a tuning update should be applied to the tunable container;

the tuning engine, responsive to applying the rule, determining a new resource configuration for the tunable container and updating the configuration state information for the tunable container according to the new resource configuration;

wherein the new resource configuration updates one or more of a cache size, number of concurrent connections, number of work threads in a pool, and number of open files allowed, for the tunable container; and

an update manager detecting updating of the configuration state information and performing a rolling update of instances of the tunable container in the pods, while the particular service is running.

12. The tangible non-transitory computer readable storage media of claim 11 , wherein the instances of the tunable container include a deployment running in containers.

13. The tangible non-transitory computer readable storage media of claim 11 , wherein the current configuration state information for the tunable container is expressed in a yet another markup language (abbreviated YAML) file that describes a related set of resources in the high availability environment.

14. The tangible non-transitory computer readable storage media of claim 11 , wherein the current configuration state information for the tunable container is expressed in a deployment resource bundle with at least one file that describes a related set of resources for pods in the high availability environment.

15. The tangible non-transitory computer readable storage media of claim 11 , further including the update manager, during the rolling update of instances of the tunable container:

deploying updated tunable container instances from the updated configuration state information,

continuing to run a configurable minimum number of instances of the tunable container in the pods, and

deleting legacy pods that were instantiated from outdated configuration state information.

16. The tangible non-transitory computer readable storage media of claim 11 , wherein the tuning update includes adding an index associated with a field whose count of field lookups occurring during a configurable time period is greater than a configurable percent of a total count of field lookups during the configurable time period.

17. The tangible non-transitory computer readable storage media of claim 11 , wherein the tuning update includes deleting an index associated with a field that has an index and whose count of field lookups occurring during a configurable time period is less than a configurable percent of a total count of field lookups during the configurable time period.

18. A system for tuning containers in pods, in a high availability environment that runs two or more pods to implement a service, while the containers are running, the system including a processor coupled to the non-transitory computer readable storage media and computer instructions of claim 11 .

19. The system of claim 18 , further including computer instructions implementing the update manager, during the rolling update of instances of the tunable container:

deploying updated tunable container instances from the updated configuration state information,

continuing to run a configurable minimum number of instances of the tunable container in the pods, and

deleting legacy pods that were instantiated from outdated configuration state information.

20. The system of claim 18 , wherein the tuning update includes adding an index associated with a field that does not have an index, whose count of field lookups occurring during a configurable time period is greater than a configurable percent of a total count of field lookups during the configurable time period.

Assignments (5)
RELEASE OF SECURITY INTEREST AT R/F 65335/0890 Recorded Nov 14, 2025
From: BLUE OWL CAPITAL CORPORATION
To: PING IDENTITY CORPORATION (FORMERLY KNOWN AS FORGEROCK INC.)
Reel/Frame 073564/0791 →
SECURITY INTEREST Recorded Nov 13, 2025
From: PING IDENTITY CORPORATION; PING IDENTITY INTERNATIONAL, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 073557/0093 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 6, 2024
From: FORGEROCK, INC.
To: PING IDENTITY INTERNATIONAL, INC.
Reel/Frame 066358/0483 →
GRANT OF SECURITY INTEREST IN PATENT RIGHTS Recorded Oct 24, 2023
From: FORGEROCK, INC.
To: BLUE OWL CAPITAL CORPORATION (FORMERLY KNOWN AS OWL ROCK CAPITAL CORPORATION), AS COLLATERAL AGENT
Reel/Frame 065335/0890 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 30, 2019
From: CROTEAU, BEAU; BLUE, ROBERT; CORNER, JEREMYAH
To: FORGEROCK, INC.
Reel/Frame 050864/0226 →
Continuity (1)
Related Publication 20210117217A1 · Apr 22, 2021
Cited By (1)
US 12,405,864