A Study of Database Connection Pool in Microservice Architecture

Nur Ayuni Nor Sobri - Universiti Teknologi MARA, 40450 Shah Alam, Selangor, Malaysia
Mohamad Aqib Haqmi Abas - Universiti Teknologi MARA, 40450 Shah Alam, Selangor, Malaysia
Ihsan Mohd Yassin - Universiti Teknologi MARA, 40450 Shah Alam, Selangor, Malaysia
Megat Syahirul Amin Megat Ali - Universiti Teknologi MARA, 40450 Shah Alam, Selangor, Malaysia
Nooritawati Md Tahir - Universiti Teknologi MARA, 40450 Shah Alam, Selangor, Malaysia
Azlee Zabidi - Universiti Malaysia Pahang, 26600 Pekan, Pahang, Malaysia
Zairi Ismael Rizman - Universiti Teknologi MARA, 23000 Dungun, Terengganu, Malaysia


Citation Format:



DOI: http://dx.doi.org/10.30630/joiv.6.2-2.1094

Abstract


The growing number of Internet presents a higher requirement to backend application systems nowadays to be designed to handle thousands of users traffic concurrently. Microservice architecture is also in a rising trend which they allow for each service to scale horizontally by their throughput and load helps to scale the system efficiently without waste of resources like in the traditional monolithic application system. Among the many strategies to optimize delivery, database connection pool helps backend systems to access databases efficiently by reusing database connections, thus eliminating the computationally expensive need to open and close connections with new requests. Additionally, database connection pools can also help improve the connection reliability for applications. This paper aims to determine the most suitable maximum amount of database connections in a microservice setting, where multiple instances of the service are used for scalability and high availability purposes of the system. To tackle the issue of scalability and to achieve high availability of our services, we propose running multiple instances of each of our services in production, especially for services that we anticipate will be hit the most during runtime. This is to allow load balancing of request load between multiple instances and having backup instances to serve HTTP requests when one of the instances is down. The result obtained in this experiment shows that 5 database connections give the best result in microservice settings as described in our methodology.

Keywords


Microservice; backend application system; database connection pool.

Full Text:

PDF

References


A. R. Sampaio et al., "Supporting Microservice Evolution," presented at the 2017 IEEE International Conference on Software Maintenance and Evolution (ICSME), 2017.

Y. Gan et al., "An Open-Source Benchmark Suite for Microservices and Their Hardware-Software Implications for Cloud & Edge Systems," presented at the Proceedings of the Twenty-Fourth International Conference on Architectural Support for Programming Languages and Operating Systems, 2019.

V. S. S. K. Peddoju, "Container-based Microservice Architecture for Cloud Applications," presented at the International Conference on Computing, Communication and Automation.

