IP Library Granted Patent US 12,229,049
Granted Patent B2
US 12,229,049 · App. 18/336,154 · Granted Feb 18, 2025

Determining caching parameter metrics for caching data elements

Inventors: Madhusmita Patil (Hyderabad, IN); Harish Bharti (Pune, IN); Siddhartha Sood (Ghaziabad, IN); Shweta Vohra (Farnborough, GB)
Assignee: International Business Machines Corporation
G06F12/0815
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,229,049
App. No.
18/336,154
Granted
Feb 18, 2025
Kind
B2
Abstract

Managing data element caching is provided. Non-functional requirements of a system running an application are mapped to resource utilization and system performance metric values corresponding to each of a plurality of caching parameters for each of data elements corresponding to the application suitable for caching. A caching decision is generated for each of the data elements corresponding to the application suitable for caching by identifying certain ones of the data elements for the caching to improve at least one of performance and throughput of the system based on the mapping. A data element caching decision recommendation is generated for the application based on the caching decision. The data element caching decision recommendation corresponding to the application is output to a client device of a customer via a network.

Claims (64)

1. A computer-implemented method for managing data element caching, the computer-implemented method comprising:

mapping, by a computer, non-functional requirements of a system running an application to resource utilization and system performance metric values corresponding to each of a plurality of caching parameters for each of data elements corresponding to the application suitable for caching in response to performing an automated code analysis of the application;

generating, by the computer, a caching decision for each of the data elements corresponding to the application suitable for caching by identifying certain ones of the data elements for caching to improve at least one of performance and throughput of the system based on the mapping of the non-functional requirements of the system running the application to the resource utilization and system performance metric values corresponding to each of the plurality of caching parameters for each of the data elements;

generating, by the computer, a data element caching decision recommendation for the application based on the caching decision identifying the certain ones of the data elements for caching to improve the at least one of the performance and the throughput of the system; and

outputting, by the computer, the data element caching decision recommendation corresponding to the application identifying the certain ones of the data elements for caching to improve the at least one of the performance and the throughput of the system to a client device of a customer via a network.

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

receiving, by the computer, production validation feedback regarding the data element caching decision recommendation corresponding to the application from the client device of the customer via the network after implementation in the system running the application;

determining, by the computer, whether the production validation feedback received from the customer was negative; and

storing, by the computer, the data element caching decision recommendation corresponding to the application in a database in response to the computer determining that the production validation feedback received from the customer was not negative.

3. The computer-implemented method of claim 2 , further comprising:

performing, by the computer, a set of action steps that includes at least one of highlighting portions of audit logs corresponding to the system running the application where potential issues exist so that a program developer can determine possible code rebuild of the application or reevaluating the resource utilization and system performance metric values corresponding to each of the plurality of caching parameters to generate a new data element caching decision for the application in response to the computer determining that the production validation feedback received from the customer was negative.

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

receiving, by the computer, a request from the client device of the customer via the network to identify data elements of a plurality of data elements corresponding to the application running on the system in a production environment suitable for caching to improve the at least one of the performance and the throughput of the system in response to the customer identifying an issue with a service provided to users by the application;

retrieving, by the computer, audit logs corresponding to the system running the application from an audit log database in response to receiving the request; and

performing, by the computer, an analysis of the audit logs corresponding to the system running the application to identify historical caching of the plurality of data elements corresponding to the application.

5. The computer-implemented method of claim 4 , further comprising:

identifying, by the computer, the data elements suitable for caching based on the analysis of the audit logs corresponding to the system running the application; and

determining, by the computer, the resource utilization and system performance metric values corresponding to each of the plurality of caching parameters for each of the data elements suitable for caching based on the analysis of the audit logs corresponding to the system running the application.

6. The computer-implemented method of claim 5 , wherein the plurality of caching parameters includes at least one of cache refresh overhead, dirty read tolerance, cached data volatility, caching parameter frequency of usage, or resource utilization for caching.

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

performing, by the computer, the automated code analysis of the application to identify the non-functional requirements of the system running the application.

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

implementing, by the computer, the data element caching decision recommendation corresponding to the application automatically in the system running the application in a production environment.

9. The computer-implemented method of claim 1 , wherein caching is in-memory caching in the system running the application in a production environment.

10. A computer system for managing data element caching, the computer system comprising:

a communication fabric;

a storage device connected to the communication fabric, wherein the storage device stores program instructions; and

a processor connected to the communication fabric, wherein the processor executes the program instructions to:

