Skip to main content
Erschienen in: Empirical Software Engineering 4/2022

01.07.2022

A comparative study of application-level caching recommendations at the method level

verfasst von: Rômulo Meloca, Ingrid Nunes

Erschienen in: Empirical Software Engineering | Ausgabe 4/2022

Einloggen

Aktivieren Sie unsere intelligente Suche, um passende Fachinhalte oder Patente zu finden.

search-config
loading …

Abstract

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.

Sie haben noch keine Lizenz? Dann Informieren Sie sich jetzt über unsere Produkte:

Springer Professional "Wirtschaft"

Online-Abonnement

Mit Springer Professional "Wirtschaft" erhalten Sie Zugriff auf:

  • über 67.000 Bücher
  • über 340 Zeitschriften

aus folgenden Fachgebieten:

  • Bauwesen + Immobilien
  • Business IT + Informatik
  • Finance + Banking
  • Management + Führung
  • Marketing + Vertrieb
  • Versicherung + Risiko




Jetzt Wissensvorsprung sichern!

Springer Professional "Technik"

Online-Abonnement

Mit Springer Professional "Technik" erhalten Sie Zugriff auf:

  • über 67.000 Bücher
  • über 390 Zeitschriften

aus folgenden Fachgebieten:

  • Automobil + Motoren
  • Bauwesen + Immobilien
  • Business IT + Informatik
  • Elektrotechnik + Elektronik
  • Energie + Nachhaltigkeit
  • Maschinenbau + Werkstoffe




 

Jetzt Wissensvorsprung sichern!

Springer Professional "Wirtschaft+Technik"

Online-Abonnement

Mit Springer Professional "Wirtschaft+Technik" erhalten Sie Zugriff auf:

  • über 102.000 Bücher
  • über 537 Zeitschriften

aus folgenden Fachgebieten:

  • Automobil + Motoren
  • Bauwesen + Immobilien
  • Business IT + Informatik
  • Elektrotechnik + Elektronik
  • Energie + Nachhaltigkeit
  • Finance + Banking
  • Management + Führung
  • Marketing + Vertrieb
  • Maschinenbau + Werkstoffe
  • Versicherung + Risiko

Jetzt Wissensvorsprung sichern!

Anhänge
Nur mit Berechtigung zugänglich
Fußnoten
1
Note that if new application-level caching approaches are proposed to recommend methods to cache, the same procedure can be used. The only requirement is to use the recommendations made by the new approach. We provide details on how to reproduce the study in Appendix 1 for those who would like to use our infrastructure to conduct similar studies.
 
2
The source code of our study is available for reproducibility at http://​inf.​ufrgs.​br/​prosoft/​resources/​2021/​emse-apl-caching-comparison.
 
15
Note that deciding the validity of the recommendation is not possible in these cases without discussing the requirements of each application with involved stakeholders. We considered these valid recommendations.
 
16
We remind the reader that additional charts to further inspect the results are available at http://​inf.​ufrgs.​br/​prosoft/​resources/​2021/​emse-apl-caching-comparison.
 