N. Dragoni, I. Lanese, S. T. Larsen, M. Mazzara, R. Mustafin, and L. Safina, "Microservices: How To Make Your Application Scale," in Perspectives of System Informatics, (Lecture Notes in Computer Science, 2018, ch. Chapter 8, pp. 95-104.

W. Hasselbring and G. Steinacker, "Microservice Architectures for Scalability, Agility and Reliability in E-Commerce," presented at the 2017 IEEE International Conference on Software Architecture Workshops (ICSAW), 2017.

I. A. S. D. P. E. Subyantoro, "Designing microservice architectures for scalability and reliability in ecommerce," Journal of Physics: Conference Series, 2020.

M. Villamizar et al., "Evaluating the monolithic and the microservice architecture pattern to deploy web applications in the cloud," in 2015 10th Computing Colombian Conference (10CCC), 2015: IEEE, pp. 583-590.

M. Viggiato, R. Terra, H. Rocha, M. T. Valente, and E. Figueiredo, "Microservices in practice: A survey study," arXiv preprint arXiv:1808.04836, 2018.

O. Al-Debagy and P. Martinek, "A comparative review of microservices and monolithic architectures," in 2018 IEEE 18th International Symposium on Computational Intelligence and Informatics (CINTI), 2018: IEEE, pp. 000149-000154.

H. Dinh-Tuan, M. Mora-Martinez, F. Beierle, and S. R. Garzon, "Development frameworks for microservice-based applications: Evaluation and comparison," in Proceedings of the 2020 European Symposium on Software Engineering, 2020, pp. 12-20.

C.-Y. Fan and S.-P. Ma, "Migrating monolithic mobile application to microservice architecture: An experiment report," in 2017 ieee international conference on ai & mobile services (aims), 2017: IEEE, pp. 109-112.

A. Jindal, V. Podolskiy, and M. Gerndt, "Performance modeling for cloud microservice applications," in Proceedings of the 2019 ACM/SPEC International Conference on Performance Engineering, 2019, pp. 25-32.

D. Taibi, V. Lenarduzzi, C. Pahl, and A. Janes, "Microservices in agile software development: a workshop-based study into issues, advantages, and disadvantages," in Proceedings of the XP2017 Scientific Workshops, 2017, pp. 1-5.

D. S. Linthicum, "Practical use of microservices in moving workloads to the cloud," IEEE Cloud Computing, vol. 3, no. 5, pp. 6-9, 2016.

H. Zhao, S. Deng, Z. Liu, J. Yin, and S. Dustdar, "Distributed redundancy scheduling for microservice-based applications at the edge," IEEE Transactions on Services Computing, 2020.

D. I. Savchenko, G. I. Radchenko, and O. Taipale, "Microservices validation: Mjolnirr platform case study," in 2015 38th International convention on information and communication technology, electronics and microelectronics (MIPRO), 2015: IEEE, pp. 235-240.

C. Richardson, Microservices patterns: with examples in Java. Simon and Schuster, 2018.

T. F. Zhang, Y. J. Zhang, and J. Yao, "A Study of Database Connection Pool," Applied Mechanics and Materials, vol. 556-562, pp. 5267-5270, 2014, doi: 10.4028/www.scientific.net/AMM.556-562.5267.

F. Liu, "A Method of Design and Optimization of Database Connection Pool," presented at the 2012 4th International Conference on Intelligent Human-Machine Systems and Cybernetics, 2012.

R. Luo and X. Tang, "Design and Realization for JDBC-based Database Connection-pool," Computer Engineering, vol. 9, p. 036, 2004.

X. Zhongke, "Database connection pool technology and its application," Journal of Changsha University of science and Technology, vol. 2, pp. 67-71, 2015.

Q. Liang, Z. Shen, J. Luo, H. Fan, D. Ming, and J. Li, "Study of database connection pool in LBS platform," Comput. Eng, vol. 18, pp. 39-41, 2006.

A. Edwards, "Let’s Go Further," in Let’s Go Further, vol. 1, 2021, ch. Configuring the Database Connection Pool, pp. 116-122.

C. HOU, Z. YANG, and W. LIU, "Application and improvement of database connection pool based on J2EE architecture," Computer Technology and Development, vol. 16, no. 10, pp. 8-10, 2006.

G.-l. Feng and L.-h. Yang, "A New Method in Improving Database Connection Pool Model," World Academy of Science, Engineering and Technology, vol. 29, pp. 246-249, 2007.

A. Trzop. "Estimate database connections pool size for Rails application." https://docs.knapsackpro.com/2021/estimate-database-connections-pool-size-for-rails-application (accessed.

F. Al-Hawari, A. Alufeishat, M. Alshawabkeh, H. Barham, and M. Habahbeh, "The software engineering of a three-tier web-based student information system (MyGJU)," Computer Applications in Engineering Education, vol. 25, no. 2, pp. 242-263, 2017, doi: 10.1002/cae.21794.

B. H. Huang, T. J. Wang, Y. Ma, and F. Jiang, "Security Problem Modeling of Database Connection Pool," Applied Mechanics and Materials, vol. 543-547, pp. 3276-3279, 2014, doi: 10.4028/www.scientific.net/AMM.543-547.3276.

B. H. Huang, Y. Ma, and F. Jiang, "Research on the Security Audit of Database Connection Pool," Applied Mechanics and Materials, vol. 543-547, pp. 3286-3289, 2014, doi: 10.4028/www.scientific.net/AMM.543-547.3286.

N. Meghanathan, "Review of Access Control Models for Cloud Computing," presented at the Computer Science & Information Technology ( CS & IT ), 2013.