IP Library Granted Patent US 12,189,624
Granted Patent B1
US 12,189,624 · App. 18/162,622 · Granted Jan 7, 2025

Facilitating management and storage of configurations

Inventors: Liang Han (Pleasanton, CA); Vishal Patel (San Francisco, CA); Sundar R. Vasan (San Francisco, CA); Eric Woo (San Francisco, CA)
Assignee: Splunk Inc.
G06F16/24539G06F16/2474
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,189,624
App. No.
18/162,622
Granted
Jan 7, 2025
Kind
B1
Abstract

Embodiments described herein are directed to facilitating management and storage of configurations. In one embodiment, a request to provide configurations associated with a user-application pair is identified. Based on the user-application pair, a user-defined configuration cache is accessed to obtain user-defined configurations, an application-defined configuration cache is accessed to obtain application-defined configurations, and a system-defined configuration cache is accessed to obtain system-defined configurations. Thereafter, at least a portion of the user-defined configurations, the application-defined configurations, and the system-defined configurations are aggregated or merged to generate a set of configurations associated with the user-application pair. Such a set of configurations associated with the user-application pair are provided for use in performing a task.

Claims (54)

1. A computer-implemented method, comprising:

identifying a request to provide configurations associated with a user-application pair, the configurations comprising information or settings for performing a task;

in response to the request to provide configurations associated with the user-application pair and based on the user-application pair, accessing a user-defined configuration cache to obtain user-defined configurations defined for a particular user in association with a particular application, an application-defined configuration cache to obtain application-defined configurations defined for the particular application, and a system-defined configuration cache to obtain system-defined configurations defined for a particular system;

aggregating at least a portion of the user-defined configurations, the application-defined configurations, and the system-defined configurations to generate a set of configurations associated with the user-application pair; and

providing the set of configurations associated with the user-application pair for use in performing the task.

2. The computer-implemented method of claim 1 , wherein the request to provide configurations is obtained at an execution time for performing the task.

3. The computer-implemented method of claim 1 , wherein the user-defined configuration cache, the application-defined configuration cache, and the system-defined configuration cache are separate configuration caches.

4. The computer-implemented method of claim 1 , wherein the user-defined configuration cache is specific to the user-application pair, and the application-defined configuration cache and the system-defined configuration cache are shared in association with other user-application pairs.

5. The computer-implemented method of claim 1 , wherein the user-defined configuration cache, the application-defined configuration cache, and the system-defined configuration cache are generated in a layered structure.

6. The computer-implemented method of claim 1 , wherein the user-defined configurations include saved search configurations.

7. The computer-implemented method of claim 1 , wherein aggregating at least the portion of the user-defined configurations, the application-defined configurations, and the system-defined configurations includes applying permissions associated with the particular user.

8. The computer-implemented method of claim 1 , wherein aggregating at least the portion of the user-defined configurations, the application-defined configurations, and the system-defined configurations includes applying precedence for conflicting values.

9. The computer-implemented method of claim 1 , further comprising generating the user-defined configuration cache, the application-defined configuration cache, and/or the system-defined configuration cache by traversing a configuration path trie that represents one or more configuration files.

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

identifying a request to generate at least one configuration cache in association with the user-application pair;

determining that the application-defined configuration cache and the system-defined configuration cache associated with the user-application pair have been previously generated; and

generating the user-defined configuration cache in a top layer of a configuration cache structure.

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

identifying a request to generate at least one configuration cache in association with the user-application pair;

generating the user-defined configuration cache in a top layer of a configuration cache structure;

generating the application-defined configuration cache in a middle layer of the configuration cache structure; and

generating the system-defined configuration cache in a bottom layer of the configuration cache structure.

12. The computer-implemented method of claim 1 , wherein the user-defined configuration cache corresponds with atop layer of a configuration structure that includes a plurality of user-defined configuration caches corresponding with a plurality of user-application pairs, the application-defined configuration cache corresponds with a middle layer of the configuration structure that includes a plurality of application-defined configuration caches corresponding with a plurality of applications, and the system-defined configuration cache corresponds with a bottom layer of the configuration structure that includes a single system-defined configuration cache corresponding with a particular system.

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

identifying an indication of a modification associated with an application-defined configuration; and

updating the application-defined configuration cache to include the modification associated with the application-defined configuration.

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

identifying an indication of a modification associated with a system-define d configuration; and

updating the system-defined configuration cache to include the modification associated with the system-defined configuration.

15. A computing device, comprising:

a processor; and

a non-transitory computer-readable medium having stored thereon instructions when executed by the processor, cause the processor to perform operations including:

identifying a request to provide configurations associated with a user-application pair, the configurations comprising information or settings for performing a task;

