Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1145/2950290.2950303acmconferencesArticle/Chapter ViewAbstractPublication PagesfseConference Proceedingsconference-collections
research-article

CacheOptimizer: helping developers configure caching frameworks for hibernate-based database-centric web applications

Published: 01 November 2016 Publication History

Abstract

To help improve the performance of database-centric cloud-based web applications, developers usually use caching frameworks to speed up database accesses. Such caching frameworks require extensive knowledge of the application to operate effectively. However, all too often developers have limited knowledge about the intricate details of their own application. Hence, most developers find configuring caching frameworks a challenging and time-consuming task that requires extensive and scattered code changes. Furthermore, developers may also need to frequently change such configurations to accommodate the ever changing workload.
In this paper, we propose CacheOptimizer, a lightweight approach that helps developers optimize the configuration of caching frameworks for web applications that are implemented using Hibernate. CacheOptimizer leverages readily-available web logs to create mappings between a workload and database accesses. Given the mappings, CacheOptimizer discovers the optimal cache configuration using coloured Petri nets, and automatically adds the appropriate cache configurations to the application. We evaluate CacheOptimizer on three open-source web applications. We find that i) CacheOptimizer improves the throughput by 27--138%; and ii) after considering both the memory cost and throughput improvement, CacheOptimizer still brings statistically significant gains (with mostly large effect sizes) in comparison to the application's default cache configuration and to blindly enabling all possible caches.

References

