{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2025,10,12]],"date-time":"2025-10-12T02:02:13Z","timestamp":1760234533231,"version":"build-2065373602"},"reference-count":69,"publisher":"MDPI AG","issue":"6","license":[{"start":{"date-parts":[[2021,5,31]],"date-time":"2021-05-31T00:00:00Z","timestamp":1622419200000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/creativecommons.org\/licenses\/by\/4.0\/"}],"funder":[{"DOI":"10.13039\/100000001","name":"National Science Foundation","doi-asserted-by":"publisher","award":["CCF-1936450"],"award-info":[{"award-number":["CCF-1936450"]}],"id":[{"id":"10.13039\/100000001","id-type":"DOI","asserted-by":"publisher"}]}],"content-domain":{"domain":[],"crossmark-restriction":false},"short-container-title":["Algorithms"],"abstract":"<jats:p>Transactional memory has been receiving much attention from both academia and industry. In transactional memory, program code is split into transactions, blocks of code that appear to execute atomically. Transactions are executed speculatively and the speculative execution is supported through data versioning mechanism. Lazy versioning makes aborts fast but penalizes commits, whereas eager versioning makes commits fast but penalizes aborts. However, whether to use eager or lazy versioning to execute those transactions is still a hotly debated topic. Lazy versioning seems appropriate for write-dominated workloads and transactions in high contention scenarios whereas eager versioning seems appropriate for read-dominated workloads and transactions in low contention scenarios. This necessitates a priori knowledge on the workload and contention scenario to select an appropriate versioning method to achieve better performance. In this article, we present an adaptive versioning approach, called Adaptive, that dynamically switches between eager and lazy versioning at runtime, without the need of a priori knowledge on the workload and contention scenario but based on appropriate system parameters, so that the performance of a transactional memory system is always better than that is obtained using either eager or lazy versioning individually. We provide Adaptive for both persistent and non-persistent transactional memory systems using performance parameters appropriate for those systems. We implemented our adaptive versioning approach in the latest software transactional memory distribution TinySTM and extensively evaluated it through 5 micro-benchmarks and 8 complex benchmarks from STAMP and STAMPEDE suites. The results show significant benefits of our approach. Specifically, in persistent TM systems, our approach achieved performance improvements as much as 1.5\u00d7 for execution time and as much as 240\u00d7 for number of aborts, whereas our approach achieved performance improvements as much as 6.3\u00d7 for execution time and as much as 170\u00d7 for number of aborts in non-persistent transactional memory systems.<\/jats:p>","DOI":"10.3390\/a14060171","type":"journal-article","created":{"date-parts":[[2021,5,31]],"date-time":"2021-05-31T21:42:06Z","timestamp":1622497326000},"page":"171","update-policy":"https:\/\/doi.org\/10.3390\/mdpi_crossmark_policy","source":"Crossref","is-referenced-by-count":0,"title":["Adaptive Versioning in Transactional Memory Systems"],"prefix":"10.3390","volume":"14","author":[{"ORCID":"https:\/\/orcid.org\/0000-0002-0709-9600","authenticated-orcid":false,"given":"Pavan","family":"Poudel","sequence":"first","affiliation":[{"name":"Department of Computer Science, Kent State University, Kent, OH 44240, USA"}]},{"ORCID":"https:\/\/orcid.org\/0000-0002-4930-4609","authenticated-orcid":false,"given":"Gokarna","family":"Sharma","sequence":"additional","affiliation":[{"name":"Department of Computer Science, Kent State University, Kent, OH 44240, USA"}]}],"member":"1968","published-online":{"date-parts":[[2021,5,31]]},"reference":[{"key":"ref_1","doi-asserted-by":"crossref","unstructured":"Herlihy, M., and Moss, J.E.B. (1993, January 16\u201319). Transactional Memory: Architectural Support for Lock-free Data Structures. Proceedings of the ISCA, San Diego, CA, USA.","DOI":"10.1145\/165123.165164"},{"key":"ref_2","doi-asserted-by":"crossref","first-page":"99","DOI":"10.1007\/s004460050028","article-title":"Software Transactional Memory","volume":"10","author":"Shavit","year":"1997","journal-title":"Distrib. Comput."},{"key":"ref_3","unstructured":"(2021, February 04). Intel. Available online: http:\/\/software.intel.com\/en-us\/blogs\/2012\/02\/07\/transactional-synchronization-in-haswell."},{"key":"ref_4","doi-asserted-by":"crossref","first-page":"48","DOI":"10.1109\/MM.2011.108","article-title":"The IBM Blue Gene\/Q Compute Chip","volume":"32","author":"Haring","year":"2012","journal-title":"IEEE Micro"},{"key":"ref_5","doi-asserted-by":"crossref","unstructured":"Nakaike, T., Odaira, R., Gaudet, M., Michael, M.M., and Tomari, H. (2015, January 13\u201317). Quantitative comparison of hardware transactional memory for Blue Gene\/Q, zEnterprise EC12, Intel Core, and POWER8. Proceedings of the ISCA, Portland, Oregon.","DOI":"10.1145\/2749469.2750403"},{"key":"ref_6","doi-asserted-by":"crossref","unstructured":"Cain, H.W., Michael, M.M., Frey, B., May, C., Williams, D., and Le, H.Q. (2013, January 23\u201327). Robust architectural support for transactional memory in the power architecture. Proceedings of the ISCA, Tel Aviv, Israel.","DOI":"10.1145\/2485922.2485942"},{"key":"ref_7","doi-asserted-by":"crossref","unstructured":"Bocchino, R.L., Adve, V.S., and Chamberlain, B.L. (2008, January 20\u201323). Software transactional memory for large scale clusters. Proceedings of the PPoPP, Salt Lake City, UT, USA.","DOI":"10.1145\/1345206.1345242"},{"key":"ref_8","doi-asserted-by":"crossref","unstructured":"Fung, W.W.L., Singh, I., Brownsword, A., and Aamodt, T.M. (2011, January 3\u20137). Hardware transactional memory for GPU architectures. Proceedings of the MICRO, Porto Alegre, Brazil.","DOI":"10.1109\/MM.2012.16"},{"key":"ref_9","doi-asserted-by":"crossref","unstructured":"Manassiev, K., Mihailescu, M., and Amza, C. (2006, January 29\u201331). Exploiting Distributed Version Concurrency in a Transactional Memory Cluster. Proceedings of the PPoPP, Manhattan, NY, USA.","DOI":"10.1145\/1122971.1123002"},{"key":"ref_10","unstructured":"Ananian, C.S., Asanovic, K., Kuszmaul, B.C., Leiserson, C.E., and Lie, S. (2005, January 12\u201316). Unbounded Transactional Memory. Proceedings of the HPCA, San Francisco, CA, USA."},{"key":"ref_11","doi-asserted-by":"crossref","first-page":"102","DOI":"10.1145\/1028176.1006711","article-title":"Transactional Memory Coherence and Consistency","volume":"32","author":"Hammond","year":"2004","journal-title":"SIGARCH Comput. Archit. News"},{"key":"ref_12","unstructured":"Moore, K.E. (2006, January 11\u201315). LogTM: Log-Based Transactional Memory. Proceedings of the HPCA, Austin, TA, USA."},{"key":"ref_13","unstructured":"Rajwar, R., Herlihy, M., and Lai, K. Virtualizing Transactional Memory. Proceedings of the ISCA."},{"key":"ref_14","unstructured":"(2019, February 14). RSTM. Available online: http:\/\/www.cs.rochester.edu\/research\/synchronization\/rstm\/index.shtml."},{"key":"ref_15","doi-asserted-by":"crossref","unstructured":"Dalessandro, L., Spear, M.F., and Scott, M.L. (2010, January 9\u201314). NOrec: Streamlining STM by Abolishing Ownership Records. Proceedings of the PPOPP, Bangalore, India.","DOI":"10.1145\/1693453.1693464"},{"key":"ref_16","doi-asserted-by":"crossref","unstructured":"Dragojevic, A., Guerraoui, R., and Kapalka, M. (2009, January 15\u201320). Stretching Transactional Memory. Proceedings of the PLDI, Dublin, Ireland.","DOI":"10.1145\/1542476.1542494"},{"key":"ref_17","doi-asserted-by":"crossref","unstructured":"Zhao, J., Li, S., Yoon, D.H., Xie, Y., and Jouppi, N.P. (2013, January 22\u201326). Kiln: Closing the Performance Gap Between Systems with and without Persistence Support. Proceedings of the MICRO, Shanghai, China.","DOI":"10.1145\/2540708.2540744"},{"key":"ref_18","doi-asserted-by":"crossref","unstructured":"Coburn, J., Caulfield, A.M., Akel, A., Grupp, L.M., Gupta, R.K., Jhala, R., and Swanson, S. (2011, January 5\u201311). NV-Heaps: Making Persistent Objects Fast and Safe with Next-generation, Non-volatile Memories. Proceedings of the ASPLOS, Newport Beach, CA, USA.","DOI":"10.1145\/1950365.1950380"},{"key":"ref_19","doi-asserted-by":"crossref","unstructured":"Volos, H., Tack, A.J., and Swift, M.M. (2011, January 5\u201311). Mnemosyne: Lightweight Persistent Memory. Proceedings of the ASPLOS, Newport Beach, CA, USA.","DOI":"10.1145\/1950365.1950379"},{"key":"ref_20","doi-asserted-by":"crossref","unstructured":"Narayanan, D., and Hodson, O. (2012, January 3\u20137). Whole-system Persistence. Proceedings of the ASPLOS, London, UK.","DOI":"10.1145\/2150976.2151018"},{"key":"ref_21","doi-asserted-by":"crossref","unstructured":"Liu, M., Zhang, M., Chen, K., Qian, X., Wu, Y., Zheng, W., and Ren, J. (2017, January 8\u201312). DudeTM: Building Durable Transactions with Decoupling for Persistent Memory. Proceedings of the ASPLOS, Xi\u2019an, China.","DOI":"10.1145\/3037697.3037714"},{"key":"ref_22","doi-asserted-by":"crossref","unstructured":"Wan, H., Lu, Y., Xu, Y., and Shu, J. (2016, January 17\u201319). Empirical study of redo and undo logging in persistent memory. Proceedings of the NVMSA, Deagu, Korea.","DOI":"10.1109\/NVMSA.2016.7547178"},{"key":"ref_23","unstructured":"Minh, C.C., Chung, J., Kozyrakis, C., and Olukotun, K. (2008, January 14\u201316). STAMP: Stanford Transactional Applications for Multi-Processing. Proceedings of the IISWC, Seattle, WA, USA."},{"key":"ref_24","doi-asserted-by":"crossref","unstructured":"Poudel, P., and Sharma, G. (2018, January 4\u20137). An Adaptive Logging Framework for Persistent Memories. Proceedings of the SSS, Tokyo, Japan.","DOI":"10.1007\/978-3-030-03232-6_3"},{"key":"ref_25","doi-asserted-by":"crossref","unstructured":"Poudel, P., and Sharma, G. (2019, January 22\u201325). Adaptive Versioning in Transactional Memories. Proceedings of the SSS, Pisa, Italy.","DOI":"10.1007\/978-3-030-34992-9_22"},{"key":"ref_26","doi-asserted-by":"crossref","first-page":"1793","DOI":"10.1109\/TPDS.2010.49","article-title":"Time-Based Software Transactional Memory","volume":"21","author":"Felber","year":"2010","journal-title":"IEEE Trans. Parallel Distrib. Syst."},{"key":"ref_27","doi-asserted-by":"crossref","unstructured":"Felber, P., Fetzer, C., and Riegel, T. (2008, January 20\u201323). Dynamic performance tuning of word-based software transactional memory. Proceedings of the PPOPP, Salt Lake City, UT, USA.","DOI":"10.1145\/1345206.1345241"},{"key":"ref_28","doi-asserted-by":"crossref","unstructured":"Herlihy, M., Luchangco, V., Moir, M., and Scherer, W.N. (2003, January 13\u201316). Software Transactional Memory for Dynamic-sized Data Structures. In Proceedings of the PODC, Boston, MA, USA.","DOI":"10.1145\/872035.872048"},{"key":"ref_29","doi-asserted-by":"crossref","unstructured":"Nguyen, D., and Pingali, K. (2017, January 8\u201312). What Scalable Programs Need from Transactional Memory. Proceedings of the ASPLOS, Xi\u2019an, China.","DOI":"10.1145\/3037697.3037750"},{"key":"ref_30","doi-asserted-by":"crossref","first-page":"4","DOI":"10.1007\/s11390-020-0780-z","article-title":"A Survey of Non-Volatile Main Memory Technologies: State-of-the-Arts, Practices, and Future Directions","volume":"36","author":"Liu","year":"2021","journal-title":"J. Comput. Sci. Technol."},{"key":"ref_31","doi-asserted-by":"crossref","first-page":"1","DOI":"10.1016\/bs.adcom.2019.09.001","article-title":"Chapter One\u2014Introduction to non-volatile memory technologies","volume":"Volume 118","author":"Asadinia","year":"2020","journal-title":"Durable Phase-Change Memory Architectures"},{"key":"ref_32","doi-asserted-by":"crossref","unstructured":"Damron, P., Fedorova, A., Lev, Y., Luchangco, V., Moir, M., and Nussbaum, D. (2006, January 21\u201325). Hybrid transactional memory. Proceedings of the ASPLOS, San Jose, CA, USA.","DOI":"10.1145\/1168857.1168900"},{"key":"ref_33","doi-asserted-by":"crossref","unstructured":"Kumar, S., Chu, M., Hughes, C.J., Kundu, P., and Nguyen, A.D. (2006, January 29\u201331). Hybrid transactional memory. Proceedings of the PPOPP, Manhattan, NY, USA.","DOI":"10.1145\/1122971.1123003"},{"key":"ref_34","doi-asserted-by":"crossref","unstructured":"Dalessandro, L., Carouge, F., White, S., Lev, Y., Moir, M., Scott, M.L., and Spear, M.F. (2011, January 5\u201311). Hybrid NOrec: A case study in the effectiveness of best effort hardware transactional memory. Proceedings of the ASPLOS, Newport Beach, CA, USA.","DOI":"10.1145\/1950365.1950373"},{"key":"ref_35","doi-asserted-by":"crossref","first-page":"167","DOI":"10.1007\/s00446-017-0305-3","article-title":"Inherent limitations of hybrid transactional memory","volume":"31","author":"Alistarh","year":"2018","journal-title":"Distrib. Comput."},{"key":"ref_36","doi-asserted-by":"crossref","unstructured":"Ruan, W., and Spear, M.F. (2015, January 5\u20139). Hybrid Transactional Memory Revisited. Proceedings of the DISC, Tokyo, Japan.","DOI":"10.1007\/978-3-662-48653-5_15"},{"key":"ref_37","doi-asserted-by":"crossref","unstructured":"Riegel, T., Marlier, P., Nowack, M., Felber, P., and Fetzer, C. (2011, January 4\u20136). Optimizing hybrid transactional memory: The importance of nonspeculative operations. Proceedings of the SPAA, San Jose, CA, USA.","DOI":"10.1145\/1989493.1989501"},{"key":"ref_38","unstructured":"Lev, Y., Moir, M., and Nussbaum, D. (2007, January 16). PhTM: Phased transactional memory. Proceedings of the Workshop on Transactional Computing (Transact), Portland, Oregon."},{"key":"ref_39","doi-asserted-by":"crossref","unstructured":"De Carvalho, J.P.L., Araujo, G., and Baldassin, A. (2017, January 12\u201315). Revisiting phased transactional memory. Proceedings of the ICS, Florence, Italy.","DOI":"10.1145\/3079079.3079094"},{"key":"ref_40","doi-asserted-by":"crossref","first-page":"459","DOI":"10.1109\/TPDS.2018.2861712","article-title":"The Case for Phase-Based Transactional Memory","volume":"30","author":"Araujo","year":"2019","journal-title":"IEEE Trans. Parallel Distrib. Syst."},{"key":"ref_41","unstructured":"(2019, February 14). The Persistent Memory Development Kit (PMDK). Available online: https:\/\/github.com\/pmem\/pmdk\/."},{"key":"ref_42","doi-asserted-by":"crossref","unstructured":"Dulloor, S.R., Kumar, S., Keshavamurthy, A., Lantz, P., Reddy, D., Sankaran, R., and Jackson, J. (2014, January 14\u201316). System Software for Persistent Memory. Proceedings of the EuroSys, Amsterdam, The Netherlands.","DOI":"10.1145\/2592798.2592814"},{"key":"ref_43","doi-asserted-by":"crossref","unstructured":"Avni, H., Levy, E., and Mendelson, A. (2015, January 5\u20139). Hardware Transactions in Nonvolatile Memory. Proceedings of the DISC, Tokyo, Japan.","DOI":"10.1007\/978-3-662-48653-5_41"},{"key":"ref_44","unstructured":"Gen\u00e7, K., Bond, M.D., and Xu, G.H. Crafty: Efficient, HTM-Compatible Persistent Transactions. Proceedings of the PLDI."},{"key":"ref_45","unstructured":"Joshi, A., Nagarajan, V., Cintra, M., and Viglas, S. DHTM: Durable Hardware Transactional Memory. Proceedings of the ISCA."},{"key":"ref_46","unstructured":"Castro, D., Baldassin, A., Barreto, J., and Romano, P. (2021, January 22\u201325). SPHT: Scalable Persistent Hardware Transactions. Proceedings of the FAST, Santa Clara, CA, USA."},{"key":"ref_47","unstructured":"(2021, February 25). Optane DC Persistent Memory. Available online: https:\/\/www.intel.com\/content\/www\/us\/en\/architecture-and-technology\/optane-dc-persistent-memory.html."},{"key":"ref_48","first-page":"477","article-title":"NV-PhTM: An Efficient Phase-Based Transactional System for Non-volatile Memory","volume":"Volume 12247","author":"Malawski","year":"2020","journal-title":"Proceedings of the Euro-Par"},{"key":"ref_49","unstructured":"Krishnan, R.M., Kim, J., Mathew, A., Fu, X., Demeri, A., Min, C., and Kannan, S. Durable Transactional Memory Can Scale with Timestone. Proceedings of the ASPLOS."},{"key":"ref_50","unstructured":"Gu, J., Yu, Q., Wang, X., Wang, Z., Zang, B., Guan, H., and Chen, H. (2019, January 10\u201312). Pisces: A Scalable and Efficient Persistent Transactional Memory. Proceedings of the 2019 USENIX Conference on Usenix Annual Technical Conference, Renton, WA, USA."},{"key":"ref_51","doi-asserted-by":"crossref","unstructured":"Kolli, A., Pelley, S., Saidi, A.G., Chen, P.M., and Wenisch, T.F. (2016, January 2\u20133). High-Performance Transactions for Persistent Memories. Proceedings of the ASPLOS, Atlanta, GA, USA.","DOI":"10.1145\/2872362.2872381"},{"key":"ref_52","doi-asserted-by":"crossref","unstructured":"Lu, Y., Shu, J., Sun, L., and Mutlu, O. (2014, January 19\u201322). Loose-Ordering Consistency for persistent memory. Proceedings of the ICCD, Seoul, Korea.","DOI":"10.1109\/ICCD.2014.6974684"},{"key":"ref_53","unstructured":"Memaripour, A., Badam, A., Phanishayee, A., Zhou, Y., Alagappan, R., Strauss, K., and Swanson, S. Atomic In-Place Updates for Non-Volatile Main Memories with Kamino-Tx. Proceedings of the Twelfth European Conference on Computer Systems."},{"key":"ref_54","doi-asserted-by":"crossref","unstructured":"Izraelevitz, J., Kelly, T., and Kolli, A. (2016, January 2\u20133). Failure-Atomic Persistent Memory Updates via JUSTDO Logging. Proceedings of the ASPLOS, Atlanta, GA, USA.","DOI":"10.1145\/2872362.2872410"},{"key":"ref_55","doi-asserted-by":"crossref","unstructured":"Coburn, J., Bunker, T., Schwarz, M., Gupta, R., and Swanson, S. (2013, January 3\u20136). From ARIES to MARS: Transaction Support for Next-generation, Solid-state Drives. Proceedings of the SOSP, Farmington, PA, USA.","DOI":"10.1145\/2517349.2522724"},{"key":"ref_56","doi-asserted-by":"crossref","unstructured":"Shin, S., Tirukkovalluri, S.K., Tuck, J., and Solihin, Y. (2017, January 14\u201318). Proteus: A Flexible and Fast Software Supported Hardware Logging Approach for NVM. Proceedings of the MICRO, Boston, MA, USA.","DOI":"10.1145\/3123939.3124539"},{"key":"ref_57","first-page":"497","article-title":"REWIND: Recovery Write-Ahead System for In-Memory Non-Volatile Data-Structures","volume":"8","author":"Chatzistergiou","year":"2015","journal-title":"PVLDB"},{"key":"ref_58","doi-asserted-by":"crossref","first-page":"3:1","DOI":"10.1145\/2851504","article-title":"Blurred Persistence: Efficient Transactions in Persistent Memory","volume":"12","author":"Lu","year":"2016","journal-title":"Trans. Storage"},{"key":"ref_59","doi-asserted-by":"crossref","unstructured":"Guerraoui, R., and Romano, P. (2015). Multi-versioning in Transactional Memory. Transactional Memory. Foundations, Algorithms, Tools, and Applications: COST Action Euro-TM IC1001, Springer International Publishing.","DOI":"10.1007\/978-3-319-14720-8"},{"key":"ref_60","doi-asserted-by":"crossref","first-page":"296","DOI":"10.1007\/s00453-011-9532-3","article-title":"A Competitive Analysis for Balanced Transactional Memory Workloads","volume":"63","author":"Sharma","year":"2012","journal-title":"Algorithmica"},{"key":"ref_61","doi-asserted-by":"crossref","first-page":"225","DOI":"10.1007\/s00446-012-0159-7","article-title":"Window-Based Greedy Contention Management for Transactional Memory: Theory and Practice","volume":"25","author":"Sharma","year":"2012","journal-title":"Distrib. Comput."},{"key":"ref_62","doi-asserted-by":"crossref","unstructured":"Attiya, H., Gramoli, V., and Milani, A. (2010, January 20\u201322). A Provably Starvation-Free Distributed Directory Protocol. Proceedings of the SSS, New York City, NY, USA.","DOI":"10.1007\/978-3-642-16023-3_33"},{"key":"ref_63","doi-asserted-by":"crossref","unstructured":"Guerraoui, R., Herlihy, M., and Pochon, B. (2005, January 17\u201320). Toward a Theory of Transactional Contention Managers. Proceedings of the PODC, Las Vegas, NA, USA.","DOI":"10.1145\/1073814.1073863"},{"key":"ref_64","doi-asserted-by":"crossref","unstructured":"Ansari, M., Luj\u00e1n, M., Kotselidis, C., Jarvis, K., Kirkham, C.C., and Watson, I. (2009, January 2\u20134). Steal-on-Abort: Improving Transactional Memory Performance through Dynamic Transaction Reordering. Proceedings of the HiPEAC, Munich Germany.","DOI":"10.1007\/978-3-540-92990-1_3"},{"key":"ref_65","unstructured":"III, W.N.S., and Scott, M.L. (2005, January 17\u201320). Advanced contention management for dynamic software transactional memory. Proceedings of the PODC, Las Vegas, NA, USA."},{"key":"ref_66","doi-asserted-by":"crossref","first-page":"4151","DOI":"10.1016\/j.tcs.2010.10.010","article-title":"Bounds on contention management algorithms","volume":"412","author":"Schneider","year":"2011","journal-title":"Theor. Comput. Sci."},{"key":"ref_67","doi-asserted-by":"crossref","first-page":"44","DOI":"10.1007\/s00453-008-9195-x","article-title":"Transactional Contention Management as a Non-Clairvoyant Scheduling Problem","volume":"57","author":"Attiya","year":"2010","journal-title":"Algorithmica"},{"key":"ref_68","doi-asserted-by":"crossref","first-page":"1386","DOI":"10.1016\/j.jpdc.2012.05.012","article-title":"Transactional scheduling for read-dominated workloads","volume":"72","author":"Attiya","year":"2012","journal-title":"J. Parallel Distrib. Comput."},{"key":"ref_69","doi-asserted-by":"crossref","first-page":"261","DOI":"10.1007\/s00224-015-9607-7","article-title":"On Avoiding Spare Aborts in Transactional Memory","volume":"57","author":"Keidar","year":"2015","journal-title":"Theory Comput. Syst."}],"container-title":["Algorithms"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/www.mdpi.com\/1999-4893\/14\/6\/171\/pdf","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,10,11]],"date-time":"2025-10-11T06:09:29Z","timestamp":1760162969000},"score":1,"resource":{"primary":{"URL":"https:\/\/www.mdpi.com\/1999-4893\/14\/6\/171"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2021,5,31]]},"references-count":69,"journal-issue":{"issue":"6","published-online":{"date-parts":[[2021,6]]}},"alternative-id":["a14060171"],"URL":"https:\/\/doi.org\/10.3390\/a14060171","relation":{},"ISSN":["1999-4893"],"issn-type":[{"type":"electronic","value":"1999-4893"}],"subject":[],"published":{"date-parts":[[2021,5,31]]}}}