map non-functional requirements of a system running an application to resource utilization and system performance metric values corresponding to each of a plurality of caching parameters for each of data elements corresponding to the application suitable for caching in response to performing an automated code analysis of the application;

generate a caching decision for each of the data elements corresponding to the application suitable for caching by identifying certain ones of the data elements for caching to improve at least one of performance and throughput of the system based on mapping the non-functional requirements of the system running the application to the resource utilization and system performance metric values corresponding to each of the plurality of caching parameters for each of the data elements;

generate a data element caching decision recommendation for the application based on the caching decision identifying the certain ones of the data elements for caching to improve the at least one of the performance and the throughput of the system; and

output the data element caching decision recommendation corresponding to the application identifying the certain ones of the data elements for caching to improve the at least one of the performance and the throughput of the system to a client device of a customer via a network.

11. The computer system of claim 10 , wherein the processor further executes the program instructions to:

receive production validation feedback regarding the data element caching decision recommendation corresponding to the application from the client device of the customer via the network after implementation in the system running the application;

determine whether the production validation feedback received from the customer was negative; and

store the data element caching decision recommendation corresponding to the application in a database in response to determining that the production validation feedback received from the customer was not negative.

12. The computer system of claim 11 , wherein the processor further executes the program instructions to:

perform a set of action steps that includes at least one of highlighting portions of audit logs corresponding to the system running the application where potential issues exist so that a program developer can determine possible code rebuild of the application or reevaluating the resource utilization and system performance metric values corresponding to each of the plurality of caching parameters to generate a new data element caching decision for the application in response to determining that the production validation feedback received from the customer was negative.

13. The computer system of claim 10 , wherein the processor further executes the program instructions to:

receive a request from the client device of the customer via the network to identify data elements of a plurality of data elements corresponding to the application running on the system in a production environment suitable for caching to improve the at least one of the performance and the throughput of the system in response to the customer identifying an issue with a service provided to users by the application;

retrieve audit logs corresponding to the system running the application from an audit log database in response to receiving the request; and

perform an analysis of the audit logs corresponding to the system running the application to identify historical caching of the plurality of data elements corresponding to the application.

14. The computer system of claim 13 , wherein the processor further executes the program instructions to:

identify the data elements suitable for caching based on the analysis of the audit logs corresponding to the system running the application; and

determine the resource utilization and system performance metric values corresponding to each of the plurality of caching parameters for each of the data elements suitable for caching based on the analysis of the audit logs corresponding to the system running the application.

15. A computer program product for managing data element caching, the computer program product comprising a computer-readable storage medium having program instructions embodied therewith, the program instructions executable by a computer to cause the computer to:

map non-functional requirements of a system running an application to resource utilization and system performance metric values corresponding to each of a plurality of caching parameters for each of data elements corresponding to the application suitable for caching in response to performing an automated code analysis of the application;

generate a caching decision for each of the data elements corresponding to the application suitable for caching by identifying certain ones of the data elements for caching to improve at least one of performance and throughput of the system based on mapping the non-functional requirements of the system running the application to the resource utilization and system performance metric values corresponding to each of the plurality of caching parameters for each of the data elements;

generate a data element caching decision recommendation for the application based on the caching decision identifying the certain ones of the data elements for caching to improve the at least one of the performance and the throughput of the system; and

output the data element caching decision recommendation corresponding to the application identifying the certain ones of the data elements for caching to improve the at least one of the performance and the throughput of the system to a client device of a customer via a network.

16. The computer program product of claim 15 , wherein the program instructions further cause the computer to:

receive production validation feedback regarding the data element caching decision recommendation corresponding to the application from the client device of the customer via the network after implementation in the system running the application;

determine whether the production validation feedback received from the customer was negative; and

store the data element caching decision recommendation corresponding to the application in a database in response to determining that the production validation feedback received from the customer was not negative.

17. The computer program product of claim 16 , wherein the program instructions further cause the computer to:

perform a set of action steps that includes at least one of highlighting portions of audit logs corresponding to the system running the application where potential issues exist so that a program developer can determine possible code rebuild of the application or reevaluating the resource utilization and system performance metric values corresponding to each of the plurality of caching parameters to generate a new data element caching decision for the application in response to determining that the production validation feedback received from the customer was negative.

18. The computer program product of claim 15 , wherein the program instructions further cause the computer to:

receive a request from the client device of the customer via the network to identify data elements of a plurality of data elements corresponding to the application running on the system in a production environment suitable for caching to improve the at least one of the performance and the throughput of the system in response to the customer identifying an issue with a service provided to users by the application;