[1]
Transactional web e-commerce benchmark. http://www.tpc.org/tpcw/. Last accessed March 3 2016.
[2]
T., L. Jin, X. Fan, and Y. Zhou. Hey, you have given me too many knobs! understanding and dealing with over-designed configuration in system software. In Proceedings of the 10th Joint Meeting of the European Software Engineering Conference and the ACM SIGSOFT Symposium on the Foundations of Software Engineering, ESEC/FSE ’15, 2015.
[3]
M. Altinel, C. Bornhövd, S. Krishnamurthy, C. Mohan, H. Pirahesh, and B. Reinwald. Cache tables: Paving the way for an adaptive database cache. In Proceedings of the 29th International Conference on Very Large Data Bases, VLDB ’03, pages 718–729, 2003.
[4]
R. Binder. Testing Object-oriented Systems: Models, Patterns, and Tools. Addison-Wesley, 2000.
[5]
J. Bloomberg. The Agile Architecture Revolution: How Cloud Computing, REST-Based SOA, and Mobile Computing Are Changing Enterprise IT. Wiley, 2013.
[6]
I. T. Bowman and K. Salem. Optimization of query streams using semantic prefetching. ACM Trans. Database Syst., 30(4):1056–1101, Dec. 2005.
[7]
K. S. Candan, W.-S. Li, Q. Luo, W.-P. Hsiung, and D. Agrawal. Enabling dynamic content caching for database-driven web sites. In Proceedings of the 2001 ACM SIGMOD International Conference on Management of Data, SIGMOD ’01, pages 532–543, 2001.
[8]
S. Chaudhuri, V. Narasayya, and M. Syamala. Bridging the application and DBMS profiling divide for database application developers. In VLDB, 2007.
[9]
M. Chavan, R. Guravannavar, K. Ramachandra, and S. Sudarshan. Program transformations for asynchronous query submission. In Proceedings of the 2011 IEEE 27th International Conference on Data Engineering, ICDE ’11, pages 375–386, 2011.
[10]
F. Chen, J. Grundy, J.-G. Schneider, Y. Yang, and Q. He. Stresscloud: A tool for analysing performance and energy consumption of cloud applications. In Proceedings of the IEEE/ACM 37th IEEE International Conference on Software Engineering, ICSE ’15, pages 721–724, May 2015.
[11]
T.-H. Chen. Improving the quality of large-scale database-centric software systems by analyzing database access code. ICDE ’15, pages 245–249, 2015.
[12]
T.-H. Chen, S. Weiyi, A. E. Hassan, M. Nasser, and P. Flora. Detecting problems in the database access code of large scale systems - an industrial experience report. ICSE ’16, 2016.
[13]
T.-H. Chen, S. Weiyi, h. M. Jiang, A. E. Hassan, M. Nasser, and P. Flora. Finding and evaluating the performance impact of redundant data access for applications that are developed using object-relational mapping frameworks. IEEE Transactions on Software Engineering, 2016.
[14]
T.-H. Chen, S. Weiyi, Z. M. Jiang, A. E. Hassan, M. Nasser, and P. Flora. Detecting performance anti-patterns for applications developed using object-relational mapping. ICSE, 2014.
[15]
T.-H. Chen, S. Weiyi, J. Yang, A. E. Hassan, M. W. Nasser, Godfrey, Mohamed, and P. Flora. An empirical study on the practice of maintaining object-relational mapping code in Java systems. In Proceedings of the 13th International Conference on Mining Software Repositories, MSR ’16, pages 165–176, 2016.
[16]
A. Cheung, S. Madden, and A. Solar-Lezama. Sloth: Being lazy is a virtue (when issuing database queries). In Proceedings of the 2014 ACM SIGMOD International Conference on Management of Data, SIGMOD ’14, 2014.
[17]
A. Cheung, A. Solar-Lezama, and S. Madden. Optimizing database-backed applications with query synthesis. PLDI ’13, pages 3–14, 2013.
[18]
H.-T. Chou and D. J. DeWitt. An evaluation of buffer management strategies for relational database systems. VLDB ’85, pages 127–141, 1985.
[19]
N. Cliff. Dominance statistics: Ordinal analyses to answer ordinal questions. Psychological Bulletin, 114(3):494–509, Nov. 1993.
[20]
CloudScale. Cloud store. http://www.cloudscale-project.eu/, 2016. Last accessed July 25 2016.
[21]
J. Community. Hibernate. http://www.hibernate.org/, 2016. Last accessed July 26 2016.
[22]
S. Dar, M. J. Franklin, B. T. Jónsson, D. Srivastava, and M. Tan. Semantic data caching and replacement. VLDB ’96, pages 330–341, 1996.
[23]
J. Dubois. Improving the performance of the spring-petclinic sample application. http://blog.ippon.fr/2013/03/14/ improving-the-performance-of-the-spring-\ petclinic-sample-application-part-4-of-5/, 2016. Last accessed July 25 2016.
[24]
L. Fan, P. Cao, J. Almeida, and A. Z. Broder. Summary cache: A scalable wide-area web cache sharing protocol. IEEE/ACM Trans. Netw., 8(3):281–293, June 2000.
[25]
FastCompany. How one second could cost Amazon 16 billion sales. http://www.fastcompany.com/1825005/ how-one-second-could-cost-amazon-16-billion-sales, 2012. Last accessed March 3 2016.
[26]
V. Ferreira. Pitfalls of the Hibernate second-level / query caches. https: //dzone.com/articles/pitfalls-hibernate-second-0. Last accessed March 3 2016.
[27]
B. Fitzpatrick. Distributed caching with memcached. Linux J., 2004(124), Aug. 2004.
[28]
G. Giannikis, G. Alonso, and D. Kossmann. Shareddb: Killing one thousand queries with one stone. Proc. VLDB Endow., 5(6):526–537, Feb. 2012.
[29]
Gleanster. Application performance starts with database performance analysis. http://www.gleanster.com/report/application-/ /performance-starts-with-database-performance-/ /analysis, 2015. Last accessed June 20 2015.
[30]
D. Gollmann. Computer Security. Wiley, 2011.
[31]
M. Grechanik, B. M. M. Hossain, U. Buy, and H. Wang. Preventing database deadlocks in applications. ESEC/FSE 2013, pages 356–366, 2013.
[32]
IBM. Restful web services: The basics. http: //www.ibm.com/developerworks/library/ws-restful/, 2016. Last accessed July 25 2016.
[33]
K. Jensen. Coloured Petri Nets: Basic Concepts, Analysis Methods and Practical Use. Coloured Petri Nets. Springer, 1997.
[34]
T. Johnson and D. Shasha. 2q: A low overhead high performance buffer management replacement algorithm. VLDB ’94, pages 439–450, 1994.
[35]
V. B. Kampenes, T. Dyb˚ a, J. E. Hannay, and D. I. K. Sjøberg. Systematic review: A systematic review of effect size in software engineering experiments. Inf. Softw. Technol., 49(11-12):1073–1086, Nov. 2007.
[36]
N. Leavitt. Whatever happened to object-oriented databases? Computer, 33(8):16–19, Aug. 2000.
[37]
M. Linares-Vasquez, B. Li, C. Vendome, and D. Poshyvanyk. How do developers document database usages in source code? (n). In Proceedings of the 30th IEEE/ACM International Conference on Automated Software Engineering, ASE ’15, pages 36–41, 2015.
[38]
Memcached. Memcached. http://memcached.org/, 2015.
[39]
D. Moore, G. MacCabe, and B. Craig. Introduction to the Practice of Statistics. W.H. Freeman and Company, 2009.
[40]
R. Nishtala, H. Fugal, S. Grimm, M. Kwiatkowski, H. Lee, H. C. Li, R. McElroy, M. Paleczny, D. Peek, P. Saab, D. Stafford, T. Tung, and V. Venkataramani. Scaling Memcache at Facebook. In Proceedings of the 10th USENIX Conference on Networked Systems Design and Implementation, NSDI’13, pages 385–398, 2013.
[41]
OpenMRS. Openmrs. http://openmrs.org/, 2016. Last accessed July 25 2016.
[42]
Oracle. Java EE platform specification. https://java.net/projects/javaee-spec/pages/Home, 2016. Last accessed July 25 2016.
[43]
S. Paul and Z. Fei. Distributed caching with centralized control. Comput. Commun., 24(2):256–268, Feb. 2001.
[44]
S. PetClinic. Petclinic. https://github.com/SpringSource/spring-petclinic/, 2016. Last accessed July 25 2016.
[45]
J. L. Peterson. Petri Net Theory and the Modeling of Systems. Prentice Hall PTR, 1981.
[46]
A. Rabkin and R. Katz. Precomputing possible configuration error diagnoses. ASE ’11, pages 193–202, 2011.
[47]
A. Rabkin and R. Katz. Static extraction of program configuration options. ICSE ’11, pages 131–140, 2011.
[48]
K. Ramachandra and S. Sudarshan. Holistic optimization by prefetching query results. SIGMOD ’12, pages 133–144, 2012.
[49]
L. Richardson and S. Ruby. RESTful Web Services. O’Reilly Media, 2008.
[50]
W. Shang, Z. M. Jiang, B. Adams, A. E. Hassan, M. W. Godfrey, M. Nasser, and P. Flora. An exploratory study of the evolution of communicated information about the execution of large software systems. In Proceedings of the 2011 18th Working Conference on Reverse Engineering, WCRE ’11, pages 335–344, 2011.
[51]
A. J. Smith. Cache evaluation and the impact of workload choice. In Proceedings of the 12th Annual International Symposium on Computer Architecture, ISCA ’85, pages 64–73, 1985.
[52]
SpringSource. Spring framework. www.springsource.org/, 2016. Last accessed July 25 2016.
[53]
M. D. Syer, Z. M. Jiang, M. Nagappan, A. E. Hassan, M. Nasser, and P. Flora. Continuous validation of load test suites. In Proceedings of the 5th ACM/SPEC International Conference on Performance Engineering, ICPE ’14, pages 259–270, 2014.
[54]
Terracotta. Ehcache. http://ehcache.org/, 2015.
[55]
A. Tomcat. Logging in tomcat. https: //tomcat.apache.org/tomcat-8.0-doc/logging.html, 2015.
[56]
Y. Xiong, A. Hubaux, S. She, and K. Czarnecki. Generating range fixes for software configuration. ICSE ’12, pages 58–68, 2012.
[57]
X. z. Liu, Y. Ma, Y. Liu, T. Xie, and G. Huang. Demystifying the imperfect client-side cache performance of mobile web browsing. IEEE Transactions on Mobile Computing, PP(99), 2015.
[58]
ZeroturnAround. Java tools and technologies landscape for 2015. http://zeroturnaround.com/rebellabs/ java-tools-and-technologies-landscape-for-2014/, 2014.
[59]
Last accessed July 24 2016.
[60]
S. Zhang and M. D. Ernst. Automated diagnosis of software configuration errors. ICSE ’13, pages 312–321, 2013.
[61]
S. Zhang and M. D. Ernst. Which configuration option should i change? ICSE 2014, pages 152–163, 2014.
[62]
X. Zhao, Y. Zhang, D. Lion, M. F. Ullah, Y. Luo, D. Yuan, and M. Stumm. Lprof: A non-intrusive request flow profiler for distributed systems. OSDI’14, pages 629–644, 2014.
[63]
Y. Zhou, J. Philbin, and K. Li. The multi-queue replacement algorithm for second level buffer caches. In Proceedings of the General Track: USENIX Annual Technical Conference, ATC ’01, pages 91–104, 2001.