Literatur
Zurück zum Zitat Abbott ML, Fisher MT (2009) The art of scalability: scalable web architecture, processes, and organizations for the modern enterprise. Pearson Education Abbott ML, Fisher MT (2009) The art of scalability: scalable web architecture, processes, and organizations for the modern enterprise. Pearson Education
Zurück zum Zitat Alici S, Altingovde IS, Ozcan R, Barla Cambazoglu B, Ulusoy Ö (2012) Adaptive time-to-live strategies for query result caching in web search engines. In: Lecture notes in computer science (including subseries lecture notes in artificial intelligence and lecture notes in bioinformatics), vol 7224 LNCS, pp 401–412. https://doi.org/10.1007/978-3-642-28997-2_34 Alici S, Altingovde IS, Ozcan R, Barla Cambazoglu B, Ulusoy Ö (2012) Adaptive time-to-live strategies for query result caching in web search engines. In: Lecture notes in computer science (including subseries lecture notes in artificial intelligence and lecture notes in bioinformatics), vol 7224 LNCS, pp 401–412. https://​doi.​org/​10.​1007/​978-3-642-28997-2_​34
Zurück zum Zitat Candan KS, Li WS, Luo Q, Hsiung WP, Agrawal D (2001) Enabling dynamic content caching for database-driven web sites. ACM SIGMOD Record 30(2):532–543CrossRef Candan KS, Li WS, Luo Q, Hsiung WP, Agrawal D (2001) Enabling dynamic content caching for database-driven web sites. ACM SIGMOD Record 30(2):532–543CrossRef
Zurück zum Zitat Chen TH, Shang W, Hassan AE, Nasser M, Flora P (2016) CacheOptimizer: Helping Developers Configure Caching Frameworks for Hibernate-based Database-centric Web Applications. In: Proceedings of the 2016 24th ACM SIGSOFT international symposium on foundations of Software engineering - FSE 2016. ACM Press, New York, New York, USA, pp 666–677. https://doi.org/10.1145/2950290.2950303 Chen TH, Shang W, Hassan AE, Nasser M, Flora P (2016) CacheOptimizer: Helping Developers Configure Caching Frameworks for Hibernate-based Database-centric Web Applications. In: Proceedings of the 2016 24th ACM SIGSOFT international symposium on foundations of Software engineering - FSE 2016. ACM Press, New York, New York, USA, pp 666–677. https://​doi.​org/​10.​1145/​2950290.​2950303
Zurück zum Zitat Chen Z, Chen B, Xiao L, Wang X, Chen L, Liu Y, Xu B (2018) Speedoo: prioritizing performance optimization opportunities. In: Proceedings of the 40th international conference on software engineering. ACM, pp 811–821 Chen Z, Chen B, Xiao L, Wang X, Chen L, Liu Y, Xu B (2018) Speedoo: prioritizing performance optimization opportunities. In: Proceedings of the 40th international conference on software engineering. ACM, pp 811–821
Zurück zum Zitat Della Toffola L, Pradel M, Gross TR (2015) Performance problems you can fix: a dynamic analysis of memoization opportunities. In: Proceedings of the 2015 ACM SIGPLAN international conference on object-oriented programming, systems, languages, and applications - OOPSLA 2015. ACM Press, New York, New York, USA, pp 607–622. https://doi.org/10.1145/2814270.2814290 Della Toffola L, Pradel M, Gross TR (2015) Performance problems you can fix: a dynamic analysis of memoization opportunities. In: Proceedings of the 2015 ACM SIGPLAN international conference on object-oriented programming, systems, languages, and applications - OOPSLA 2015. ACM Press, New York, New York, USA, pp 607–622. https://​doi.​org/​10.​1145/​2814270.​2814290
Zurück zum Zitat Ghandeharizadeh S, Yap J, Barahmand S (2012) Cosar-cqn: an application transparent approach to cache consistency. In: Twenty first international conference On software engineering and data engineering Ghandeharizadeh S, Yap J, Barahmand S (2012) Cosar-cqn: an application transparent approach to cache consistency. In: Twenty first international conference On software engineering and data engineering
Zurück zum Zitat Gupta P, Zeldovich N, Madden S (2011) A trigger-based middleware cache for ORMs. In: Lecture notes in computer science (including subseries lecture notes in artificial intelligence and lecture notes in bioinformatics). Springer Berlin Heidelberg, Lisbon, Portugal, vol 7049 LNCS, pp 329–349. https://doi.org/10.1007/978-3-642-25821-3_17 Gupta P, Zeldovich N, Madden S (2011) A trigger-based middleware cache for ORMs. In: Lecture notes in computer science (including subseries lecture notes in artificial intelligence and lecture notes in bioinformatics). Springer Berlin Heidelberg, Lisbon, Portugal, vol 7049 LNCS, pp 329–349. https://​doi.​org/​10.​1007/​978-3-642-25821-3_​17
Zurück zum Zitat Leszczyński P, Stencel K (2010) Consistent caching of data objects in database driven websites. In: Lecture notes in computer science (including subseries lecture notes in artificial intelligence and lecture notes in bioinformatics), vol 6295 LNCS, pp 363–377. https://doi.org/10.1007/978-3-642-15576-5_28 Leszczyński P, Stencel K (2010) Consistent caching of data objects in database driven websites. In: Lecture notes in computer science (including subseries lecture notes in artificial intelligence and lecture notes in bioinformatics), vol 6295 LNCS, pp 363–377. https://​doi.​org/​10.​1007/​978-3-642-15576-5_​28
Zurück zum Zitat Maplesden D, von Randow K, Tempero E, Hosking J, Grundy J (2015a) Performance analysis using subsuming methods: an industrial case study. In: 2015 IEEE/ACM 37th IEEE international conference on software engineering (ICSE). IEEE, vol 2, pp 149–158 Maplesden D, von Randow K, Tempero E, Hosking J, Grundy J (2015a) Performance analysis using subsuming methods: an industrial case study. In: 2015 IEEE/ACM 37th IEEE international conference on software engineering (ICSE). IEEE, vol 2, pp 149–158
Zurück zum Zitat Maplesden D, Tempero E, Hosking J, Grundy JC (2015b) Subsuming methods: finding new optimisation opportunities in object-oriented software. In: Proceedings of the 6th ACM/SPEC international conference on performance engineering. ACM, pp 175–186 Maplesden D, Tempero E, Hosking J, Grundy JC (2015b) Subsuming methods: finding new optimisation opportunities in object-oriented software. In: Proceedings of the 6th ACM/SPEC international conference on performance engineering. ACM, pp 175–186
Zurück zum Zitat Ports DRK, Clements AT, Zhang I, Madden S, Liskov B (2010) Transactional consistency and automatic management in an application data cache. In: Proceedings of the 9th USENIX symposium on operating systems design and implementation. USENIX Association, CA, USA, pp 279–292 Ports DRK, Clements AT, Zhang I, Madden S, Liskov B (2010) Transactional consistency and automatic management in an application data cache. In: Proceedings of the 9th USENIX symposium on operating systems design and implementation. USENIX Association, CA, USA, pp 279–292
Zurück zum Zitat Xu G, Yan D, Rountev A (2012) Static detection of loop-invariant data structures. In: Noble J (ed) ECOOP 2012 - object-oriented programming. Springer, Berlin Heidelberg, Berlin, Heidelberg, pp 738–763 Xu G, Yan D, Rountev A (2012) Static detection of loop-invariant data structures. In: Noble J (ed) ECOOP 2012 - object-oriented programming. Springer, Berlin Heidelberg, Berlin, Heidelberg, pp 738–763
Zurück zum Zitat Zaidenberg N, Gavish L, Meir Y (2015) New caching algorithms performance evaluation. In: Proceedings of the 2015 international symposium on performance evaluation of computer and telecommunication systems, SPECTS 2015 - Part of SummerSim 2015 Multiconference. https://doi.org/10.1109/SPECTS.2015.7285291 Zaidenberg N, Gavish L, Meir Y (2015) New caching algorithms performance evaluation. In: Proceedings of the 2015 international symposium on performance evaluation of computer and telecommunication systems, SPECTS 2015 - Part of SummerSim 2015 Multiconference. https://​doi.​org/​10.​1109/​SPECTS.​2015.​7285291
Metadaten
Titel
A comparative study of application-level caching recommendations at the method level
verfasst von
Rômulo Meloca
Ingrid Nunes
Publikationsdatum
01.07.2022
Verlag
Springer US
Erschienen in
Empirical Software Engineering / Ausgabe 4/2022
Print ISSN: 1382-3256
Elektronische ISSN: 1573-7616
DOI
https://doi.org/10.1007/s10664-021-10089-z

Weitere Artikel der Ausgabe 4/2022

Empirical Software Engineering 4/2022 Zur Ausgabe

Premium Partner