IP Library Granted Patent US 12,020,077
Granted Patent B1
US 12,020,077 · App. 17/246,459 · Granted Jun 25, 2024

Autoscaling in a stateful system

Inventors: Sumeet Rohatgi (Fremont, CA); Gaurav Chawla (San Jose, CA); Mehul Goyal (San Francisco, CA); Tyler Bakke (Saratoga, CA); Aditya Kamble (San Jose, CA); Hao Zhan (Cupertino, CA); Rahul Merulinath (Newark, CA); Ryan Flynn (San Francisco, CA); Matteo Merli (Menlo Park, CA); Boyang Peng (Mountain View, CA); Sanjeev Kulkarni (Los Altos, CA); Ivan Kelly (Barcelona, ES); Karthikeyan Ramasamy (Sunnyvale, CA)
Assignee: Splunk Inc.
G06F9/505G06F9/5022G06F9/5038G06F11/1492G06F11/203G06F11/3428
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 12,020,077
App. No.
17/246,459
Granted
Jun 25, 2024
Kind
B1
Abstract

A process for facilitating autoscaling in a stateful system is described herein. In embodiments, a set of metrics associated with a set of components of a stateful service is obtained. The set of metrics may generally indicate a utilization or a load of each of the components of the set of components (e.g., message managers and/or data stores). Thereafter, it is determined to initiate a scaling event at the stateful service in association with the set of components of the stateful service based on at least a portion of the set of metrics attaining a metric threshold indicating a threshold value for determining whether to scale stateful service components. A scaling request can then be provided to the stateful service to initiate the scaling event at the stateful service in association with the set of components of the stateful service.

Claims (36)

1. A computer-implemented method comprising:

obtaining a set of metrics associated with a set of components of a stateful service, the set of metrics indicating a utilization or a load of each of the components of the set of components;

referencing a scaling period that indicates a time duration to lapse between scaling events, wherein the scaling period corresponds with a type of components of the set of components comprising message managers or data stores;

determining that the scaling period has lapsed since a previous scaling event at the stateful service;

determining to initiate a scaling event at the stateful service in association with the set of components of the stateful service based on at least a portion of the set of metrics attaining a metric threshold indicating a threshold value for determining whether to scale stateful service components; and

initiating scaling event at the stateful service in association with the set of components of the stateful service, wherein the scaling event adds or removes a message manager or a data store of the stateful service.

2. The computer-implemented method of claim 1 , wherein the set of components comprise message managers, data stores, or a combination thereof.

3. The computer-implemented method of claim 1 , wherein the set of metrics comprise CPU utilizations or loads, network usage, a number of topics, a number of processes being executed, memory utilization, component availability, and/or utilization rates.

4. The computer-implemented method of claim 1 , wherein the scaling event comprises an upscaling event that increases a number of the set of components or a downscaling event that decreases a number of the set of components.

5. The computer-implemented method of claim 1 , wherein determining to initiate the scaling event is based on each component corresponding with metrics that attain the metric threshold.

6. The computer-implemented method of claim 1 , wherein determining to initiate the scaling event is based on a threshold level of components corresponding with metrics that attain the metric threshold.

7. The computer-implemented method of claim 1 , wherein determining to initiate the scaling event is based on an aggregate threshold being attained by the set of components.

8. The computer-implemented method of claim 1 further comprising:

selecting the scaling period, wherein the scaling period further corresponds with a type of scaling event, the type of scaling event comprising an upscaling event or a downscaling event.

9. The computer-implemented method of claim 1 , wherein the scaling period further corresponds with a type of scaling event, wherein a longer scaling period corresponds with an upscaling event and a shorter scaling period corresponds with a downscaling event, the longer scaling period being longer in time than the shorter scaling period.

10. The computer-implemented method of claim 1 , wherein determining to initiate the scaling event comprises determining to initiate a downscaling event in association with the set of components comprising data stores, and wherein the method further comprises:

initiating a replication of data at a first data store to be removed from the stateful service to a second data store of the stateful service; and

detecting completion of the replication of the data from the first data store to the second data store.

11. The computer-implemented method of claim 1 , wherein determining to initiate the scaling event comprises determining to initiate an upscaling or downscaling event in association with the set of components comprising message managers.

12. A system comprising:

a data store including computer-executable instructions; and

one or more processors configured to execute the computer-executable instructions, wherein execution of the computer-executable instructions causes the system to:

obtain a set of metrics associated with a set of components of a stateful service, the set of metrics indicating a utilization or a load of each of the components of the set of components;

reference a scaling period that indicates a time duration to lapse between scaling events, wherein the scaling period corresponds with a type of components of the set of components comprising message managers or data stores;

determine that the scaling period has lapsed since a previous scaling event at the stateful service;

determine to initiate a scaling event at the stateful service in association with the set of components of the stateful service based on at least a portion of the set of metrics attaining a metric threshold indicating a threshold value for determining whether to scale stateful service components; and

initiate the scaling event at the stateful service in association with the set of components of the stateful service, wherein the scaling event adds or removes a message manager or a data store of the stateful service.

13. Non-transitory computer-readable media including computer-executable instructions that, when executed by a computing system, cause the computing system to:

obtain a set of metrics associated with a set of components of a stateful service, the set of metrics indicating a utilization or a load of each of the components of the set of components;

reference a scaling period that indicates a time duration to lapse between scaling events, wherein the scaling period corresponds with a type of components of the set of components comprising message managers or data stores;

determine that the scaling period has lapsed since a previous scaling event at the stateful service;

determine to initiate a scaling event at the stateful service in association with the set of components of the stateful service based on at least a portion of the set of metrics attaining a metric threshold indicating a threshold value for determining whether to scale stateful service components; and

initiate the scaling event at the stateful service in association with the set of components of the stateful service, wherein the scaling event adds or removes a message manager or a data store of the stateful service.

14. The non-transitory computer-readable media of claim 13 , wherein the scaling period further corresponds with a type of scaling event, the type of scaling event comprising an upscaling event or a downscaling event.

15. The non-transitory computer-readable media of claim 13 further comprising:

selecting the scaling period, wherein the scaling period further corresponds with a type of scaling event, wherein a longer scaling period corresponds with an upscaling event and a shorter scaling period corresponds with a downscaling event, the longer scaling period being longer in time than the shorter scaling period.

Assignments (5)
CHANGE OF NAME Recorded Jul 22, 2025
From: SPLUNK INC.
To: SPLUNK LLC
Reel/Frame 072170/0599 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 22, 2025
From: SPLUNK LLC
To: CISCO TECHNOLOGY, INC.
Reel/Frame 072173/0058 →
CHANGE OF NAME Recorded Jan 6, 2025
From: SPLUNK INC.
To: SPLUNK LLC
Reel/Frame 069825/0782 →
EMPLOYMENT AGREEMENT Recorded Apr 9, 2024
From: FLYNN, RYAN; KELLY, IVAN
To: SPLUNK INC.
Reel/Frame 067055/0379 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 8, 2023
From: ROHATGI, SUMEET; CHAWLA, GAURAV; GOYAL, MEHUL; BAKKE, TYLER; KAMBLE, ADITYA; ZHAN, HAO; MERULINATH, RAHUL; MERLI, MATTEO; PENG, BOYANG; KULKARNI, SANJEEV; RAMASAMY, KARTHIKEYAN
To: SPLUNK INC.
Reel/Frame 065815/0407 →
Cited By (2)
US 12,423,143 US 12,719,937