IP Library Granted Patent US 12,299,437
Granted Patent B2
US 12,299,437 · App. 16/934,846 · Granted May 13, 2025

Method and system for updating configuration settings during the execution of an application

Inventor: Christina Martin Patrick (Tampa, FL)
Assignee: Salesforce, Inc.
G06F8/71G06F8/656G06F9/44505
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,299,437
App. No.
16/934,846
Granted
May 13, 2025
Kind
B2
Abstract

Provided herein are system, method, and/or computer program product embodiments and/or combinations and sub-combinations thereof for updating configuration settings during the execution of an application. In a given embodiment, a central system may read a configuration value for a configuration setting of an application from a configuration file. The central system may assign the configuration value to a variable corresponding to the configuration setting. The central system may execute an operation on the variable corresponding to the configuration setting to change the variable to a new configuration value, independent of multiple threads executed by the application, while the application is being executed, and independent of the value of the configuration setting in the configuration file.

Claims (51)

1. A computer-implemented method, comprising:

responsive to an execution of an application, reading, by one or more processors, a configuration value of a configuration setting of the application from a configuration file, wherein the application is one of a plurality of applications in a multi-threaded environment, and wherein the application executes a plurality of threads, and wherein the configuration setting specifies a log-only-mode setting and the application uses the log-only-mode setting to determine whether to log a notification in a log file or provide the notification to a user as a live notification;

assigning the configuration value of the configuration setting to a variable corresponding to the configuration setting, the variable stored in a system memory in a central system and marked as final to prevent modification by a thread in the plurality of threads;

during the execution of the application, receiving a web request to change the variable to a new configuration value; and

responsive to the web request and during the execution of the application, executing an atomic operation on the variable to change the variable to the new configuration value independent of the configuration value of the configuration setting in the configuration file, wherein the plurality of threads of the application use the variable having the new configuration value during a remainder of the execution of the application by referencing the variable in the system memory at the central system.

2. The method of claim 1 , wherein a user interface input element corresponding to the variable is displayed on a user interface.

3. The method of claim 2 , further comprising:

receiving an input with respect to the user interface input element, on the user interface, indicating the new configuration value; and

generating an instruction to execute the atomic operation on the variable to change the variable to the new configuration value based on the web request.

4. The method of claim 1 , further comprising:

receiving a new request to change a set of variables to a set of new configuration values; and

executing a new atomic operation on each variable of the set of variables to change the set of variables to the set of new configuration values in parallel, independent of the plurality of threads executed by the application.

5. The method of claim 1 , wherein the web request includes an identifier of the variable and the new configuration value.

6. The method of claim 1 , the receiving the web request further comprising:

authenticating the user with a login and password; and

responsive to the authenticating, granting access to a user interface that allows the user to generate the web request.

7. The method of claim 1 , wherein the atomic operation is a set( ) operation.

8. A system comprising:

a memory; and

at least one processor coupled to the memory, the at least one processor configured to:

responsive to an execution of an application, read a configuration value of a configuration setting of the application from a configuration file, wherein the application is one of a plurality of applications in a multi-threaded environment, wherein the application executes a plurality of threads, and wherein the configuration setting specifies a log-only-mode setting and the application uses the log-only-mode setting to determine whether to log a notification in a log file or provide the notification to a user as a live notification;

assign the configuration value of the configuration setting to a variable corresponding to the configuration setting, the variable stored in a system memory in a central system and marked as final to prevent modification by a thread in the plurality of threads;

during the execution of the application, receive a web request to change the variable to a new configuration value; and

responsive to the web request and during the execution of the application, execute an atomic operation on the variable to change the variable to the new configuration value independent of the configuration value of the configuration setting in the configuration file, wherein the plurality of threads of the application use the variable having the new configuration value during a remainder of the execution of the application by referencing the variable in the system memory at the central system.

9. The system of claim 8 , the at least one processor further configured to cause a display of a user interface input element corresponding to the variable on a user interface.

10. The system of claim 9 , the at least one processor further configured to:

