A Review of Polyglot Persistence in the Big Data World
Abstract
:1. Introduction
2. No Cure-All Database Solution Changes with Big Data World
2.1. Technical and Business Perspective: A Brief Look at SQL and NoSQL Stores in the Big Data Landscape
2.2. (Relational) SQL Databases
2.3. NoSQL Data Stores
2.4. Types of NoSQL Data Stores
3. CAP Theorem of Big Data Era—Relationship of Polyglot Persistence with CAP Theorem
3.1. BASE Descending from the CAP Theorem
3.2. CAP Compromises
3.3. Varying Consistency Levels, NoSQL, SQL (Strong Consistency) and Polyglot Persistence
4. Depicting Polyglot Persistence
4.1. No One Cure-Them-All Database Resulting in Polyglot Persistence
4.2. Evolution of Polyglot Persistence
4.2.1. The simplest form of Polyglot Persistence
4.2.2. Choosing NoSQL Databases for Different Parts of the System
4.2.3. Polyglot Persistence Implementation Examples
4.3. Approaches to Achieve Polyglot Persistence
4.3.1. Domain-Oriented Solutions
4.3.2. Query Language-Based Solutions
4.3.3. Other Solutions: General Framework/Middle Ware/Multi-Models
4.4. Polyglot Persistence in Big Data Architectures
5. Discussion
6. Conclusions
Funding
Acknowledgments
Conflicts of Interest
Appendix A. CAP Characteristics
- Consistency: All clients will access the same (consistent) data at the same time. The same view of the data is provided to users by propagating the most recent updated version of data to all nodes, even if data are on replicated partitions of the database. If data are inconsistent in all nodes, the user has to wait until the latest version is available (maintain consistency of data).
- Availability: Non-filing nodes in the system will always give a response to a request. Every client can always read and write to the databases, even when there is a failure in communication (partitions are present) within replicated parts of the database. Availability is also the reason the data may or may not be consistent in all partitions resulting in different versions of data in different physical servers.
- Partition tolerance: Exception of total network failure, non-failing nodes in the working network partition must provide valid (atomic) responses. Segments of systems (non-failing nodes) work well and give responses (whether consistency oriented or availability oriented) even in the presence of temporary communication failure across the physical network.
Appendix B. BASE Characteristics
- Basically Available: Data from a database (responses to a request) will always be available to a user when they are needed by replicating multiples copies of data blocks. The hindrances in ACID, such as deadlock, will be avoided. However, the received data may or may not be consistent in all nodes and may show multiple versions of data to different users who request the same data.
- Soft State: The system state might be changing to get an eventual state per operation even where there is no input to the database system. This “continue changing states” nature makes the system always remain in a soft state. Consistency responsibility is delegated to the application level.
- Eventual Consistency: The system will not guarantee the consistency of all data after each operation. Data in different nodes may not be consistent at all time. Instead, the received changes for data will eventually be propagated to all nodes in the system, after a point of time.
References
- McKinsey Global Institute, Big Data: The Next Frontier for Innovation, Competition, and Productivity; 2011. Available online: https://www.mckinsey.com/business-functions/digital-mckinsey/our-insights/big-data-the-next-frontier-for-innovation (accessed on 15 April 2019).
- Laney, D. 3D Data Management: Controlling Data Volume, Velocity, and Variety. Application Delivery Strategies 2001, No. February 2001; Gartner: 2001. pp. 1–4. Available online: https://blogs.gartner.com/doug-laney/files/2012/01/ad949-3D-Data-Management-Controlling-Data-Volume-Velocity-and-Variety.pdf (accessed on 15 April 2019).
- Al-Jaroodi, J.; Mohamed, N. Characteristics and requirements of big data analytics applications. In Proceedings of the 2016 IEEE 2nd International Conference on Collaboration and Internet Computing, IEEE CIC, Pittsburgh, PA, USA, 1–3 November 2016; pp. 426–432. [Google Scholar]
- Vogels, W. Eventually Consistent. Queue 2008, 6, 14. [Google Scholar] [CrossRef] [Green Version]
- Brewer, E.A. Towards Robust Distributed Systems (Abstract). In Proceedings of the Nineteenth Annual ACM Symposium on Principles of Distributed Computing, Portland, OR, USA, 16–19 July 2000. [Google Scholar]
- Gilbert, S.; Lynch, N. Brewer’s Conjecture and the Feasibility of Consistent, Available, Partition-Tolerant Web Services. ACM SIGACT News 2002, 33, 51. [Google Scholar] [CrossRef]
- Petersen, K.; Spreitzer, M.J.; Terry, D.B.; Theimer, M.M.; Demers, A.J. Flexible Update Propagation for Weakly Consistent Replication. ACM SIGOPS Operat. Syst. Rev. 2004. [Google Scholar] [CrossRef]
- Gehrke, J.; Ailamaki, A.; Hellerstein, J.M.; Franklin, M.J.; Kossmann, D.; Sarawagi, S.; Doan, A.; Stonebraker, M.; Carey, M.J.; Ioannidis, Y.E.; et al. The Claremont Report on Database Research. Commun. ACM 2009. [Google Scholar] [CrossRef]
- Polyglot Persistence. Available online: https://martinfowler.com/bliki/PolyglotPersistence.html (accessed on 5 Janauary 2019).
- Polyglot Programming. Available online: http://memeagora.blogspot.com/2006/12/polyglot-programming.html (accessed on 5 January 2019).
- Hwang, J.S.; Lee, S.; Lee, Y.; Park, S. A Selection Method of Database System in Bigdata Environment: A Case Study from Smart Education Service in Korea. Int. J. Adv. Soft Comput. Its Appl. 2015, 7, 9–21. [Google Scholar]
- Hachem, N.; Helland, P.; Stonebraker, M.; Madden, S.; Abadi, D.J.; Harizopoulos, S. The End of an Architectural Era: It’s Time for a Complete Rewrite. In Proceedings of the 33rd International Conference on Very Large DataBases, Vienna, Austria, 23–27 September 2007. [Google Scholar]
- Dean, J. Big Data, Data Mining, and Machine Learning; Wiley: New York, NY, USA, 2014. [Google Scholar]
- Stonebraker, M.; Çetintemel, U. “One Size Fits All”: An Idea Whose Time Has Come and Gone. In Proceedings of the International Conference on Data Engineering, Tokyo, Japan, 5–8 April 2005. [Google Scholar]
- Friends Don’t Let Friends Build Data Pipelines. Available online: https://www.abhishek-tiwari.com/friends-dont-let-friends-build-data-pipelines/ (accessed on 10 March 2019).
- Buyya, R.; Calheiros, R.N.; Dastjerdi, A.V. Big Data: Principles and Paradigms; Elsevier: Atlanta, GA, USA, 2016. [Google Scholar]
- Cuzzocrea, A. Warehousing and Protecting Big Data: State-Of-The-Art-Analysis, Methodologies, Future Challenges. In Proceedings of the International Conference on Internet of Things and Cloud Computing ICC’16, Cambridge, UK, 22–23 March 2016. [Google Scholar]
- Bachman, C.W. Software for Random Access Processing. Datamation 1965, 11, 36–41. [Google Scholar]
- Codd, E.F. A Relational Model of Data for Large Shared Data Banks. Commun. ACM 1983, 26, 64–69. [Google Scholar] [CrossRef]
- Haerder, T.; Reuter, A. Principles of Transaction-Oriented Database Recovery. ACM Comput. Surv. 1983, 15, 287–317. [Google Scholar] [CrossRef]
- Banothu, N.; Bhukya, S.; Sharma, K.V. Big-Data: Acid versus Base for Database Transactions. In Proceedings of the International Conference on Electrical, Electronics, and Optimization Techniques, ICEEOT 2016, Chennai, India, 3–5 March 2016. [Google Scholar]
- Kohler, W.H. A Survey of Techniques for Synchronization and Recovery in Decentralized Computer Systems. ACM Comput. Surv. 1981, 13, 149–183. [Google Scholar] [CrossRef]
- Jagadish, H.V.; Naughton, J.F.; Doan, A.; Balazinska, M.; Abadi, D.; Dean, J.; Franklin, M.J.; Halevy, A.Y.; Widom, J.; Suciu, D.; et al. The Beckman Report on Database Research. Commun. ACM 2016, 59, 92–99. [Google Scholar]
- Sadalage, P.J.; Fowler, M. NoSQL Distilled: A Brief Guide to the Emerging World of Polyglot Persistence; Addison-Wesley: Boston, MA, USA, 2012. [Google Scholar]
- Storey, V.C.; Song, I.Y. Big Data Technologies and Management: What Conceptual Modeling Can Do. Data Knowl. Eng. 2017, 108, 50–67. [Google Scholar] [CrossRef]
- Gobioff, H.; Ghemawat, S.; Leung, S.-T. The Google File System. ACM SIGOPS Oper. Syst. Rev. 2003, 37, 29. [Google Scholar]
- White, T. Hadoop: The Definitive Guide, 3rd ed.; O’Reilly: Boston, MA, USA, 2012. [Google Scholar]
- Shvachko, K.; Kuang, H.; Radia, S.; Chansler, R. The Hadoop Distributed File System. In Proceedings of the 2010 IEEE 26th Symposium on Mass Storage Systems and Technologies, MSST2010, Incline Village, NV, USA, 3–7 May 2010. [Google Scholar]
- Dean, J.; Ghemawat, S. MapReduce: Simplified Data Processing on Large Clusters. In Proceedings of the 6th Usenix Symposium on Operating Systems Design and Implementation (OSDI ’04), San Francisco, CA, USA, 6–8 December 2004. [Google Scholar]
- Thusoo, A.; Sarma, J.S.; Jain, N.; Shao, Z.; Chakka, P.; Zhang, N.; Antony, S.; Liu, H.; Murthy, R. Hive—A Petabyte Scale Data Warehouse Using Hadoop. In Proceedings of the International Conference on Data Engineering, Long Beach, CA, USA, 1–6 March 2010. [Google Scholar]
- Thusoo, A.; Sarma, J.; Jain, N. Hive: A Warehousing Solution over a Map-Reduce Framework. In Proceedings of the 2010 IEEE 26th International Conference on Data Engineering (ICDE 2010), Long Beach, CA, USA, 1–6 March 2010. [Google Scholar]
- Tudorica, B.G.; Bucur, C. A Comparison between Several NoSQL Databases with Comments and Notes. In Proceedings of the RoEduNet IEEE International Conference, Iasi, Romania, 23–25 June 2011. [Google Scholar]
- Han, J.; Kamber, M.; Pei, J. Data Mining: Concepts and Techniques, 3rd ed.; Elsevier: Atlanta, GA, USA, 2012. [Google Scholar]
- Redis. Available online: https://redis.io/ (accessed on 19 February 2019).
- DeCandia, G.; Hastorun, D.; Jampani, M.; Kakulapati, G.; Lakshman, A.; Pilchin, A.; Sivasubramanian, S.; Vosshall, P.; Vogels, W. Dynamo: Amazon’s Highly Available Key-Value Store. ACM SIGOPS Oper. Syst. Rev. 2007, 41, 205. [Google Scholar] [CrossRef]
- Sumbaly, R.; Kreps, J.; Gao, L.; Feinberg, A.; Soman, C.; Shah, S. Serving Large-Scale Batch Computed Data with Project Voldemort. In Proceedings of the 10th USENIX Conference on File and Storage Technologies, San Jose, CA, USA, 14–17 February 2012. [Google Scholar]
- Lakshman, A.; Malik, P. Cassandra: A Decentralized Structured Storage System. ACM SIGOPS Oper. Syst. Rev. 2010, 44, 35. [Google Scholar] [CrossRef]
- Why Cassandra Doesn’t Need Vector Clocks. Available online: https://www.Datastax.Com/Dev/Blog/Why-Cassandra-Doesnt-Need-Vector-Clocks, (accessed on 10 February 2019).
- Chang, F.; Dean, J.; Ghemawat, S.; Hsieh, W.C.; Wallach, D.A.; Burrows, M.; Chandra, T.; Fikes, A.; Gruber, R.E. Bigtable: A Distributed Storage System for Structured Data. In Proceedings of the 7th Symposium on Operating Systems Design and Implementation, Seattle, DC, USA, 6–8 November 2006. [Google Scholar]
- Vora, M.N. Hadoop-HBase for Large-Scale Data. In Proceedings of the 2011 International Conference on Computer Science and Network Technology, ICCSNT 2011, Harbin, China, 24–26 December 2011. [Google Scholar]
- MongoDB. Available online: https://www.mongodb.com/ (accessed on 10 February 2019).
- CouchDB. Available online: http://couchdb.apache.org/ (accessed on 10 February 2019).
- MarkLogic. Available online: https://www.marklogic.com/ (accessed on 10 February 2019).
- Nan, X.; Vicknair, C.; Wilkins, D.; Zhao, Z.; Chen, Y.; Macias, M. A Comparison of a Graph Database and a Relational Database. In Proceedings of the 48th Annual Southeast Regional Conference, Oxford, MS, USA, 15–17 April 2010. [Google Scholar]
- Francis, N.; Green, A.; Guagliardo, P.; Libkin, L.; Lindaaker, T.; Marsault, V.; Plantikow, S.; Rydberg, M.; Selmer, P.; Taylor, A. Cypher: An Evolving Query Language for Property Graphs. In Proceedings of the ACM SIGMOD International Conference on Management of Data, Houston, TX, USA, 10–15 June 2018. [Google Scholar]
- Marx, E.; Saleem, M.; Lytra, I.; Ngomo, A.C.N. A Decentralized Architecture for SPARQL Query Processing and RDF Sharing: A Position Paper. In Proceedings of the 12th IEEE International Conference on Semantic Computing, ICSC 2018, Laguna Hills, CA, USA, 31 January–2 February 2018. [Google Scholar]
- Amazon’s Netptune. Available online: https://aws.amazon.com/neptune/ (accessed on 20 February 2019).
- Robbins, J.; Krishnan, K.; Allspaw, J.; Limoncelli, T. Resilience Engineering: Learning to Embrace Failure. Commun. ACM 2012, 55, 40. [Google Scholar]
- Brewer, E. CAP Twelve Years Later: How the “Rules” Have Changed. Computer 2012, 45, 23–29. [Google Scholar] [CrossRef]
- Brewer, E. A Certain Freedom: Thoughts on the CAP Theorem. In Proceedings of the 29th ACM SIGACT-SIGOPS, Zurich, Switzerland, 25–28 July 2010. [Google Scholar]
- Gribble, S.D.; Chawathe, Y.; Brewer, E.A.; Gauthier, P.; Fox, A. Cluster-Based Scalable Network Services. ACM SIGOPS Oper. Syst. Rev. 1997, 31, 78–91. [Google Scholar]
- Fox, A.; Brewer, E.A. Harvest, Yield, and Scalable Tolerant Systems; Hot Topics in Operating Systems: Rio Rico, AZ, USA, 2003. [Google Scholar]
- Abadi, D. Consistency Tradeoffs in Modern Distributed Database System Design: CAP Is Only Part of the Story. Computer 2012. [Google Scholar] [CrossRef]
- MIT Prof. Michael Stonebraker: “The Traditional RDBMS Wisdom is All Wrong”. Available online: https://blog.jooq.org/2013/08/24/mit-prof-michael-stonebraker-the-traditional-rdbms-wisdom-is-all-wrong/ (accessed on 10 January 2019).
- O’Neil, P.; Cherniack, M.; Abadi, D.J.; Tran, N.; Lau, E.; Batkin, A.; Madden, S.; Chen, X.; O’Neil, E.; Stonebraker, M.; et al. C-Store: A Column-Oriented DBMS. In Proceedings of the 31st VLDB Conference, Trondheim, Norway, 30 August–2 September 2005. [Google Scholar]
- VoltDB. Available online: https://www.voltdb.com (accessed on 10 February 2019).
- Gilbert, S.; Lynch, N. Perspectives on the CAP Theorem. Computer 2012, 45, 30–36. [Google Scholar] [CrossRef] [Green Version]
- Vogels, W. Eventually Consistent. Commun. ACM 2009, 52, 40–44. [Google Scholar] [CrossRef]
- Shapiro, M.; Sutra, P. Database Consistency Models. In Encyclopedia of Big Data Technologies; Sakr, S., Zomaya, A.Y., Eds.; Springer International Publishing: Cham, Switzerland, 2019; pp. 591–601. [Google Scholar]
- Diogo, M.; Cabral, B.; Bernardino, J. Consistency Models of NoSQL Databases. Future Internet 2019, 11, 43. [Google Scholar] [CrossRef]
- Myter, F.; Scholliers, C.; de Meuter, W. A CAPable Distributed Programming Model. In Proceedings of the 2018 ACM SIGPLAN International Symposium on New Ideas, New Paradigms, and Reflections on Programming and Software, Boston, MA, USA, 7–8 November 2018; pp. 88–98. [Google Scholar]
- Cattell, R. Scalable SQL and NoSQL Data Stores. ACM SIGMOD Rec. 2011, 39, 12. [Google Scholar] [CrossRef]
- De Araújo, A.M.C.; Times, V.C.; da Silva, M.U. PolyEHR: A Framework for Polyglot Persistence of the Electronic Health Record. In Proceedings of the 17th International Conference on Internet Computing and Internet of Things, Las Vegas, NV, USA, 25–28 July 2016. [Google Scholar]
- Srivastava, K.; Shekokar, N. A Polyglot Persistence Approach for E-Commerce Business Model. In Proceedings of the 2016 International Conference on Information Science, ICIS 2016, Kochi, India, 12–13 August 2016. [Google Scholar]
- Han, J.; Haihong, E.; Le, G.; Du, J. Survey on NoSQL Database. In Proceedings of the 2011 6th International Conference on Pervasive Computing and Applications, ICPCA 2011, Port Elizabeth, South Africa, 26–28 October 2011. [Google Scholar]
- Jimenez-peris, R.; Pati, M. Transactional Processing for Polyglot Persistence. In Proceedings of the 2016 30th International Conference on Advanced Information Networking and Applications Workshops (WAINA), Crans-Montana, Switzerland, 23–25 March 2016. [Google Scholar]
- Prasad, S.; Sha, M.S.N. NextGen Data Persistence Pattern in Healthcare: Polyglot Persistence. In Proceedings of the 2013 4th International Conference on Computing, Communications and Networking Technologies, ICCCNT 2013, Tiruchengode, India, 4–6 July 2013. [Google Scholar]
- Kaur, K.; Rani, R. Managing Data in Healthcare Information Systems: Many Models, One Solution. Computer 2015, 48, 52–59. [Google Scholar] [CrossRef]
- Prasad, S.; Avinash, S.B. Application of Polyglot Persistence to Enhance Performance of the Energy Data Management Systems. In Proceedings of the 2014 International Conference on Advances in Electronics, Computers, and Communications, ICAECC 2014, Bangalore, India, 10–11 October 2014. [Google Scholar]
- Shah, C.; Srivastava, K.; Shekokar, N. A Novel Polyglot Data Mapper for an E-Commerce Business Model. In Proceedings of the 2016 IEEE Conference on e-Learning, e-Management and e-Services, IC3e 2016, Langkawi, Malaysia, 10–12 October 2016. [Google Scholar]
- Castrejón, J.; Vargas-Solar, G.; Collet, C.; Lozano, R. ExSchema: Discovering and Maintaining Schemas from Polyglot Persistence Applications. In Proceedings of the IEEE International Conference on Software Maintenance, ICSM, Eindhoven, The Netherlands, 22–28 September 2013. [Google Scholar]
- Kolev, B.; Valduriez, P.; Bondiombouy, C.; Jiménez-Peris, R.; Pau, R.; Pereira, J. CloudMdsQL: Querying Heterogeneous Cloud Data Stores with a Common Language. Distrib. Databases 2015, 34, 463–503. [Google Scholar] [CrossRef]
- Schaarschmidt, M.; Gessert, F.; Ritter, N. Towards Automated Polyglot Persistence. In Datenbanksysteme für Business, Technologie und Web (BTW), 16; Fachtagung des GI-Fachbereichs “Datenbanken und Informationssysteme” (DBIS): Hamburg, Germany, 2015. [Google Scholar]
- Gessert, F.; Ritter, N. Scalable Data Management: NoSQL Data Stores in Research and Practice. In Proceedings of the 2016 IEEE 32nd International Conference on Data Engineering, ICDE 2016, Helsinki, Finland, 16–20 May 2016. [Google Scholar]
- Bussler, C. SQL for NoSQL Databases: Déjà Vu. In Proceedings of the Conference on Innovative Data Systems Research (CIDR), Asilomar, CA, USA, 4–7 January 2015. [Google Scholar]
- Bach, M.; Werner, A. Standardization of NoSQL Database Languages. In Communications in Computer and Information Science; Springer: New York, NY, USA, 2014. [Google Scholar]
- Hausenblas, M.; Nadeau, J. Apache Drill: Interactive Ad-Hoc Analysis at Scale. Big Data 2013, 1, 100–104. [Google Scholar] [CrossRef] [PubMed]
- Gessert, F.; Friedrich, S.; Wingerath, W.; Schaarschmidt, M.; Ritter, N. Towards a Scalable and Unified REST API for Cloud Data Stores. In Lecture Notes in Informatics (LNI), Proceedings—Series of the Gesellschaft für Informatik (GI); Gesellschaft für Informatik e.V.: Bonn, Germany, 2014. [Google Scholar]
- Lu, J.; Liu, Z.H.; Xu, P.; Zhang, C. UDBMS: Road to Unification for Multi-Model Data Management. In Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics); Springer: Cham, Switzerland, 2018. [Google Scholar]
- Pääkkönen, P.; Pakkala, D. Reference Architecture, and Classification of Technologies, Products, and Services for Big Data Systems. Big Data Res. 2015, 2, 166–186. [Google Scholar] [CrossRef]
- How to Beat the CAP Theorem. Available online: http://nathanmarz.com/blog/how-to-beat-the-cap-theorem.html (accessed on 20 December 2018).
- Questioning the Lambda Architecutre. Available online: https://www.oreilly.com/ideas/questioning-the-lambda-architecture (accessed on 30 December 2018).
- Kleppmann, M. Designing Data-Intensive Applications: The Big Ideas behind Reliable, Scalable, and Maintainable Systems; O’Reilly: Boston, MA, USA, 2017. [Google Scholar]
- Kreps, J. I Heart Logs; O’Reilly: Boston, MA, USA, 2015. [Google Scholar]
- O’Reilly Media, Inc. Big Data Now: Applying the Kappa Architecture to the Telco Industry; O’Reilly: Boston, MA, USA, 2016; pp. 33–40. [Google Scholar]
- Vanhove, T.; Sebrechts, M.; Van Seghbroeck, G.; Wauters, T.; Volckaert, B.; De Turck, F. Data Transformation as a Means towards Dynamic Data Storage and Polyglot Persistence. Int. J. Netw. Manag. 2017, 27, e1976. [Google Scholar] [CrossRef]
- Polyglot Processing. Available online: http://datadventures.ghost.io/2014/07/06/polyglot-processing (accessed on 19 December 2018).
- Khine, P.P.; Wang, Z.S. Data Lake: A New Ideology in Big Data Era. ITM Web Conf. 2018, 17, 3025. [Google Scholar] [CrossRef]
- Wiese, L. Polyglot Database Architectures. In Proceedings of the LWA 2015 Workshops: KDML, FGWM, IR, and FGDB, Trier, Germany, 7–9 October 2015. [Google Scholar]
Source Conjecture | Different file system ➔ (specialized) different type of data stores, ➔ polyglot persistence [generality] |
Formulation | Related theory—CAP Theorem ➔ derived theorem—PACELC, different consistency models, relationship with transactions ➔ BASE or ACID of different data stores ➔ Polyglot Persistence |
Methods | Current Solutions for achieving Polyglot PersistenceSuggestions to improve current solutions for Polyglot Persistence |
Comparison | Polyglot persistence characterization, big data architectures comparison and possible co-operations |
© 2019 by the authors. Licensee MDPI, Basel, Switzerland. This article is an open access article distributed under the terms and conditions of the Creative Commons Attribution (CC BY) license (http://creativecommons.org/licenses/by/4.0/).
Share and Cite
Khine, P.P.; Wang, Z. A Review of Polyglot Persistence in the Big Data World. Information 2019, 10, 141. https://doi.org/10.3390/info10040141
Khine PP, Wang Z. A Review of Polyglot Persistence in the Big Data World. Information. 2019; 10(4):141. https://doi.org/10.3390/info10040141
Chicago/Turabian StyleKhine, Pwint Phyu, and Zhaoshun Wang. 2019. "A Review of Polyglot Persistence in the Big Data World" Information 10, no. 4: 141. https://doi.org/10.3390/info10040141
APA StyleKhine, P. P., & Wang, Z. (2019). A Review of Polyglot Persistence in the Big Data World. Information, 10(4), 141. https://doi.org/10.3390/info10040141