A Comparative Study of Application-level Caching Recommendations at the Method Level

07/30/2022
by   Romulo Meloca, et al.
0

Performance and scalability requirements have a fundamental role in most large-scale software applications. To satisfy such requirements, caching is often used at various levels and infrastructure layers. Application-level caching – or memoization – is an increasingly used form of caching within the application boundaries, which consists of storing the results of computations in memory to avoid re-computing them. This is typically manually done by developers, who identify caching opportunities in the code and write additional code to manage the cache content. The task of identifying caching opportunities is a challenge because it requires the analysis of workloads and code locations where it is feasible and beneficial to cache objects. To aid developers in this task, there are approaches that automatically identify cacheable methods. Although such approaches have been individually evaluated, their effectiveness has not been compared. We thus in this paper present an empirical evaluation to compare the method recommendations made by the two existing application-level caching approaches at the method level, namely APLCache and MemoizeIt, using seven open-source web applications. We analyse the recommendations made by each approach as well as the hits, misses and throughput achieved with their valid caching recommendations. Our results show that the effectiveness of both approaches largely depends on the specific application, the presence of invalid recommendations and additional configurations, such as the time-to-live. By inspecting the obtained results, we observed in which cases the recommendations of each approach fail and succeed, which allowed us to derive a set of seven lessons learned that give directions for future approaches to support developers in the adoption of this type of caching.

READ FULL TEXT

page 19

page 20

research
11/01/2020

Understanding Application-Level Caching in Web Applications: A Comprehensive Introduction and Survey of State-of-the-Art

A new form of caching, namely application-level caching, has been recent...
research
10/31/2020

Automation of application-level caching in a seamless way

Meeting performance and scalability requirements while delivering servic...
research
10/31/2020

A Qualitative Study of Application-level Caching

Latency and cost of Internet-based services are encouraging the use of a...
research
10/24/2020

Satisfying Increasing Performance Requirements with Caching at the Application Level

Application-level caching is a form of caching that has been increasingl...
research
01/28/2020

InfiniCache: Exploiting Ephemeral Serverless Functions to Build a Cost-Effective Memory Cache

Internet-scale web applications are becoming increasingly storage-intens...
research
07/16/2020

Elicitation of SME Requirements for Cybersecurity Solutions by Studying Adherence to Recommendations

Small and medium-sized enterprises (SME) have become the weak spot of ou...
research
09/12/2018

Improved Basic Block Reordering

Basic block reordering is an important step for profile-guided binary op...

Please sign up or login with your details

Forgot password? Click here to reset