skip to main content
survey

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

Published: 22 November 2017 Publication History

Abstract

A new form of caching, namely application-level caching, has been recently employed in web applications to improve their performance and increase scalability. It consists of the insertion of caching logic into the application base code to temporarily store processed content in memory and then decrease the response time of web requests by reusing this content. However, caching at this level demands knowledge of the domain and application specificities to achieve caching benefits, given that this information supports decisions such as what and when to cache content. Developers thus must manually manage the cache, possibly with the help of existing libraries and frameworks. Given the increasing popularity of application-level caching, we thus provide a survey of approaches proposed in this context. We provide a comprehensive introduction to web caching and application-level caching, and present state-of-the-art work on designing, implementing, and managing application-level caching. Our focus is not only on static solutions but also approaches that adaptively adjust caching solutions to avoid the gradual performance decay that caching can suffer over time. This survey can be used as a start point for researchers and developers, who aim to improve application-level caching or need guidance in designing application-level caching solutions, possibly with humans out-of-the-loop.

References

[1]
Ibrahim Abdullahi, Suki Arif, and Suhaidi Hassan. 2015. Survey on caching approaches in information centric networking. J. Netw. Comput. Appl. 56 (2015), 48--59.
[2]
Waleed Ali, Siti Mariyam Shamsuddin, and Abdul Samad Ismail. 2011. A survey of web caching and prefetching. Int. J. Adv. Soft Comput. Appl. 3, 1 (Mar. 2011), 18--44.
[3]
Waleed Ali, Siti Mariyam Shamsuddin, and Abdul Samad Ismail. 2012a. Intelligent Naïve bayes-based approaches for web proxy caching. Knowl.-Based Syst. 31 (Jul. 2012), 162--175.
[4]
Waleed Ali, Siti Mariyam Shamsuddin, and Abdul Samad Ismail. 2012b. Intelligent web proxy caching approaches based on machine learning techniques. Decision Support Syst. 53, 3 (Jun. 2012), 565--579.
[5]
Waleed Ali Ahmed and Siti Mariyam Shamsuddin. 2011. Neuro-fuzzy system in partitioned client-side web cache. Expert Syst. Appl. 38, 12 (Nov. 2011), 14715--14725.
[6]
Sadiye Alici, Ismail Sengor Altingovde, Rifat Ozcan, B. Barla Cambazoglu, and Özgür Ulusoy. 2012. Adaptive time-to-live strategies for query result caching in web search engines. In Proceedings of the 34th European Conference on Advances in Information Retrieval (Lecture Notes in Computer Science), Ricardo Baeza-Yates, Arjen P. de Vries, Hugo Zaragoza, B. Barla Cambazoglu, Vanessa Murdock, Ronny Lempel, and Fabrizio Silvestri (Eds.), Vol. 7224. Springer, Berlin, 401--412.
[7]
Cristiana Amza, Gokul Soundararajan, and Emmanuel Cecchet. 2005. Transparent caching with strong consistency in dynamic content web sites. In Proceedings of the 19th Annual International Conference on Supercomputing. ACM Press, New York, NY, 264.
[8]
Berk Atikoglu, Yuehai Xu, Eitan Frachtenberg, Song Jiang, and Mike Paleczny. 2012. Workload analysis of a large-scale key-value store. In Proceedings of the 12th ACM SIGMETRICS/PERFORMANCE Joint International Conference on Measurement and Modeling of Computer Systems 40, 53.
[9]
Rassul Ayani, Yong Meng Teo, and Yean Seen Ng. 2003. Cache pollution in web proxy servers. In Proceedings of the International Parallel and Distributed Processing Symposium. IEEE, 7.
[10]
Ricardo Baeza-Yates, Flavio Junqueira, Vassilis Plachouras, and Hans Witschel. 2007. Admission policies for caches of search engine results. In Proceedings of the 14th International Conference on String Processing and Information Retrieval, Vol. 4726. Springer-Verlag, 74--85.
[11]
Abdullah Balamash and Marwan Krunz. 2004. An overview of web caching replacement algorithms. IEEE Commun. Surv. Tutor. 6, 2 (2004), 44--56.
[12]
Sara Bouchenak, Alan Cox, Steven Dropsho, Sumit Mittal, and Willy Zwaenepoel. 2006. Caching dynamic web content: Designing and analysing an aspect-oriented solution. In Proceedings of the ACM/IFIP/USENIX International Conference on Middleware. 4290 (Nov. 2006), 1--21.
[13]
K. Selçuk Candan, Wen-Syan Li, Qiong Luo, Wang-Pin Hsiung, and Divyakant Agrawal. 2001. Enabling dynamic content caching for database-driven web sites. In Proceedings of the ACM SIGMOD International Conference on Management of Data. 532--543.
[14]
P. Cao and S. Irani. 1997. GreedyDual-size: A cost-aware WWW proxy caching algorithm. In Proceedings of the USENIX Symposium on Internet Technologies and Systems. 18.
[15]
Tse-Hsun Chen, Weiyi Shang, Ahmed E. Hassan, Mohamed Nasser, and Parminder Flora. 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’16). ACM Press, New York, NY, 666--677.
[16]
Luca Della Toffola, Michael Pradel, and Thomas R. Gross. 2015. Performance problems you can fix: A dynamic analysis of memoization opportunities. In Proceedings of the ACM SIGPLAN International Conference on Object-Oriented Programming, Systems, Languages, and Applications. ACM Press, New York, NY, 607--622.
[17]
Josep Domènech, José A. Gil, Julio Sahuquillo, and Ana Pont. 2006. Web prefetching performance metrics: A survey. Perf. Eval. 63, 9--10 (Oct. 2006), 988--1004.
[18]
Gil Einziger and Roy Friedman. 2014. TinyLFU: A highly efficient cache admission policy. In Proceedings of the 22nd Euromicro International Conference on Parallel, Distributed, and Network-Based Processing. IEEE, 146--153. arxiv:1512.00727
[19]
Rachid El Abdouni Khayari, Adisa Musovic, Robert Siegfried, and Ingo Zschoch. 2011. Self-reconfiguration approach for web-caches. In International Symposium on Performance Evaluation of Computer 8 Telecommunication Systems. IEEE, 77--83.
[20]
Bin Fan, David G. Andersen, and Michael Kaminsky. 2013. MemC3: Compact and concurrent memcache with dumber caching and smarter hashing. In Proceedings of the 10th USENIX Conference on Networked Systems Design and Implementation. USENIX Association, 371--385.
[21]
Lei Gao, Mike Dahlin, Amol Nayate, Jiandan Zheng, and Arun Iyengar. 2005. Improving availability and performance with application-specific data replication. IEEE Trans. Knowl. Data Eng. 17, 1 (2005), 106--120.
[22]
Sandhaya Gawade and Hitesh Gupta. 2012. Review of algorithms for web pre-fetching and caching. Int. J. Adv. Res. Comput. Commun. Eng. 1, 2 (2012), 62--65.
[23]
Shahram Ghandeharizadeh, Sandy Irani, and Jenny Lam. 2015. Cache replacement with memory allocation. In Proceedings of the 17th Workshop on Algorithm Engineering and Experiments, Ulrik Brandes and David Eppstein (Eds.). ACM, 9.
[24]
Shahram Ghandeharizadeh, Sandy Irani, Jenny Lam, and Jason Yap. 2014. Camp. In Proceedings of the 15th International Conference on Middleware. ACM Press, New York, NY, 289--300.
[25]
Shahram Ghandeharizadeh, Jason Yap, and Sumita Barahmand. 2012. COSAR-CQN: An Application Transparent Approach to Cache Consistency. Retrieved from http://dblab.usc.edu/users/papers/cosarcqntr.pdf.
[26]
Carlos Guerrero, Carlos Juiz, and Ramon Puigjaner. 2011. Improving web cache performance via adaptive content fragmentation design. In Proceedings of the IEEE International Symposium on Network Computing and Applications. IEEE, 310--313.
[27]
Philip J. Guo and Dawson Engler. 2011. Using automatic persistent memoization to facilitate data analysis scripting. In Proceedings of the 2011 International Symposium on Software Testing and Analysis. ACM Press, New York, NY, 287--297.
[28]
Priya Gupta, Nickolai Zeldovich, and Samuel Madden. 2011. A trigger-based middleware cache for ORMs. In Proceedings of the 12th ACM/IFIP/USENIX International Middleware Conference, Vol. 7049, LNCS. Springer, Berlin, 329--349.
[29]
Ezz Hattab and Sami Qawasmeh. 2015. A survey of replacement policies for mobile web caching. In Proceedings of the 8th International Conference on Developments of E-Systems Engineering. IEEE, 41--46.
[30]
Jiyu Huang, Xuanzhe Liu, Qi Zhao, Jianzhu Ma, and Gang Huang. 2010. A browser-based framework for data cache in web-delivered service composition. In Proceedings of the IEEE International Conference on Service-Oriented Computing and Applications. IEEE, 1--8.
[31]
Yin F. Huang and Jhao M. Hsu. 2008. Mining web logs to improve hit ratios of prefetching and caching. Knowl.-Based Syst. 21, 1 (Feb. 2008), 62--69.
[32]
Markus C. Huebscher and Julie A. McCann. 2008. A survey of autonomic computing—degrees, models, and applications. Comput. Surv. 40, 3 (Aug. 2008), 1--28. 03600300
[33]
Alejandro Infante. 2014. Identifying caching opportunities, effortlessly. In Companion Proceedings of the 36th International Conference on Software Engineering. ACM Press, New York, NY, 730--732.
[34]
Gregor Kiczales, John Lamping, Anurag Mendhekar, Chris Maeda, Cristina Lopes, Jean-Marc Loingtier, and John Irwin. 1997. Aspect-oriented programming. In European Conference on Object-oriented Programming 1241/1997 (1997), 220--242.
[35]
Alexandros Labrinidis. 2009. Caching and materialization for web databases. Found. Trends Databases 2, 3 (Mar. 2009), 169--266.
[36]
Philippe Lalanda, Julie A. McCann, and Ada Diaconescu. 2013. Autonomic Computing: Principles, Design and Implementation (1st ed.). Springer-Verlag, London.
[37]
P. Larson, Jonathan Goldstein, and Jingren Zhou. 2004. MTCache: Transparent mid-tier database caching in SQL server. In Proceedings of the International Conference on Data Engineering. 177--188.
[38]
Paweł Leszczyński and Krzysztof Stencel. 2010. Consistent caching of data objects in database driven websites. In Proceedings of the 14th East European Conference, Advances in Databases and Information Systems, LNCS, Vol. 6295, 363--377.
[39]
Conglong Li and Alan L. Cox. 2015. GD-wheel. In Proceedings of the 10th European Conference on Computer Systems. ACM Press, New York, NY, 1--15.
[40]
Lei Li, Chunlei Niu, Haoran Zheng, and Jun Wei. 2006. An adaptive caching mechanism for Web services. In Proceedings of the International Conference on Quality Software. IEEE, 303--310.
[41]
Sheng Li, Pradeep Dubey, Hyeontaek Lim, Victor W. Lee, Jung Ho Ahn, Anuj Kalia, Michael Kaminsky, David G. Andersen, O. Seongil, and Sukhan Lee. 2015. Architecting to achieve a billion requests per second throughput on a single key-value store server platform. In Proceedings of the 42nd Annual International Symposium on Computer Architecture. ACM, 476--488.
[42]
Hongyuan Ma, Wei Liu, Bingjie Wei, Liang Shi, Xiuguo Bao, Lihong Wang, and Bin Wang. 2014. Paap. In Proceedings of the 37th International ACM SIGIR Conference on Research 8 Development in Information Retrieval. ACM Press, New York, NY, 983--986.
[43]
David Maplesden, Ewan Tempero, John Hosking, and John C. Grundy. 2015. Subsuming methods. In Proceedings of the 6th ACM/SPEC International Conference on Performance Engineering (ICPE’15). ACM Press, New York, NY, 175--186.
[44]
Nimrod Megiddo and Dharmendra S. Modha. 2003. ARC: A self-tuning, low overhead replacement cache. In Proceedings of the 2nd USENIX conference on File and Storage Technologies. USENIX Association, Berkeley, CA, USA, 115–130.
[45]
Nimrod Megiddo and Dharmendra S. Modha. 2004. Outperforming LRU with an adaptive replacement cache algorithm. Computer 37, 4 (Apr. 2004), 58--65.
[46]
Deepti Mehrotra, Renuka Nagpal, and Pradeep Bhatia. 2010. Designing metrics for caching techniques for dynamic web site. In Proceedings of the 2010 International Conference on Computer and Communication Technology (ICCCT’10). IEEE, 589--595.
[47]
Jhonny Mertz. 2017. Understanding and Automating Application-level Caching. Master’s thesis. UFRGS. Retreived from https://www.lume.ufrgs.br/handle/10183/156813?show=full.
[48]
Jhonny Mertz and Ingrid Nunes. 2016. A qualitative study of application-level caching. IEEE Trans. Softw. Eng. 43 (2016), 20.
[49]
André Pessoa Negrão, Carlos Roque, Paulo Ferreira, and Luís Veiga. 2015. An adaptive semantics-aware replacement algorithm for web caching. J. Internet Serv. Appl. 6, 1 (Feb. 2015), 4.
[50]
Khanh Nguyen and Guoqing Xu. 2013. Cachetor: Detecting cacheable data to remove bloat. In Proceedings of the 9th Joint Meeting on Foundations of Software Engineering. ACM Press, New York, NY, 268.
[51]
Rajesh Nishtala, Hans Fugal, Steven Grimm, Marc Kwiatkowski, Herman Lee, Harry C. Li, Ryan McElroy, Mike Paleczny, Daniel Peek, Paul Saab, David Stafford, Tony Tung, and Venkateshwaran Venkataramani. 2013. Scaling memcache at facebook. In Proceedings of the 10th USENIX Conference on Networked Systems Design and Implementation. ACM, 385--398.
[52]
Stefan Podlipnig and Laszlo Böszörmenyi. 2003. A survey of web cache replacement strategies. Comput. Surv. 35, 4 (Dec. 2003), 374--398.
[53]
Christoph Pohl. 2005. Adaptive Caching of Distributed Components. Ph.D. Dissertation. Dresden University of Technology.
[54]
Dan R. K. Ports, Austin T. Clements, Irene Zhang, Samuel Madden, and Barbara Liskov. 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, 279--292.
[55]
Ganesan Radhakrishnan. 2004. Adaptive application caching. Bell Labs Techn. J. 9, 1 (May 2004), 165--175.
[56]
Jaime Raigoza and Junping Sun. 2014. Temporal join processing with the adaptive replacement cache - temporal data policy. In Proceedings of the 13th IEEE/ACIS International Conference on Computer and Information Science. IEEE, 131--136.
[57]
Lakshmish Ramaswamy, Ling Liu, Arun Iyengar, and Fred Douglis. 2005. Automatic fragment detection in dynamic web pages and its impact on caching. IEEE Trans. Knowl. Data Eng. 17, 6 (Jun. 2005), 859--874.
[58]
Jayashree Ravi, Zhifeng Yu, and Weisong Shi. 2009. A survey on dynamic web content generation and delivery techniques. J. Netw. Comput. Appl. 32, 5 (Sep. 2009), 943--960.
[59]
Trausti Saemundsson, Hjortur Bjornsson, Gregory Chockler, Gregory.Chockler, and Ymir Vigfusson. 2014. Dynamic performance profiling of cloud caches. In Proceedings of the ACM Symposium on Cloud Computing (SOCC’14). ACM Press, New York, NY, 3--5.
[60]
G. P. Sajeev and M. P. Sebastian. 2010. Building a semi intelligent web cache with light weight machine learning. In Proceedings of the IEEE International Conference on Intelligent Systems. IEEE, 420--425.
[61]
Ziv Scully and Adam Chlipala. 2017. A program optimization for automatic database result caching. In Proceedings of the 44th ACM SIGPLAN Symposium on Principles of Programming Languages (POPL’17). ACM Press, New York, NY, 271--284.
[62]
Marija Selakovic and Michael Pradel. 2016. Performance issues and optimizations in JavaScript. In Proceedings of the 38th International Conference on Software Engineering (ICSE’16). ACM Press, New York, NY, 61--72.
[63]
Swaminathan Sivasubramanian, Guillaume Pierre, Maarten Steen, and Gustavo Alonso. 2007. Analysis of caching and replication strategies for web applications. IEEE Internet Comput. 11, 1 (2007), 60--66.
[64]
Gokul Soundararajan and Cristiana Amza. 2005. Using semantic information to improve transparent query caching for dynamic content web sites. In Proceedings of the International Workshop on Data Engineering Issues in E-Commerce. IEEE, 132--138.
[65]
Nataliia Stulova, José F. Morales, and Manuel V. Hermenegildo. 2015. Practical run-time checking via unobtrusive property caching. Theory Pract. Logic Program. 15, 4--5 (Sep. 2015), 726--741.
[66]
Sarina Sulaiman, Siti Mariyam Shamsuddin, and Ajith Abraham. 2013. A Survey of Web Caching Architectures or Deployment Schemes. Retreived from http://se.fc.utm.my/ijic/index.php/ijic/article/view/33.
[67]
Sarina Sulaiman, Siti Mariyam Shamsuddin, Ajith Abraham, and Shahida Sulaiman. 2011. Intelligent web caching using machine learning methods. Neur. Netw. World 21, 5 (2011), 429--452.
[68]
Sarina Sulaiman, Siti Mariyam Shamsuddin, Fadni Forkan, and Ajith Abraham. 2009. Autonomous SPY: Intelligent web proxy caching detection using neurocomputing and particle swarm optimization. In Proceedings of the 6th International Symposium on Mechatronics and Its Applications. IEEE, 1--6.
[69]
Swetha Surapaneni, Venkata Krishna Suhas Nerella, Sanjay K. Madria, and Thomas Weigert. 2013. Exploring optimization and caching for efficient collection operations. Int. J. Autom. Softw. Eng. 21, 1 (Nov. 2013), 1--38.
[70]
Shakil Tamboli and Smita Shukla Patel. 2015. A survey on innovative approach for improvement in efficiency of caching technique for big data application. In Proceedings of the International Conference on Pervasive Computing. IEEE, 1--6.
[71]
Asif Ullah Khan Veena Singh Bhadauriya, Bhupesh Gour. 2013. Improved server response using web pre-fetching: A review. Int. J. Adv. Eng. Technol. 6, 6 (2013), 2508--2513.
[72]
P. Venketesh and R. Venkatesan. 2009. A survey on applications of neural networks and evolutionary techniques in web caching. IETE Techni. Rev. 26, 3 (Sep. 2009), 171.
[73]
Jia Wang. 1999. A survey of web caching schemes for the internet. ACM SIGCOMM Comput. Commun. Rev. 29, 5 (Oct. 1999), 36.
[74]
Wei Wang, Zhaohui Liu, Yong Jiang, Xinchen Yuan, and Jun Wei. 2014. EasyCache: A transparent in-memory data caching approach for internetware. In Proceedings of the 6th Asia-Pacific Symposium on Internetware on Internetware. ACM Press, New York, NY, 35--44.
[75]
Kin-Yeung Wong. 2006. Web cache replacement policies: A pragmatic approach. IEEE Netw. 20, 1 (Jan. 2006), 28--34.
[76]
Guoqing Xu. 2012. Finding reusable data structures. In Proceedings of the ACM International Conference on Object Oriented Programming Systems Languages and Applications (OOPSLA’12). ACM, New York, NY, USA, 1017–1034.
[77]
Yuehai Xu, Eitan Frachtenberg, Song Jiang, and Mike Paleczny. 2014. Characterizing Facebook’s memcached workload. IEEE Internet Comput. 18, 2 (Mar. 2014), 41--49.
[78]
N. Young. 1994. The k-server dual and loose competitiveness for paging. Algorithmica 11, 6 (1994), 525--541. arxiv:cs/0205044
[79]
Nezer Zaidenberg, Limor Gavish, and Yuval Meir. 2015. New caching algorithms performance evaluation. In Proceedings of the 2015 International Symposium on Performance Evaluation of Computer and Telecommunication Systems (SPECTS’15). IEEE, 1--7.
[80]
Hao Zhang, Gang Chen, Beng Chin Ooi, Kian Lee Tan, and Meihui Zhang. 2015a. In-memory big data management and processing: A survey. IEEE Trans. Knowl. Data Eng. 27, 7 (jul 2015), 1920--1948.
[81]
Meng Zhang, Hongbin Luo, and Hongke Zhang. 2015b. A survey of caching mechanisms in information-centric networking. IEEE Communications Surveys 8 Tutorials 17, 3 (2015), 1473-1499.
[82]
Timothy Zhu, Anshul Gandhi, Mor Harchol-Balter, and Michael A. Kozuch. 2012. Saving cash by using less cache. In Proceedings of the 4th USENIX Conference on Hot Topics in Cloud Computing. USENIX Association, Boston, MA, 3.

Cited By

View all

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Computing Surveys
ACM Computing Surveys  Volume 50, Issue 6
November 2018
752 pages
ISSN:0360-0300
EISSN:1557-7341
DOI:10.1145/3161158
  • Editor:
  • Sartaj Sahni
Issue’s Table of Contents
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 22 November 2017
Accepted: 01 September 2017
Revised: 01 July 2017
Received: 01 February 2017
Published in CSUR Volume 50, Issue 6

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. Application-level caching
  2. adaptation
  3. self-adaptive systems
  4. web application
  5. web caching

Qualifiers

  • Survey
  • Research
  • Refereed

Funding Sources

  • CAPES
  • CNPq
  • Alexander von Humboldt

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)54
  • Downloads (Last 6 weeks)7
Reflects downloads up to 31 Jan 2025

Other Metrics

Citations

Cited By

View all

View Options

Login options

Full Access

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Figures

Tables

Media

Share

Share

Share this Publication link

Share on social media