retrieve audit logs corresponding to the system running the application from an audit log database in response to receiving the request; and

perform an analysis of the audit logs corresponding to the system running the application to identify historical caching of the plurality of data elements corresponding to the application.

19. The computer program product of claim 18 , wherein the program instructions further cause the computer to:

identify the data elements suitable for caching based on the analysis of the audit logs corresponding to the system running the application; and

determine the resource utilization and system performance metric values corresponding to each of the plurality of caching parameters for each of the data elements suitable for caching based on the analysis of the audit logs corresponding to the system running the application.

20. The computer program product of claim 19 , wherein the plurality of caching parameters includes at least one of cache refresh overhead, dirty read tolerance, cached data volatility, caching parameter frequency of usage, or resource utilization for caching.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 16, 2023
From: PATIL, MADHUSMITA; BHARTI, HARISH; SOOD, SIDDHARTHA; VOHRA, SHWETA
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 063970/0964 →
Continuity (1)
Related Publication 20240419592A1 · Dec 19, 2024
References Cited (20)
US 8965819B2 · Tirunagari · 2015 [cited by applicant]
US 9563385B1 · Kowalski et al. · 2017 [cited by applicant]
US 10812846B1 · Vantalon · 2020 [cited by examiner]
US 20050240732A1 · Crick · 2005 [cited by examiner]
US 20160117254A1 · Susarla et al. · 2016 [cited by applicant]
US 20160378666A1 · Amrhein · 2016 [cited by examiner]
US 20180024924A1 · Winkler · 2018 [cited by applicant]
US 20190155736A1 · Hagersten et al. · 2019 [cited by applicant]
US 20220114108A1 · Koker et al. · 2022 [cited by applicant]
WO WO2013105960A1 · 2013 [cited by examiner]
“Caching Best Practices,” copyright 2023, Amazon Web Services, accessed Jun. 7, 2023, 10 pages. https://aws.amazon.com/caching/best-practices/. [cited by applicant]
“Working with Java Object Cache,” Oracle9iAS Containers for J2EE Services Guide, Release 2 (9.0.3), Part No. A97690-01, copyright 1996, 2002, Oracle Corporation, accessed Jun. 7, 2023, 37 pages. https://docs.oracle.com/… [cited by applicant]
Erman et al., “To Cache or not to Cache: The 3G case,” IEEE Internet Computing, vol. 15, Issue 2, Mar.-Apr. 2011, 6 pages. https://math.mit.edu/˜hajiagha/InternetComputing.pdf. [cited by applicant]
Huskin, “Types of Data Caching for Different Business Use Cases,” Transforming Data with Intelligence, Feb. 16, 2021, copyright 2023, TDWI, accessed Jun. 7, 2023, 7 pages. https://tdwi.org/articles/2021/02/16/arch-all-t… [cited by applicant]
Johnson, “What is a cache? A complete guide to caches and their important uses on your computer, phone, and other devices,” Business Insider, Jul. 7, 2020, copyright 2023, Times Internet Limited, Times Syndication Servi… [cited by applicant]
Nath, “All things caching—use cases, benefits, strategies, choosing a caching technology, exploring some popular products,” DataDrivenInvestor, Dec. 1, 2018, accessed Jun. 7, 2023, 35 pages. https://medium.datadriveninv… [cited by applicant]
Park et al., “CCA: Cost-Capacity-Aware Caching for In-Memory Data Analytics Frameworks,” Sensors 2021, vol. 21, Apr. 2021, 18 pages. https://www.ncbi.nlm.nih.gov/pmc/articles/PMC8036346/. [cited by applicant]
Rayburn, “When It Comes to Cache Hit Ratio and CDNs, the Devil Is in the Details,” Jun. 20, 2017, Streaming Media Blog, accessed Jun. 7, 2023, 11 pages. https://www.streamingmediablog.com/2017/06/cache-hit-ratios.html. [cited by applicant]
Tsigkari et al., “User-centric optimization of caching and recommendations in edge cache networks,” 2020 IEEE 21st International Symposium on “A World of Wireless, Mobile and Multimedia Networks (WoWMoM),” Aug. 31-Sep. … [cited by applicant]
Wu et al., “PackCache: An Online Cost-driven Data Caching Algorithm in the Cloud,” IEEE Transactions on Computers, vol. 72, Issue 4, Apr. 1, 2023, 9 pages. https://arxiv.org/pdf/2207.09035.pdf. [cited by applicant]