Cited By

View all
  • (2024)An Empirical Study on the Characteristics of Database Access Bugs in Java ApplicationsACM Transactions on Software Engineering and Methodology10.1145/367244933:7(1-25)Online publication date: 13-Jun-2024
  • (2024)Reducing the Length of Field-Replay Based Load TestingIEEE Transactions on Software Engineering10.1109/TSE.2024.340807950:8(1967-1983)Online publication date: Aug-2024
  • (2024)Automated functional and robustness testing of microservice architecturesJournal of Systems and Software10.1016/j.jss.2023.111857207:COnline publication date: 1-Jan-2024
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
FSE 2016: Proceedings of the 2016 24th ACM SIGSOFT International Symposium on Foundations of Software Engineering
November 2016
1156 pages
ISBN:9781450342186
DOI:10.1145/2950290
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 the author(s) 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].

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 01 November 2016

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. ORM
  2. Performance
  3. application-level cache
  4. web application

Qualifiers

  • Research-article

Conference

FSE'16
Sponsor:

Acceptance Rates

Overall Acceptance Rate 17 of 128 submissions, 13%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)15
  • Downloads (Last 6 weeks)2
Reflects downloads up to 03 Oct 2024

Other Metrics

Citations

Cited By

View all
  • (2024)An Empirical Study on the Characteristics of Database Access Bugs in Java ApplicationsACM Transactions on Software Engineering and Methodology10.1145/367244933:7(1-25)Online publication date: 13-Jun-2024
  • (2024)Reducing the Length of Field-Replay Based Load TestingIEEE Transactions on Software Engineering10.1109/TSE.2024.340807950:8(1967-1983)Online publication date: Aug-2024
  • (2024)Automated functional and robustness testing of microservice architecturesJournal of Systems and Software10.1016/j.jss.2023.111857207:COnline publication date: 1-Jan-2024
  • (2024)Data-access performance anti-patterns in data-intensive systemsEmpirical Software Engineering10.1007/s10664-024-10535-829:6Online publication date: 29-Aug-2024
  • (2024)Caching in Forschung und IndustrieSchnelles und skalierbares Cloud-Datenmanagement10.1007/978-3-031-54388-3_5(91-140)Online publication date: 3-May-2024
  • (2023)SLocator: Localizing the Origin of SQL Queries in Database-Backed Web ApplicationsIEEE Transactions on Software Engineering10.1109/TSE.2023.325370049:6(3376-3390)Online publication date: 1-Jun-2023
  • (2023)A systematic mapping study of software performance researchSoftware: Practice and Experience10.1002/spe.318553:5(1249-1270)Online publication date: 2-Jan-2023
  • (2022)LRU-GENACO: A Hybrid Cached Data Optimization Based on the Least Used Method Improved Using Ant Colony and Genetic AlgorithmsElectronics10.3390/electronics1119297811:19(2978)Online publication date: 20-Sep-2022
  • (2022)An Empirical Study of the Impact of Hyperparameter Tuning and Model Optimization on the Performance Properties of Deep Neural NetworksACM Transactions on Software Engineering and Methodology10.1145/350669531:3(1-40)Online publication date: 9-Apr-2022
  • (2022)LogAssist: Assisting Log Analysis Through Log SummarizationIEEE Transactions on Software Engineering10.1109/TSE.2021.308371548:9(3227-3241)Online publication date: 1-Sep-2022
  • Show More Cited By

View Options

Get Access

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media