generate an instruction to execute the atomic operation on the variable to change the variable to the new configuration value based on the web request, wherein an input received on the user interface input element indicates the new configuration value.

11. The system of claim 8 , the at least one processor further configured to:

receive a new request to change a set of variables to a set of new configuration values; and

execute a new atomic operation on each variable of the set of variables to change the set of variables to the set of new configuration values in parallel, independent of the plurality of threads executed by the application.

12. The system of claim 8 , wherein the web request includes an identifier of the variable and the new configuration value.

13. The system of claim 8 , wherein to receive the web request the at least one processor is further configured to:

authenticate the user with a login and password; and

responsive to the authenticating, grant access to a user interface that allows the user to generate the web request.

14. The system of claim 8 , wherein the atomic operation is a set( ) operation.

15. A non-transitory computer-readable medium having instructions stored thereon, execution of which, by one or more processors of a device, cause the one or more processors to perform operations comprising:

responsive to an execution of an application, reading a configuration value of a configuration setting of the application from a configuration file, wherein the application is one of a plurality of applications in a multi-threaded environment, wherein the application executes a plurality of threads, and wherein the configuration setting specifies a log-only-mode setting and the application uses the log-only-mode setting to determine whether to log a notification in a log file or provide the notification to a user as a live notification;

assigning the configuration value of the configuration setting to a variable corresponding to the configuration setting, the variable stored in a system memory in a central system and marked as final to prevent modification by a thread in the plurality of threads;

during the execution of the application, receiving a web request to change the variable to a new configuration value; and

responsive to the web request and during the execution of the application, executing an atomic operation on the variable to change the variable to the new configuration value independent of the configuration value of the configuration setting in the configuration file, wherein the plurality of threads of the application use the variable having the new configuration value during a remainder of the execution of the application by referencing the variable in the system memory at the central system.

16. The non-transitory computer-readable medium of claim 15 , the operations further comprising displaying a user interface input element corresponding to the variable on a user interface.

17. The non-transitory computer-readable medium of claim 16 , the operations further comprising:

receiving an input with respect to the user interface input element, on the user interface, indicating the new configuration value; and

generating an instruction to execute the atomic operation on the variable to change the variable to the new configuration value based on the web request.

18. The non-transitory computer-readable medium of claim 15 , the operations further comprising:

receiving a new request to change a set of variables to a set of new configuration values; and

executing a new atomic operation on each variable of the set of variables to change the set of variables to the set of new configuration values in parallel, independent of the plurality of threads executed by the application.

19. The non-transitory computer-readable medium of claim 15 , wherein the web request includes an identifier of the variable and the new configuration value.

20. The non-transitory computer-readable medium of claim 15 , the operations further comprising:

authenticating the user with a login and password; and

