Abstract
Web applications demand low latency. In database-backed web applications, the latency is sensitive to the efficiency of database access. Hence, previous works have proposed various techniques to optimize the database access performance. However, the effectiveness of these techniques remains unverified when being applied to real-world applications. The reason is twofold. First, the benchmarks used to evaluate the methods in the literature differ from the real applications. Second, the diversity of applications makes it hard to predict whether a specific application will benefit from a certain technique.
To this end, this paper presents WTool, a tool that can automatically analyze and evaluate the database access in a specific web application. It first collects SQL queries in the application, then extracts the information about queries for analysis purposes. Furthermore, WTool is also able to generate configurable benchmark scripts based on collected queries. The user can use the scripts to simulate the database access of a specific application for performance evaluation. To demonstrate the usage WTool, we analyze 16 open-source web applications. We introduce several simple optimizations based on the analysis and evaluate them by the generated benchmark scripts. The result shows that the query throughput can be improved by up to 7\(\times \).
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
References
Broadleaf. https://github.com/BroadleafCommerce/BroadleafCommerce. Accessed 18 Jun 2021
eladmin. https://github.com/elunez/eladmin. Accessed 18 Jun 2021
Febs-shiro. https://github.com/wuyouzhuguli/FEBS-Shiro. Accessed 18 Jun 2021
Forestblog. https://github.com/saysky/ForestBlog. Accessed 18 Jun 2021
forum. https://github.com/fanchaoo/forum. Accessed 18 Jun 2021
halo. https://github.com/halo-dev/halo. Accessed 18 Jun 2021
Hotcrp. https://hotcrp.com/. Accessed 18 Jun 2021
hsweb-framework. https://github.com/hs-web/hsweb-framework. Accessed 18 Jun 2021
jeesite. https://github.com/thinkgem/jeesite. Accessed 18 Jun 2021
litemall. https://github.com/linlinjava/litemall. Accessed 18 Jun 2021
Myrocks. https://myrocks.io/. Accessed 18 Jun 2021
Poplar. https://github.com/lvwangbeta/Poplar. Accessed 18 Jun 2021
Publiccms. https://github.com/sanluan/PublicCMS. Accessed 18 Jun 2021
pybbs. https://github.com/tomoya92/pybbs. Accessed 18 Jun 2021
Rocksdb. https://rocksdb.org/. Accessed 18 Jun 2021
sagan. https://github.com/spring-io/sagan. Accessed 18 Jun 2021
shopizer. https://github.com/shopizer-ecommerce/shopizer. Accessed 18 Jun 2021
spring-framework. https://github.com/spring-projects/spring-framework. Accessed 18 Jun 2021
Springblog. https://github.com/Raysmond/SpringBlog. Accessed 18 Jun 2021
sysbench. https://github.com/akopytov/sysbench. Accessed 18 Jun 2021
xmall. https://github.com/Exrick/xmall. Accessed 18 Jun 2021
Tpc benchmarks. http://www.tpc.org/information/benchmarks.asp (2001–2019). Accessed 18 Jun 2021
Forrester Consulting on behalf of Akamai Technologies, I.: ecommerce web site performance today: an updated look at consumer reaction to a poor online shopping experience. White paper (2009)
Bailis, P., Fekete, A., Franklin, M.J., Ghodsi, A., Hellerstein, J.M., Stoica, I.: Feral concurrency control: an empirical investigation of modern application integrity. In: Proceedings of the 2015 ACM SIGMOD International Conference on Management of Data, pp. 1327–1342. SIGMOD 2015, Association for Computing Machinery, New York (2015). https://doi.org/10.1145/2723372.2737784
Berenson, H., Bernstein, P., Gray, J., Melton, J., O’Neil, E., O’Neil, P.: A critique of ANSI SQL isolation levels. SIGMOD Rec. 24(2), 1–10 (1995). https://doi.org/10.1145/568271.223785
Codd, E.F.: Further normalization of the data base relational model. Research Report/RJ/IBM/San Jose, California RJ909 (1971)
Difallah, D.E., Pavlo, A., Curino, C., Cudre-Mauroux, P.: Oltp-bench: an extensible testbed for benchmarking relational databases. Proc. VLDB Endow. 7(4), 277–288 (2013). https://doi.org/10.14778/2732240.2732246
Faleiro, J.M., Abadi, D.J., Hellerstein, J.M.: High performance transactions via early write visibility. Proc. VLDB Endow. 10(5), 613–624 (2017). https://doi.org/10.14778/3055540.3055553
Gjengset, J., et al.: Noria: dynamic, partially-stateful data-flow for high-performance web applications. In: Proceedings of the 13th USENIX Conference on Operating Systems Design and Implementation, OSDI 2018, pp. 213–231. USENIX Association, USA (2018)
Harkins, P.B.: Lobste.rs access pattern statistics for research purposes. (2021). https://lobste.rs/s/cqnzl5/lobste_rs_access_pattern_statistics_for#c_hj0r1b Accessed 18 Jun 2021
Leff, A., Rayfield, J.: Web-application development using the model/view/controller design pattern. In: Proceedings Fifth IEEE International Enterprise Distributed Object Computing Conference, pp. 118–127 (2001). https://doi.org/10.1109/EDOC.2001.950428
Mu, S., Cui, Y., Zhang, Y., Lloyd, W., Li, J.: In: Extracting more concurrency from distributed transactions. In: Proceedings of the 11th USENIX Conference on Operating Systems Design and Implementation, OSDI 2014, pp. 479–494. USENIX Association, USA (2014)
Nah, F.F.H.: A study on tolerable waiting time: how long are web users willing to wait? Behav. Inf. Technol. 23(3), 153–163 (2004). https://doi.org/10.1080/01449290410001669914
Nishtala, R., et al.: Scaling memcache at Facebook. In: 10th USENIX Symposium on Networked Systems Design and Implementation (NSDI 2013), pp. 385–398. USENIX Association, Lombard (2013)
O’Neil, E.J.: Object/relational mapping 2008: hibernate and the entity data model (edm). In: Proceedings of the 2008 ACM SIGMOD International Conference on Management of Data, pp. 1351–1356. Association for Computing Machinery, New York (2008). https://doi.org/10.1145/1376616.1376773
Pasareanu, C., Visser, W., Bushnell, D.H., Geldenhuys, J., Mehlitz, P., Rungta, N.: Symbolic pathfinder: integrating symbolic execution with model checking for java bytecode analysis. Autom. Softw. Eng. 20, 391–425 (2013). https://doi.org/10.1007/s10515-013-0122-2
Patel, N.: Speed is a killer - why decreasing page load time can drastically increase conversions. https://neilpatel.com/blog/speed-is-a-killer/. Accessed 18 Jun 2021
Ports, D.R.K., Clements, A.T., Zhang, I., Madden, S., Liskov, B.: Transactional consistency and automatic management in an application data cache. In: Proceedings of the 9th USENIX Conference on Operating Systems Design and Implementation, pp. 279–292. OSDI 2010, USENIX Association, USA (2010)
Păsăreanu, C.S., Rungta, N.: Symbolic pathfinder: symbolic execution of java bytecode. In: Proceedings of the IEEE/ACM International Conference on Automated Software Engineering, ASE 2010, pp. 179–180. Association for Computing Machinery, New York (2010). https://doi.org/10.1145/1858996.1859035
Richardson, L., Ruby, S.: RESTful Web Services. O’Reilly Media, Inc (2008)
Shasha, D., Llirbat, F., Simon, E., Valduriez, P.: Transaction chopping: algorithms and performance studies. ACM Trans. Database Syst. 20(3), 325–363 (1995). https://doi.org/10.1145/211414.211427
Sidirourgos, L., Kersten, M.: Column imprints: A secondary index structure. In: Proceedings of the 2013 ACM SIGMOD International Conference on Management of Data, SIGMOD 2013, pp. 893–904. Association for Computing Machinery, New York (2013). https://doi.org/10.1145/2463676.2465306
Wang, Z., Mu, S., Cui, Y., Yi, H., Chen, H., Li, J.: Scaling multicore databases via constrained parallel execution. In: Proceedings of the 2016 International Conference on Management of Data, SIGMOD 2016, pp. 1643–1658. Association for Computing Machinery, New York (2016). https://doi.org/10.1145/2882903.2882934
Warszawski, T., Bailis, P.: Acidrain: concurrency-related attacks on database-backed web applications. In: Proceedings of the 2017 ACM International Conference on Management of Data, SIGMOD 2017, pp. 5–20. Association for Computing Machinery, New York (2017). https://doi.org/10.1145/3035918.3064037
Xie, C., et al.: Salt: combining acid and base in a distributed database. In: Proceedings of the 11th USENIX Conference on Operating Systems Design and Implementation, OSDI 2014, pp. 495–509. USENIX Association, USA (2014)
Xie, C., Su, C., Littley, C., Alvisi, L., Kapritsos, M., Wang, Y.: High-Performance ACID via Modular Concurrency Control, p. 279–294. Association for Computing Machinery, New York (2015). https://doi.org/10.1145/2815400.2815430
Yan, C., Cheung, A., Yang, J., Lu, S.: Understanding Database Performance Inefficiencies in Real-World Web Applications, pp. 1299–1308. Association for Computing Machinery, New York (2017). https://doi.org/10.1145/3132847.3132954
Yang, J., Yan, C., Subramaniam, P., Lu, S., Cheung, A.: Powerstation: Automatically detecting and fixing inefficiencies of database-backed web applications in ide. In: Proceedings of the 2018 26th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering, ESEC/FSE 2018, pp. 884–887. Association for Computing Machinery, New York (2018). https://doi.org/10.1145/3236024.3264589
Yang, J., Yan, C., Wan, C., Lu, S., Cheung, A.: View-centric performance optimization for database-backed web applications. In: Proceedings of the 41st International Conference on Software Engineering, ICSE 2019, pp. 994–1004. IEEE Press (2019). https://doi.org/10.1109/ICSE.2019.00104
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2021 Springer Nature Switzerland AG
About this paper
Cite this paper
Zhou, Z., Yao, X. (2021). Analyze and Evaluate Database-Backed Web Applications with WTool. In: U, L.H., Spaniol, M., Sakurai, Y., Chen, J. (eds) Web and Big Data. APWeb-WAIM 2021. Lecture Notes in Computer Science(), vol 12858. Springer, Cham. https://doi.org/10.1007/978-3-030-85896-4_9
Download citation
DOI: https://doi.org/10.1007/978-3-030-85896-4_9
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-030-85895-7
Online ISBN: 978-3-030-85896-4
eBook Packages: Computer ScienceComputer Science (R0)