in response to the request to provide configurations associated with the user-application pair and based on the user-application pair, accessing a user-defined configuration cache to obtain user-defined configurations defined for a particular user in association with a particular application, an application-defined configuration cache to obtain application-defined configurations defined for the particular application, and a system-defined configuration cache to obtain system-defined configurations defined for a particular system;

aggregating at least a portion of the user-defined configurations, the application-defined configurations, and the system-defined configurations to generate a set of configurations associated with the user-application pair; and

providing the set of configurations associated with the user-application pair for use in performing the task.

16. The computing device of claim 15 , wherein the operations further comprise:

identifying a request to generate at least one configuration cache in association with the user-application pair;

determining that the application-defined configuration cache and the system-defined configuration cache associated with the user-application pair have been previously generated; and

generating the user-defined configuration cache in a top layer of a configuration cache structure.

17. A non-transitory computer-readable medium having stored thereon instructions that, when executed by one or more processors, cause the one or more processor to perform operations including:

identifying a request to provide configurations associated with a user-application pair, the configurations comprising information or settings for performing a task;

in response to the request to provide configurations associated with the user-application pair and based on the user-application pair, accessing a user-defined configuration cache to obtain user-defined configurations defined for a particular user in association with a particular application, an application-defined configuration cache to obtain application-defined configurations defined for the particular application, and a system-defined configuration cache to obtain system-defined configurations defined for a particular system;

aggregating at least a portion of the user-defined configurations, the application-defined configurations, and the system-defined configurations to generate a set of configurations associated with the user-application pair; and

providing the set of configurations associated with the user-application pair for use in performing the task.

18. The medium of claim 17 , wherein the operations further comprise:

identifying a request to generate at least one configuration cache in association with the user-application pair;

generating the user-defined configuration cache in a top layer of a configuration cache structure;

generating the application-defined configuration cache in a middle layer of the configuration cache structure; and

generating the system-defined configuration cache in a bottom layer of the configuration cache structure.

19. The medium of claim 17 , wherein the user-defined configuration cache corresponds with a top layer of a configuration structure that includes a plurality of user-defined configuration caches corresponding with a plurality of user-application pairs, the application-defined configuration cache corresponds with a middle layer of the configuration structure that includes a plurality of application-defined configuration caches corresponding with a plurality of applications, and the system-defined configuration cache corresponds with a bottom layer of the configuration structure that includes a single system-defined configuration cache corresponding with a particular system.

20. The medium of claim 17 , wherein the operations further comprise:

identifying an indication of a modification associated with a system-define d configuration; and

updating the system-defined configuration cache to include the modification associated with the system-defined configuration.

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 →
CHANGE OF NAME Recorded Jan 6, 2025
From: SPLUNK INC.
To: SPLUNK LLC
Reel/Frame 069826/0060 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 12, 2023
From: HAN, LIANG; PATEL, VISHAL; VASAN, SUNDAR R.; WOO, ERIC
To: SPLUNK INC.
Reel/Frame 064232/0460 →
References Cited (19)
US 7047366B1 · Ezra · 2006 [cited by examiner]
US 7937344B2 · Baum et al. · 2011 [cited by applicant]
US 8112425B2 · Baum et al. · 2012 [cited by applicant]
US 8751529B2 · Zhang et al. · 2014 [cited by applicant]
US 8788525B2 · Neels et al. · 2014 [cited by applicant]
US 9215240B2 · Merza et al. · 2015 [cited by applicant]
US 9286413B1 · Coates et al. · 2016 [cited by applicant]
US 10127258B2 · Lamas et al. · 2018 [cited by applicant]
US 20090182836A1 · Aviles · 2009 [cited by examiner]
US 20120054440A1 · Doig · 2012 [cited by examiner]
US 20170249176A1 · Elias · 2017 [cited by examiner]
US 20180083835A1 · Cole · 2018 [cited by examiner]
US 20190098106A1 · Mungel et al. · 2019 [cited by applicant]
WO WO2015042551A2 · 2015 [cited by examiner]
Splunk Enterprise 8.0.0 Overview, available online, retrieved May 20, 2020 from docs.splunk.com. [cited by applicant]
Splunk Cloud 8.0.2004 User Manual, available online, retrieved May 20, 2020 from docs.splunk.com. [cited by applicant]
Splunk Quick Reference Guide, updated 2019, available online at https://www.splunk.com/pdfs/solution-guides/splunk-quick-reference-guide.pdf, retrieved May 20, 2020. [cited by applicant]
Carraso, David, “Exploring Splunk,” published by CITO Research, New York, NY, Apr. 2012. [cited by applicant]
Bitincka, Ledion et al., “Optimizing Data Analysis with a Semi-structured Time Series Database,” self-published, first presented at “Workshop on Managing Systems via Log Analysis and Machine Learning Techniques (SLAML)”… [cited by applicant]