responsive to the authenticating, granting access to a user interface that allows the user to generate the web request.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 19, 2025
From: PATRICK, CHRISTINA MARTIN
To: SALESFORCE.COM, INC.
Reel/Frame 070561/0427 →
CHANGE OF NAME Recorded Nov 20, 2024
From: SALESFORCE.COM, INC.
To: SALESFORCE, INC.
Reel/Frame 069406/0699 →
Continuity (1)
Related Publication 20220027146A1 · Jan 27, 2022
References Cited (34)
US 7784031B1 · Borg · 2010 [cited by examiner]
US 10282307B1 · Escriva · 2019 [cited by examiner]
US 10496532B1 · Kaitha · 2019 [cited by examiner]
US 10782883B1 · Henning · 2020 [cited by examiner]
US 10908971B1 · Gonzalez · 2021 [cited by examiner]
US 20080098379A1 · Newman · 2008 [cited by examiner]
US 20100229160A1 · Ishizaki · 2010 [cited by examiner]
US 20110219361A1 · Dolby · 2011 [cited by examiner]
US 20150370598A1 · Bailey · 2015 [cited by examiner]
US 20160011992A1 · Sandoz · 2016 [cited by examiner]
US 20160087855A1 · Vlachogiannis · 2016 [cited by examiner]
US 20170139725A1 · Koufogiannakis · 2017 [cited by examiner]
US 20200285456A1 · Kumar · 2020 [cited by examiner]
US 20200295983A1 · Watanabe · 2020 [cited by examiner]
US 20200372531A1 · Kesiboyana · 2020 [cited by examiner]
US 20210141783A1 · Lucas · 2021 [cited by examiner]
US 20210208907A1 · Preston · 2021 [cited by examiner]
US 20210240923A1 · Martinov · 2021 [cited by examiner]
Configurations Everywhere: Implications for Testing and Debugging in Practice Dongpu Jin, Xiao Qu, Myra B. Cohen (Year: 2014). [cited by examiner]
Dynamically reconfigure your Java applications—Dynamic configuration lets you reconfigure your Java apps—while they're running Thomas E. Davis (Year: 1999). [cited by examiner]
A Portable Grid-Enabled Computing System for a Nuclear Material Study Yuichi Tsujita, Tatsumi Arima (Year: 2010). [cited by examiner]
Providing an Efficient Lockless Hash Table for Multi-Core Reachability in Java Bas van den Brink (Year: 2014). [cited by examiner]
Advances in Digital Forensics Chapter 9: Reconstructing Tabbed Browser Sessions Using Metadata Associations Sriram Raghavan and S.V. Raghavan (Year: 2016). [cited by examiner]
The search for the Goldilocks browser and why Firefox might be “just right” for you Ryan Pollock medium.com/mozilla-tech/the-search-for-the-goldilocks-browser-and-why-firefox-may-be-just-right-for-you-1f520506aa35 (Year… [cited by examiner]
An Architecture for a Policy-Oriented Web Browser Management System: HiFiPol: Browser Ananth A. Jillepalli and Daniel Conte de Leon (Year: 2016). [cited by examiner]
Firefox—PrefAPI (prefapi.h and prefapi.cpp) source code Mozilla; Commit#: e004ec8 github.com/mozilla/gecko-dev/blob/041e66aa0e2788827a2382cdabab2a18c564b510/modules/libpref/src/prefapi.h (Year: 2013). [cited by examiner]
SharedPreferences.Editor Android Platform Developer API Reference web.archive.org/web/20191228091639/https://developer.android.com/reference/android/content/SharedPreferences.Editor (Year: 2019). [cited by examiner]
Android Wifi Service source code excerpts WifiConfigStore.java, li. 1-1141; WifiStateMachine.java, li. 1-253 and 1255-1473 commit#: a8647b8cb29de22765062714cb265247234c3d32android.googlesource.com/platform/frameworks/op… [cited by examiner]
The Java Tutorials—Atomic Variables Oracle web.archive.org/web/20120607080422/https://docs.oracle.com/javase/tutorial/essential/concurrency/atomicvars.html (Year: 2012). [cited by examiner]
Java Concurrency in Practice Brian Goetz, Tim Peierls, Joshua Bloch, Joseph Bowbeer, David Holmes, Doug Lea Addison-Wesley Professional; ISBN-10: 0-321-34960-1 (Year: 2006). [cited by examiner]
BeatMaster Documentation Eamonn F. Martin, Version 2.1 Retrieved: doc.gold.ac.uk/eamonn/software/BeatMaster/info.html (Year: 1998). [cited by examiner]
Sharing appsettings.json configuration files between projects in asp.net Core Andrew Lock Retrieved: andrewlock.net/sharing-appsettings-json-configuration-files-between-projects-in-asp-net-core/ (Year: 2018). [cited by examiner]
EMAV: Otoacoustic Emission Averager Stephen Neely and Zhiqiang Liu Technical Memorandum 17; Boys Town National Research Hospital (Year: 2015). [cited by examiner]
Winston README.md Author: Charlie Robbins; Contributors: Jarrett Cruger, David Hyde, Chris Alderson GitHub documentation; commit 3d07a80 https://github.com/winstonjs/winston/blob/3d07a80a52f5c1df0f3a7823d7c08a350a30ac58… [cited by examiner]