The Role of NoSQL in Microservices Architecture: Enabling Scalability and Data Independence
Creators
Description
Microservices architecture has completely changed how software systems are architected and are being constructed and the advantages are enhanced agility, scalability, and resilience. In this paper, we study the critical role NoSQL databases play in driving microservices into the success they enjoy today, with respect to scalability and data independence. Unlike relational databases, NoSQL databases have different data models and are distributed which suit the principles of microservices and each service can pick the most suitable database for the specific data it needs. The purpose of this polyglot persistence approach, along with the sharding and replication inherent to NoSQL, allows companies to create highly flexible and high performing apps. We take a look at various types of NoSQL databases: key value stores, document databases, wide column stores and graph databases, looking at pros and cons from the microservices point of view. In addition, it discusses how the NoSQL databases solve problems such as data consistency, distributed transaction, and schema change in a distributed database system.
The paper illustrates how NoSQL is utilized by organizations to achieve data independence and fault tolerance, and to optimize performance, through case studies and examples. The paper examines the operational complexities and the required skill set to manage a polyglot persistence environment and reaches a conclusion that, though complicated, strategic adoption of NoSQL databases are a key enabler for organizations who seek a return on implementing microservices architecture. The future promises more synergy and innovation in the form of more resilient, scalable, and data driven applications of the NoSQL and Microservices.
Files
EJAET-9-6-87-95.pdf
Files
(364.5 kB)
Name | Size | Download all |
---|---|---|
md5:3d537f65aaa40a5b5125fac7cb300869
|
364.5 kB | Preview Download |
Additional details
References
- [1]. Tapia, Freddy, et al. "From monolithic systems to microservices: A comparative study of performance." Applied sciences 10.17 (2020): 5797.
- [2]. Baškarada, Saša, Vivian Nguyen, and Andy Koronios. "Architecting microservices: Practical opportunities and challenges." Journal of Computer Information Systems (2020).
- [3]. Santos, Nuno, and António Rito Silva. "A complexity metric for microservices architecture migration." 2020 IEEE international conference on software architecture (ICSA). IEEE, 2020.
- [4]. Sahatqija, Kosovare, et al. "Comparison between relational and NOSQL databases." 2018 41st international convention on information and communication technology, electronics and microelectronics (MIPRO). IEEE, 2018.
- [5]. Frank, Lars, et al. "The cap theorem versus databases with relaxed acid properties." Proceedings of the 8th International Conference on Ubiquitous Information Management and Communication. 2014.
- [6]. Viennot, Nicolas, et al. "Synapse: a microservices architecture for heterogeneous-database web applications." Proceedings of the tenth european conference on computer systems. 2015.
- [7]. Liu, Zhen Hua, et al. "Closing the functional and performance gap between SQL and NoSQL." Proceedings of the 2016 international conference on management of data. 2016.
- [8]. Holbeche, Linda. "Designing sustainably agile and resilient organizations." Systems Research and Behavioral Science 36.5 (2019): 668-677.
- [9]. Li, Shanshan, et al. "Understanding and addressing quality attributes of microservices architecture: A Systematic literature review." Information and software technology 131 (2021): 106449.
- [10]. Nadareishvili, Irakli, et al. Microservice architecture: aligning principles, practices, and culture. " O'Reilly Media, Inc.", 2016.
- [11]. Zimmermann, Olaf. "Microservices tenets: Agile approach to service development and deployment." Computer Science-Research and Development 32 (2017): 301-310.
- [12]. Aksakalli, Işıl Karabey, et al. "Deployment and communication patterns in microservice architectures: A systematic literature review." Journal of Systems and Software 180 (2021): 111014.
- [13]. Boucher, Sol, et al. "Putting the" micro" back in microservice." 2018 USENIX Annual Technical Conference (USENIX ATC 18). 2018.
- [14]. Miller, Loïc, et al. "Towards secure and leak-free workflows using microservice isolation." 2021 IEEE 22nd International Conference on High Performance Switching and Routing (HPSR). IEEE, 2021.
- [15]. Furda, Andrei, et al. "Migrating enterprise legacy source code to microservices: on multitenancy, statefulness, and data consistency." Ieee Software 35.3 (2017): 63-72.
- [16]. Salah, Tasneem, et al. "The evolution of distributed systems towards microservices architecture." 2016 11th International Conference for Internet Technology and Secured Transactions (ICITST). IEEE, 2016.
- [17]. Smid, Antonin, Ruolin Wang, and Tomas Cerny. "Case study on data communication in microservice architecture." Proceedings of the Conference on Research in Adaptive and Convergent Systems. 2019.
- [18]. Bushong, Vincent, et al. "On microservice analysis and architecture evolution: A systematic mapping study." Applied Sciences 11.17 (2021): 7856.
- [19]. Gupta, Adity, et al. "NoSQL databases: Critical analysis and comparison." 2017 International conference on computing and communication technologies for smart nation (IC3TSN). IEEE, 2017.
- [20]. Nayak, Ameya, Anil Poriya, and Dikshay Poojary. "Type of NOSQL databases and its comparison with relational databases." International Journal of Applied Information Systems 5.4 (2013): 16-19.
- [21]. Osemwegie, Omoruyi, et al. "Performance benchmarking of key-value store NoSQL databases." International Journal of Electrical and Computer Engineering (IJECE) 8.6 (2018): 5333-5341.
- [22]. Mason, Robert T. "NoSQL databases and data modeling techniques for a document-oriented NoSQL database." Proceedings of informing science & IT education conference (InSITE). Vol. 3. No. 4. 2015.
- [23]. Mehra, Raghav, Nirmal Lodhi, and Ram Babu. "Column based NoSQL database, scope and future." International Journal of Research and Analytical Reviews 2.4 (2015): 105-113.
- [24]. Hewitt, Eben. Cassandra: the definitive guide. " O'Reilly Media, Inc.", 2010.
- [25]. Vora, Mehul Nalin. "Hadoop-HBase for large-scale data." Proceedings of 2011 International Conference on Computer Science and Network Technology. Vol. 1. IEEE, 2011.
- [26]. Atemezing, Ghislain Auguste. "Empirical Evaluation of a Cloud-Based Graph Database: the Case of Neptune." Knowledge Graphs and Semantic Web: Third Iberoamerican Conference and Second Indo-American Conference, KGSWC 2021, Kingsville, Texas, USA, November 22–24, 2021, Proceedings 3. Springer International Publishing, 2021.
- [27]. Miller, Justin J. "Graph database applications and concepts with Neo4j." Proceedings of the southern association for information systems conference, Atlanta, GA, USA. Vol. 2324. No. 36. 2013.
- [28]. Shim, Simon SY. "Guest editor's introduction: The cap theorem's growing impact." Computer 45.02 (2012): 21-22.
- [29]. Vogels, Werner. "Eventually Consistent: Building reliable distributed systems at a worldwide scale demands trade-offs? between consistency and availability." Queue 6.6 (2008): 14-19.
- [30]. Dragojević, Aleksandar, et al. "No compromises: distributed transactions with consistency, availability, and performance." Proceedings of the 25th symposium on operating systems principles. 2015.
- [31]. Lourenço, João Ricardo, et al. "Choosing the right NoSQL database for the job: a quality attribute evaluation." Journal of Big Data 2 (2015): 1-26.
- [32]. O'Connor, Rory V., Peter Elger, and Paul M. Clarke. "Continuous software engineering—A microservices architecture perspective." Journal of Software: Evolution and Process 29.11 (2017): e1866.
- [33]. Sapar, Nazir. "SOLUTIONS FOR BUILDING HIGH-AVAILABILITY WITH NOSQL DATABASES." Интернаука 16-3 (2021): 83-85.
- [34]. Naskos, Athanasios, Anastasios Gounaris, and Panagiotis Katsaros. "Cost-aware horizontal scaling of NoSQL databases using probabilistic model checking." Cluster Computing 20 (2017): 2687-2701.
- [35]. AGARWAL, SARTHAK. Performance Analysis of Spatial Queries and Routing in NoSQL databases. Diss. International Institute of Information Technology, Hyderabad, 2019.
- [36]. Pankowski, Tadeusz. "Consistency and availability of Data in replicated NoSQL databases." 2015 International Conference on Evaluation of Novel Approaches to Software Engineering (ENASE). IEEE, 2015.
- [37]. Sadalage, Pramod J., and Martin Fowler. NoSQL distilled: a brief guide to the emerging world of polyglot persistence. Pearson Education, 2013.
- [38]. Khazaei, Hamzeh, et al. "How do I choose the right NoSQL solution? A comprehensive theoretical and experimental survey." Big Data & Information Analytics 1.2&3 (2016): 185-216.
- [39]. Scherzinger, Stefanie, Meike Klettke, and Uta Störl. "Managing schema evolution in NoSQL data stores." arXiv preprint arXiv:1308.0514 (2013).
- [40]. Ganesan, Aishwarya, et al. "Redundancy does not imply fault tolerance: Analysis of distributed storage reactions to file-system faults." ACM Transactions on Storage (TOS) 13.3 (2017): 1-33.
- [41]. Abed, Amira Hassan. "Recovery and concurrency challenging in big data and NoSQL database systems." International Journal of Advanced Networking and Applications 11.4 (2020): 4321-4329.
- [42]. Abadi, Aharon, et al. "Holistic disaster recovery approach for big data NoSQL workloads." 2016 ieee international conference on big data (big data). IEEE, 2016.
- [43]. Dipietro, Salvatore. "Performance modelling and optimisation of NoSQL database systems." ACM SIGMETRICS Performance Evaluation Review 47.3 (2020): 10-13.
- [44]. Atzeni, Paolo, et al. "Data modeling in the NoSQL world." Computer Standards & Interfaces 67 (2020): 103149.
- [45]. Qader, Mohiuddin Abdul, Shiwen Cheng, and Vagelis Hristidis. "A comparative study of secondary indexing techniques in LSM-based NoSQL databases." Proceedings of the 2018 International Conference on Management of Data. 2018.
- [46]. Nalla, Lakshmi Nivas, and Vijay Mallik Reddy. "Comparative Analysis of Modern Database Technologies in Ecommerce Applications." International Journal of Advanced Engineering Technologies and Innovations 1.2 (2020): 21-39.
- [47]. Nicoara, Daniel, et al. "Hermes: Dynamic Partitioning for Distributed Social Network Graph Databases." EDBT. 2015.
- [48]. Al Fatah, Jabir, and Liaquath Chowdhury. "Consistency Issues on NoSQL Databases: Problems with Current Approaches and Possible Solution (s)." Update 4.4 (2016): 3.
- [49]. Ramzan, Shabana, et al. "Challenges in NoSQL-based distributed data storage: a systematic literature review." electronics 8.5 (2019): 488.
- [50]. Diogo, Miguel, Bruno Cabral, and Jorge Bernardino. "Consistency models of NoSQL databases." Future Internet 11.2 (2019): 43.
- [51]. Grolinger, Katarina, et al. "Data management in cloud environments: NoSQL and NewSQL data stores." Journal of Cloud Computing: advances, systems and applications 2 (2013): 1-24.
- [52]. Gurcan, Fatih, and Nergiz Ercil Cagiltay. "Big data software engineering: Analysis of knowledge domains and skill sets using LDA-based topic modeling." IEEE access 7 (2019): 82541-82552.
- [53]. Gupta, Neha, and Rashmi Agrawal. "NoSQL security." Advances in computers. Vol. 109. Elsevier, 2018. 101-132.
- [54]. McGrath, Garrett, and Paul R. Brenner. "Serverless computing: Design, implementation, and performance." 2017 IEEE 37th International Conference on Distributed Computing Systems Workshops (ICDCSW). IEEE, 2017.
- [55]. openlogic "Guide to Open Source Wide Column Databases" https://openlogic.com/blog/guide-open-source-wide-column-databases
- [56]. Jatin Sharma. "Graph Databases vs Relational Databases: What and why?" https://j471n.in/blogs/graph-databases-vs-relational-databases