skip to main content
10.1145/3341301.3359637acmconferencesArticle/Chapter ViewAbstractPublication PagessospConference Proceedingsconference-collections
research-article

Performance and protection in the ZoFS user-space NVM file system

Published: 27 October 2019 Publication History

Abstract

Non-volatile memory (NVM) can be directly accessed in user space without going through the kernel. This encourages several recent studies on building user-space NVM file systems. However, for the sake of file system protection, none of the existing file systems grant user-space file system libraries with direct control over both metadata and data of the NVM, leaving fast NVM resources underexploited.
Based on the observation that applications tend to group files with similar access permissions within the same directory and permission changes are rare operations, this paper proposes a new abstraction called coffer, which is a collection of isolated NVM resources, and show its merits on building a performant and protected NVM file system in user space. The key idea is to separate NVM protection from management via coffers so that user-space libraries can take full control of NVM within a coffer while the kernel guarantees strict isolation among coffers. Based on coffers, we build an NVM file system architecture to bring the high performance of NVM to unmodified dynamically linked applications and facilitate the development of performant and flexible user-space NVM file system libraries. With an example file system called ZoFS, we show that user-space file systems built upon coffers can outperform existing NVM file systems in both benchmarks and real-world applications.

References

[1]
Kumud Bhandari, Dhruva R. Chakrabarti, and Hans-J. Boehm. 2016. Makalu: Fast Recoverable Allocation of Non-volatile Memory. In Proceedings of the 2016 ACM SIGPLAN International Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA 2016). ACM, New York, NY, USA, 677--694.
[2]
Silas Boyd-Wickizer, Haibo Chen, Rong Chen, Yandong Mao, Frans Kaashoek, Robert Morris, Aleksey Pesterev, Lex Stein, Ming Wu, Yuehua Dai, Yang Zhang, and Zheng Zhang. 2008. Corey: An Operating System for Many Cores. In Proceedings of the 8th USENIX Conference on Operating Systems Design and Implementation (OSDI'08). USENIX Association, Berkeley, CA, USA, 43--57. http://dl.acm.org/citation.cfm?id=1855741.1855745
[3]
Dave Chinner. 2015. xfs: DAX support. https://lwn.net/Articles/635514/.
[4]
Dave Chinner. 2019. Direct Access for files. https://www.kernel.org/doc/Documentation/filesystems/dax.txt.
[5]
Jeremy Condit, Edmund B. Nightingale, Christopher Frost, Engin Ipek, Benjamin Lee, Doug Burger, and Derrick Coetzee. 2009. Better I/O Through Byte-addressable, Persistent Memory. In Proceedings of the ACM SIGOPS 22Nd Symposium on Operating Systems Principles (SOSP '09). ACM, New York, NY, USA, 133--146.
[6]
Jonathan Corbet. 2014. Supporting filesystems in persistent memory. https://lwn.net/Articles/610174/.
[7]
Jonathan Corbet. 2015. Memory protection keys. https://lwn.net/Articles/643797/.
[8]
Mingkai Dong and Haibo Chen. 2017. Soft Updates Made Simple and Fast on Non-volatile Memory. In Proceedings of the 2017 USENIX Conference on Usenix Annual Technical Conference (USENIX ATC '17). USENIX Association, Berkeley, CA, USA, 719--731. http://dl.acm.org/citation.cfm?id=3154690.3154758
[9]
Subramanya R. Dulloor, Sanjay Kumar, Anil Keshavamurthy, Philip Lantz, Dheeraj Reddy, Rajesh Sankaran, and Jeff Jackson. 2014. System Software for Persistent Memory. In Proceedings of the Ninth European Conference on Computer Systems (EuroSys '14). ACM, New York, NY, USA, Article 15, 15 pages.
[10]
Jake Edge. 2018. The ZUFS zero-copy filesystem. https://lwn.net/Articles/756625/.
[11]
D. R. Engler, M. F. Kaashoek, and J. O'Toole, Jr. 1995. Exokernel: An Operating System Architecture for Application-level Resource Management. In Proceedings of the Fifteenth ACM Symposium on Operating Systems Principles (SOSP '95). ACM, New York, NY, USA, 251--266.
[12]
Julian Gilbey. 2017. Debian Bug report logs - #853972. https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=853972.
[13]
GNU. 2019. ISO C Thread-local Storage (The GNU C Library). https://www.gnu.org/software/libc/manual/html_node/ISO-C-Thread_002dlocal-Storage.html.
[14]
Google. 2019. LevelDB. https://github.com/google/leveldb.
[15]
Valient Gough. 2019. EncFS: an Encrypted Filesystem for FUSE. https://github.com/vgough/encfs.
[16]
GoRed Hat. 2019. Gluster: Storage for you cloud. https://www.gluster.org/.
[17]
Mohammad Hedayati, Spyridoula Gravani, Ethan Johnson, John Criswell, Michael L. Scott, Kai Shen, and Mike Marty. 2019. Hodor: Intra-process Isolation for High-throughput Data Plane Libraries. In Proceedings of the 2019 USENIX Conference on Usenix Annual Technical Conference (USENIX ATC '19). USENIX Association, Berkeley, CA, USA, 489--503. http://dl.acm.org/citation.cfm?id=3358807.3358849
[18]
Val Henson, Arjan van de Ven, Amit Gud, and Zach Brown. 2006. Chunkfs: Using Divide-and-conquer to Improve File System Reliability and Repair. In Proceedings of the 2Nd Conference on Hot Topics in System Dependability - Volume 2 (HOTDEP'06). USENIX Association, Berkeley, CA, USA, 7--7. http://dl.acm.org/citation.cfm?id=1251014.1251021
[19]
Qingda Hu, Jinglei Ren, Anirudh Badam, Jiwu Shu, and Thomas Moscibroda. 2017. Log-structured Non-volatile Main Memory. In Proceedings of the 2017 USENIX Conference on Usenix Annual Technical Conference (USENIX ATC '17). USENIX Association, Berkeley, CA, USA, 703--717. http://dl.acm.org/citation.cfm?id=3154690.3154757
[20]
Yiming Huai et al. 2008. Spin-transfer torque MRAM (STT-MRAM): Challenges and prospects. AAPPS bulletin 18, 6 (2008), 33--40.
[21]
Yihe Huang, Matej Pavlovic, Virendra J. Marathe, Margo Seltzer, Tim Harris, and Steve Byan. 2018. Closing the Performance Gap Between Volatile and Persistent Key-value Stores Using Cross-referencing Logs. In Proceedings of the 2018 USENIX Conference on Usenix Annual Technical Conference (USENIX ATC '18). USENIX Association, Berkeley, CA, USA, 967--979. http://dl.acm.org/citation.cfm?id=3277355.3277448
[22]
Intel. 2018. Intel Optane DC Persistent Memory Readies for Widespread Deployment. https://newsroom.intel.com/news/intel-optane-dc-persistent-memory-readies-widespread-deployment/.
[23]
Intel. 2019. Intel(R) Optane(TM) DC Persistent Memory. https://www.intel.com/content/www/us/en/architecture-and-technology/optane-dc-persistent-memory.html.
[24]
Intel. 2019. Intel® 64 and IA-32 Architectures Software Developer Manuals. https://software.intel.com/en-us/articles/intel-sdm.
[25]
Joseph Izraelevitz, Jian Yang, Lu Zhang, Juno Kim, Xiao Liu, Amirsaman Memaripour, Yun Joon Soh, Zixuan Wang, Yi Xu, Subramanya R Dulloor, Jishen Zhao, and Steven Swanson. 2019. Basic Performance Measurements of the Intel Optane DC Persistent Memory Module. arXiv:cs.DC/arXiv:1903.05714v3
[26]
Sooman Jeong, Kisung Lee, Seongjin Lee, Seoungbum Son, and Youjip Won. 2013. I/O Stack Optimization for Smartphones. In Proceedings of the 2013 USENIX Conference on Annual Technical Conference (USENIX ATC'13). USENIX Association, Berkeley, CA, USA, 309--320. http://dl.acm.org/citation.cfm?id=2535461.2535499
[27]
Olzhas Kaiyrakhmet, Songyi Lee, Beomseok Nam, Sam H. Noh, and Young-Ri Choi. 2019. SLM-DB: Single-level Key-value Store with Persistent Memory. In Proceedings of the 17th USENIX Conference on File and Storage Technologies (FAST'19). USENIX Association, Berkeley, CA, USA, 191--204. http://dl.acm.org/citation.cfm?id=3323298.3323317
[28]
Junbin Kang, Benlong Zhang, Tianyu Wo, Weiren Yu, Lian Du, Shuai Ma, and Jinpeng Huai. 2015. SpanFS: A Scalable File System on Fast Storage Devices. In Proceedings of the 2015 USENIX Conference on Usenix Annual Technical Conference (USENIX ATC '15). USENIX Association, Berkeley, CA, USA, 249--261. http://dl.acm.org/citation.cfm?id=2813767.2813786
[29]
Sudarsun Kannan, Nitish Bhat, Ada Gavrilovska, Andrea Arpaci-Dusseau, and Remzi Arpaci-Dusseau. 2018. Redesigning LSMs for Nonvolatile Memory with NoveLSM. In Proceedings of the 2018 USENIX Conference on Usenix Annual Technical Conference (USENIX ATC '18). USENIX Association, Berkeley, CA, USA, 993--1005. http://dl.acm.org/citation.cfm?id=3277355.3277450
[30]
Takayuki Kawahara. 2011. Scalable Spin-Transfer Torque RAM Technology for Normally-Off Computing. IEEE Des. Test 28, 1 (Jan. 2011), 52--63.
[31]
Youngjin Kwon, Henrique Fingler, Tyler Hunt, Simon Peter, Emmett Witchel, and Thomas Anderson. 2017. Strata: A Cross Media File System. In Proceedings of the 26th Symposium on Operating Systems Principles (SOSP '17). ACM, New York, NY, USA, 460--477.
[32]
Benjamin C. Lee, Engin Ipek, Onur Mutlu, and Doug Burger. 2009. Architecting Phase Change Memory As a Scalable Dram Alternative. In Proceedings of the 36th Annual International Symposium on Computer Architecture (ISCA '09). ACM, New York, NY, USA, 2--13.
[33]
Eunji Lee, Hyokyung Bahn, and Sam H. Noh. 2013. Unioning of the Buffer Cache and Journaling Layers with Non-volatile Memory. In Proceedings of the 11th USENIX Conference on File and Storage Technologies (FAST'13). USENIX Association, Berkeley, CA, USA, 73--80. http://dl.acm.org/citation.cfm?id=2591272.2591280
[34]
Libfuse. 2019. SSHFS. https://github.com/libfuse/sshfs.
[35]
Linux. 2019. dup. http://man7.org/linux/man-pages/man2/dup.2.html.
[36]
Linux. 2019. VDSO. http://man7.org/linux/man-pages/man7/vdso.7.html.
[37]
Lanyue Lu, Yupu Zhang, Thanh Do, Samer Al-Kiswany, Andrea C. Arpaci-Dusseau, and Remzi H. Arpaci-Dusseau. 2014. Physical Disentanglement in a Container-based File System. In Proceedings of the 11th USENIX Conference on Operating Systems Design and Implementation (OSDI'14). USENIX Association, Berkeley, CA, USA, 81--96. http://dl.acm.org/citation.cfm?id=2685048.2685056
[38]
Changwoo Min, Sanidhya Kashyap, Steffen Maass, Woonhak Kang, and Taesoo Kim. 2016. Understanding Manycore Scalability of File Systems. In Proceedings of the 2016 USENIX Conference on Usenix Annual Technical Conference (USENIX ATC '16). USENIX Association, Berkeley, CA, USA, 71--85. http://dl.acm.org/citation.cfm?id=3026959.3026967
[39]
Oracle. 2019. Other MySQL Documentation: Example Databases. https://dev.mysql.com/doc/index-other.html.
[40]
Soyeon Park, Sangho Lee, Wen Xu, Hyungon Moon, and Taesoo Kim. 2019. Libmpk: Software Abstraction for Intel Memory Protection Keys (Intel MPK). In Proceedings of the 2019 USENIX Conference on Usenix Annual Technical Conference (USENIX ATC '19). USENIX Association, Berkeley, CA, USA, 241--254. http://dl.acm.org/citation.cfm?id=3358807.3358829
[41]
Simon Peter and Thomas Anderson. 2013. Arrakis: A Case for the End of the Empire. In Proceedings of the 14th USENIX Conference on Hot Topics in Operating Systems (HotOS '13). USENIX Association, Berkeley, CA, USA, 26--26. http://dl.acm.org/citation.cfm?id=2490483.2490509
[42]
Simon Peter, Jialin Li, Doug Woos, Irene Zhang, Dan R. K. Ports, Thomas Anderson, Arvind Krishnamurthy, and Mark Zbikowski. 2014. Towards High-performance Application-level Storage Management. In Proceedings of the 6th USENIX Conference on Hot Topics in Storage and File Systems (HotStorage' 14). USENIX Association, Berkeley, CA, USA, 7--7. http://dl.acm.org/citation.cfm?id=2696578.2696585
[43]
Simon Peter, Jialin Li, Irene Zhang, Dan R. K. Ports, Doug Woos, Arvind Krishnamurthy, Thomas Anderson, and Timothy Roscoe. 2014. Arrakis: The Operating System is the Control Plane. In Proceedings of the 11th USENIX Conference on Operating Systems Design and Implementation (OSDI'14). USENIX Association, Berkeley, CA, USA, 1--16. http://dl.acm.org/citation.cfm?id=2685048.2685050
[44]
PostgreSQL. 2018. Sample Databases. https://wiki.postgresql.org/wiki/Sample_Databases.
[45]
Moinuddin K. Qureshi, Vijayalakshmi Srinivasan, and Jude A. Rivers. 2009. Scalable High Performance Main Memory System Using Phase-change Memory Technology. In Proceedings of the 36th Annual International Symposium on Computer Architecture (ISCA '09). ACM, New York, NY, USA, 24--33.
[46]
Ryan Smith. 2015. Intel Announces Optane Storage Brand For 3D XPoint Products. https://www.anandtech.com/show/9541/intel-announces-optane-storage-brand-for-3d-xpoint-products.
[47]
SNIA. 2019. FSL-Dedup Traces. http://iotta.snia.org/traces/5228.
[48]
SNIA. 2019. MobiGen Traces. http://iotta.snia.org/traces/5189.
[49]
SQLite. 2019. SQLite Home Page. https://www.sqlite.org/index.html.
[50]
Dmitri B Strukov, Gregory S Snider, Duncan R Stewart, and R Stanley Williams. 2008. The missing memristor found. nature 453, 7191 (2008), 80.
[51]
Miklos Szeredi. 2005. Fuse: Filesystem in userspace. http://fuse.sourceforge.net.
[52]
Vasily Tarasov, Amar Mudrankit, Will Buik, Philip Shilane, Geoff Kuenning, and Erez Zadok. 2012. Generating Realistic Datasets for Deduplication Analysis. In Proceedings of the 2012 USENIX Conference on Annual Technical Conference (USENIX ATC'12). USENIX Association, Berkeley, CA, USA, 24--24. http://dl.acm.org/citation.cfm?id=2342821.2342845
[53]
The Transaction Processing Council. 2019. TPC-C Benchmark V5.11. http://www.tpc.org/tpcc/.
[54]
Anjo Vahldiek-Oberwagner, Eslam Elnikety, Nuno O. Duarte, Michael Sammler, Peter Druschel, and Deepak Garg. 2019. ERIM: Secure, Efficient In-process Isolation with Protection Keys (MPK). In 28th USENIX Security Symposium (USENIX Security 19). USENIX Association, Santa Clara, CA, 1221--1238. https://www.usenix.org/conference/usenixsecurity19/presentation/vahldiek-oberwagner
[55]
Shivaram Venkataraman, Niraj Tolia, Parthasarathy Ranganathan, and Roy H. Campbell. 2011. Consistent and Durable Data Structures for Non-volatile Byte-addressable Memory. In Proceedings of the 9th USENIX Conference on File and Stroage Technologies (FAST'11). USENIX Association, Berkeley, CA, USA, 5--5. http://dl.acm.org/citation.cfm?id=1960475.1960480
[56]
Haris Volos, Sanketh Nalli, Sankarlingam Panneerselvam, Venkatanathan Varadarajan, Prashant Saxena, and Michael M. Swift. 2014. Aerie: Flexible File-system Interfaces to Storage-class Memory. In Proceedings of the Ninth European Conference on Computer Systems (EuroSys '14). ACM, New York, NY, USA, Article 14, 14 pages.
[57]
Haris Volos, Andres Jaan Tack, and Michael M. Swift. 2011. Mnemosyne: Lightweight Persistent Memory. In Proceedings of the Sixteenth International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS XVI). ACM, New York, NY, USA, 91--104.
[58]
Matthew Wilcox. 2014. Support ext4 on nv-dimms. http://lwn.net/Articles/588218/.
[59]
Mingyu Wu, Ziming Zhao, Haoyu Li, Heting Li, Haibo Chen, Binyu Zang, and Haibing Guan. 2018. Espresso: Brewing Java For More Non-Volatility with Non-volatile Memory. In Proceedings of the Twenty-Third International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS '18). ACM, New York, NY, USA, 70--83.
[60]
Fei Xia, Dejun Jiang, Jin Xiong, and Ninghui Sun. 2017. HiKV: A Hybrid Index Key-value Store for DRAM-NVM Memory Systems. In Proceedings of the 2017 USENIX Conference on Usenix Annual Technical Conference (USENIX ATC '17). USENIX Association, Berkeley, CA, USA, 349--362. http://dl.acm.org/citation.cfm?id=3154690.3154724
[61]
Jian Xu and Steven Swanson. 2016. NOVA: A Log-structured File System for Hybrid Volatile/Non-volatile Main Memories. In Proceedings of the 14th Usenix Conference on File and Storage Technologies (FAST'16). USENIX Association, Berkeley, CA, USA, 323--338. http://dl.acm.org/citation.cfm?id=2930583.2930608
[62]
Jian Xu, Lu Zhang, Amirsaman Memaripour, Akshatha Gangadharaiah, Amit Borase, Tamires Brito Da Silva, Steven Swanson, and Andy Rudoff. 2017. NOVA-Fortis: A Fault-Tolerant Non-Volatile Main Memory File System. In Proceedings of the 26th Symposium on Operating Systems Principles (SOSP '17). ACM, New York, NY, USA, 478--496.
[63]
Jian Yang, Joseph Izraelevitz, and Steven Swanson. 2019. Orion: A Distributed File System for Non-volatile Main Memories and RDMA-capable Networks. In Proceedings of the 17th USENIX Conference on File and Storage Technologies (FAST'19). USENIX Association, Berkeley, CA, USA, 221--234. http://dl.acm.org/citation.cfm?id=3323298.3323319
[64]
Jun Yang, Qingsong Wei, Cheng Chen, Chundong Wang, Khai Leong Yong, and Bingsheng He. 2015. NV-Tree: Reducing Consistency Cost for NVM-based Single Level Systems. In Proceedings of the 13th USENIX Conference on File and Storage Technologies (FAST'15). USENIX Association, Berkeley, CA, USA, 167--181. http://dl.acm.org/citation.cfm?id=2750482.2750495
[65]
Yang Zhan, Alex Conway, Yizheng Jiao, Eric Knorr, Michael A. Bender, Martin Farach-Colton, William Jannen, Rob Johnson, Donald E. Porter, and Jun Yuan. 2018. The Full Path to Full-path Indexing. In Proceedings of the 16th USENIX Conference on File and Storage Technologies (FAST'18). USENIX Association, Berkeley, CA, USA, 123--138. http://dl.acm.org/citation.cfm?id=3189759.3189771
[66]
Shengan Zheng, Morteza Hoseinzadeh, and Steven Swanson. 2019. Ziggurat: A Tiered File System for Non-volatile Main Memories and Disks. In Proceedings of the 17th USENIX Conference on File and Storage Technologies (FAST'19). USENIX Association, Berkeley, CA, USA, 207--219. http://dl.acm.org/citation.cfm?id=3323298.3323318

Cited By

View all
  • (2024)ScalaCacheProceedings of the 2024 USENIX Conference on Usenix Annual Technical Conference10.5555/3691992.3692064(1185-1202)Online publication date: 10-Jul-2024
  • (2024)RFUSEProceedings of the 22nd USENIX Conference on File and Storage Technologies10.5555/3650697.3650706(141-158)Online publication date: 27-Feb-2024
  • (2024)RomeFS: A CXL-SSD Aware File System Exploiting Synergy of Memory-Block Dual PathsProceedings of the 2024 ACM Symposium on Cloud Computing10.1145/3698038.3698539(720-736)Online publication date: 20-Nov-2024
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
SOSP '19: Proceedings of the 27th ACM Symposium on Operating Systems Principles
October 2019
615 pages
ISBN:9781450368735
DOI:10.1145/3341301
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than the author(s) must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected].

Sponsors

In-Cooperation

  • USENIX Assoc: USENIX Assoc

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 27 October 2019

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. memory protection keys
  2. non-volatile memory
  3. user-space file systems

Qualifiers

  • Research-article

Conference

SOSP '19
Sponsor:
SOSP '19: ACM SIGOPS 27th Symposium on Operating Systems Principles
October 27 - 30, 2019
Ontario, Huntsville, Canada

Acceptance Rates

Overall Acceptance Rate 174 of 961 submissions, 18%

Upcoming Conference

SOSP '25
ACM SIGOPS 31st Symposium on Operating Systems Principles
October 13 - 16, 2025
Seoul , Republic of Korea

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)180
  • Downloads (Last 6 weeks)9
Reflects downloads up to 20 Feb 2025

Other Metrics

Citations

Cited By

View all
  • (2024)ScalaCacheProceedings of the 2024 USENIX Conference on Usenix Annual Technical Conference10.5555/3691992.3692064(1185-1202)Online publication date: 10-Jul-2024
  • (2024)RFUSEProceedings of the 22nd USENIX Conference on File and Storage Technologies10.5555/3650697.3650706(141-158)Online publication date: 27-Feb-2024
  • (2024)RomeFS: A CXL-SSD Aware File System Exploiting Synergy of Memory-Block Dual PathsProceedings of the 2024 ACM Symposium on Cloud Computing10.1145/3698038.3698539(720-736)Online publication date: 20-Nov-2024
  • (2024)Fast Core Scheduling with Userspace Process AbstractionProceedings of the ACM SIGOPS 30th Symposium on Operating Systems Principles10.1145/3694715.3695976(280-295)Online publication date: 4-Nov-2024
  • (2024)Faster FUSE Filesystems with Efficient Data TransfersProceedings of the 15th ACM SIGOPS Asia-Pacific Workshop on Systems10.1145/3678015.3680493(122-129)Online publication date: 4-Sep-2024
  • (2024)Hardware-Software Collaborative Tiered-Memory Management Framework for VirtualizationACM Transactions on Computer Systems10.1145/363956442:1-2(1-32)Online publication date: 15-Jan-2024
  • (2024)Exploring the Asynchrony of Slow Memory Filesystem with EasyIOProceedings of the Nineteenth European Conference on Computer Systems10.1145/3627703.3629586(624-640)Online publication date: 22-Apr-2024
  • (2024)Exploiting Flat Namespace to Improve File System Metadata Performance on Ultra-Fast, Byte-Addressable NVMsACM Transactions on Storage10.1145/362067320:1(1-47)Online publication date: 30-Jan-2024
  • (2024)BypassD: Enabling fast userspace access to shared SSDsProceedings of the 29th ACM International Conference on Architectural Support for Programming Languages and Operating Systems, Volume 110.1145/3617232.3624854(35-51)Online publication date: 27-Apr-2024
  • (2024)ZBTree: A Fast and Scalable B+-Tree for Persistent MemoryIEEE Transactions on Knowledge and Data Engineering10.1109/TKDE.2024.342123236:12(9547-9563)Online publication date: Dec-2024
  • Show More Cited By

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Figures

Tables

Media

Share

Share

Share this Publication link

Share on social media