Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1145/3620665.3640370acmconferencesArticle/Chapter ViewAbstractPublication PagesasplosConference Proceedingsconference-collections
research-article
Open access

LazyBarrier: Reconstructing Android IO Stack for Barrier-Enabled Flash Storage

Published: 27 April 2024 Publication History

Abstract

Costly synchronous write---a.k.a., fsync()---is a common approach to preserve the storage order of data. Android smart-phones use No-Barrier by default to improve fsync() performance. Recently, Barrier-Enabled IO Stack (BEIOS) provides an efficient order-preserving method for flash storage by barrier write commands (BWCs). However, our evaluation shows that BEIOS suffers from performance degradation in multi-threaded scenarios since BWCs increase linearly with the number of threads. This paper proposes LazyBarrier, a new order-preserving IO stack mainly involving order-preserving write (OPW) Model, the Lazy Issue algorithm, modified F2FS, and Barrier Scheduling. OPW Model is based on Finite Automata and defines state transition in OPW. Lazy Issue is a novel algorithm that minimizes BWCs. F2FS is modified to support OPW, and Barrier Scheduling solves the ordering problem in multi-queue block layer. The experiments on Android smartphones show that, compared with BEIOS, LazyBarrier improves OPW performance by 73% and 29% under the FIO benchmark and in real applications respectively. And LazyBarrier also outperforms BEIOS by 19% in dbench workload in servers.

References

[1]
linux syscall tracer. https://strace.io/.
[2]
Smartphone os market share. https://www.idc.com/promo/smartphone-market-share/, 2022.
[3]
Universal flash storage (UFS) host controller interface, version 3.0. JESD223D.
[4]
Embedded multi-media card (eMMC) electrical standard (5.0). Technical Specification JESD84-B50, Virginia, 2013. https://www.jedec.org/standards-documents/docs/jesd84-b51.
[5]
Universal flash storage (UFS), version 3.1. JESD220E, 2020. https://www.jedec.org/standards-documents/docs/jesd220e.
[6]
Universal flash storage (UFS), version 4.0. JESD220F, 2020. https://www.jedec.org/standards-documents/docs/jesd220f.
[7]
server operating system market share. https://www.fortunebusinessinsights.com/server-operating-system-market-106601, 2023.
[8]
Alfred V Aho, Monica S Lam, Ravi Sethi, and Jeffrey D Ullman. Compilers: principles, techniques, & tools. Pearson Education India, 2007.
[9]
Jens Axboe. Flexible I/O tester. https://github.com/axboe/fio.
[10]
Jens Axboe. Linux block IO---present and future. In Ottawa Linux Symp, pages 51--61, 2004. https://www.landley.net/kdocs/ols/2004/ols2004v1-pages-51-62.pdf.
[11]
Steve Best. JFS log: How the journaled file system performs logging. In 4th Annual Linux Showcase & Conference (ALS 2000), 2000. http://www.usenix.org/publications/library/proceedings/als00/2000papers/papers/full_papers/best/best.pdf.
[12]
Tim Bird. Measuring function duration with ftrace. In Proceedings of the Linux Symposium, pages 47--54. Citeseer, 2009. https://www.kernel.org/doc/ols/2009/ols2009-pages-47-54.pdf.
[13]
Matias Bjørling, Jens Axboe, David Nellans, and Philippe Bonnet. Linux block IO: Introducing multi-queue ssd access on multi-core systems. In Proceedings of the 6th International Systems and Storage Conference, SYSTOR '13, New York, NY, USA, 2013. Association for Computing Machinery.
[14]
Daniel P Bovet and Marco Cesati. Understanding the Linux Kernel: from I/O ports to process management. " O'Reilly Media, Inc.", 2005.
[15]
Feng Chen, Rubao Lee, and Xiaodong Zhang. Essential roles of exploiting internal parallelism of flash memory based solid state drives in high-speed data processing. In 2011 IEEE 17th International Symposium on High Performance Computer Architecture, pages 266--277. IEEE, 2011. https://ieeexplore.ieee.org/document/5749735.
[16]
Vijay Chidambaram, Tushar Sharma, Andrea C Arpaci-Dusseau, and Remzi H Arpaci-Dusseau. Consistency without ordering. In 10th USENIX Conference on File and Storage Technologies (FAST 12), San Jose, CA, February 2012. USENIX Association. https://www.usenix.org/system/files/conference/fast12/chidambaram.pdf.
[17]
Gyeongyeol Choi and Youjip Won. Analysis for the performance degradation of fsync() in f2fs. In Proceedings of the 9th International Conference on E-Education, E-Business, E-Management and E-Learning, pages 71--75, 2018.
[18]
Jonathan Corbet. The end of block barriers. https://lwn.net/Articles/400541/.
[19]
Jonathan Corbet. Two new block I/O schedulers for 4.12. https://lwn.net/Articles/720675/, April 2017.
[20]
Jonathan Corbet. Barriers and journaling filesystems. https://lwn.net/Articles/283161/, May 2020.
[21]
Jace Courville and Feng Chen. Understanding storage I/O behaviors of mobile applications. In 2016 32nd Symposium on Mass Storage Systems and Technologies (MSST), pages 1--11, 2016. https://ieeexplore.ieee.org/document/7897092.
[22]
Mathieu Desnoyers. Using the linux kernel tracepoints. https://docs.kernel.org/trace/tracepoints.html.
[23]
Android Developers. What is android? Dosegljivo, 2011. https://www.academia.edu/2537177/What_is_Android.
[24]
Mike Owens Grant Allen. The Definitive Guide to SQLite. Apress Berkeley, CA, 2010.
[25]
Jie Guo, Jun Yang, Youtao Zhang, and Yiran Chen. Low cost power failure protection for mlc nand flash storage systems with pram/dram hybrid buffer. In 2013 Design, Automation & Test in Europe Conference & Exhibition (DATE), pages 859--864. IEEE, 2013. https://ieeexplore.ieee.org/document/6513627?arnumber=6513627.
[26]
Theo Haerder and Andreas Reuter. Principles of transaction-oriented database recovery. ACM computing surveys (CSUR), 15(4):287--317, 1983.
[27]
Mohammad Hedayati, Kai Shen, Michael L. Scott, and Mike Marty. Multi-Queue fair queuing. In 2019 USENIX Annual Technical Conference (USENIX ATC 19), pages 301--314, Renton, WA, July 2019. USENIX Association. https://www.usenix.org/system/files/atc19-hedayati-fair-queuing.pdf.
[28]
John Hopcroft. An n log n algorithm for minimizing states in a finite automaton. In Zvi Kohavi and Azaria Paz, editors, Theory of Machines and Computations, pages 189--196. Academic Press, 1971. https://www.sciencedirect.com/science/article/pii/B9780124177505500221.
[29]
Sooman Jeong, Kisung Lee, Jungwoo Hwang, Seongjin Lee, and Youjip Won. Androstep: Android storage performance analysis tool. Software Engineering 2013-Workshopband, 2013.
[30]
Sooman Jeong, Kisung Lee, Seongjin Lee, Seoungbum Son, and Youjip Won. I/O stack optimization for smartphones. In 2013 USENIX Annual Technical Conference (USENIX ATC 13), pages 309--320, San Jose, CA, June 2013. USENIX Association. https://www.usenix.org/system/files/conference/atc13/atc13-jeong.pdf.
[31]
Cheng Ji, Li-Pin Chang, Riwei Pan, Chao Wu, Congming Gao, Liang Shi, Tei-Wei Kuo, and Chun Jason Xue. Pattern-Guided file compression with User-Experience enhancement for Log-Structured file system on mobile devices. In 19th USENIX Conference on File and Storage Technologies (FAST 21), pages 127--140. USENIX Association, February 2021. https://www.usenix.org/system/files/fast21-ji.pdf.
[32]
Cheng Ji, Riwei Pan, Li-Pin Chang, Liang Shi, Zongwei Zhu, Yu Liang, Tei-Wei Kuo, and Chun Jason Xue. Inspection and characterization of app file usage in mobile devices. ACM Trans. Storage, 16(4), sep 2020.
[33]
Junbin Kang, Benlong Zhang, Tianyu Wo, Weiren Yu, Lian Du, Shuai Ma, and Jinpeng Huai. SpanFS: A scalable file system on fast storage devices. In 2015 USENIX Annual Technical Conference (USENIX ATC 15), pages 249--261, Santa Clara, CA, July 2015. USENIX Association. https://www.usenix.org/system/files/conference/atc15/atc15-paper-kang.pdf.
[34]
Woon-Hak Kang, Sang-Won Lee, Bongki Moon, Gi-Hwan Oh, and Changwoo Min. X-FTL: Transactional FTL for SQLite databases. SIGMOD '13, page 97--108, New York, NY, USA, 2013. Association for Computing Machinery.
[35]
Bakhadyr M Khoussainov and Nodira Khoussainova. Lectures On Discrete Mathematics For Computer Science, volume 3. World Scientific Publishing Company, 2012.
[36]
Hyeong-Jun Kim and Jin-Soo Kim. Tuning the ext4 filesystem performance for android-based smartphones. In Frontiers in Computer Education, pages 745--752. Springer, 2012. https://link.springer.com/chapter/10.1007/978-3-642-27552-4_98.
[37]
Changman Lee, Dongho Sim, Jooyoung Hwang, and Sangyeun Cho. F2FS: A new file system for flash storage. In 13th USENIX Conference on File and Storage Technologies (FAST 15), pages 273--286, 2015. https://www.usenix.org/system/files/conference/fast15/fast15-paper-lee.pdf.
[38]
Kisung Lee and Youjip Won. Smart layers and dumb result: IO characterization of an android-based smartphone. In Proceedings of the Tenth ACM International Conference on Embedded Software, EMSOFT '12, page 23--32, New York, NY, USA, 2012. Association for Computing Machinery.
[39]
Wongun Lee, Keonwoo Lee, Hankeun Son, Wook-Hee Kim, Beomseok Nam, and Youjip Won. WALDIO: Eliminating the filesystem journaling in resolving the journaling of journal anomaly. In 2015 USENIX Annual Technical Conference (USENIX ATC 15), pages 235--247, Santa Clara, CA, July 2015. USENIX Association. https://www.usenix.org/system/files/conference/atc15/atc15-paper-lee-wongun.pdf.
[40]
Yu Liang, Chenchen Fu, Yajuan Du, Aosong Deng, Mengying Zhao, Liang Shi, and Chun Jason Xue. An empirical study of f2fs on mobile devices. In 2017 IEEE 23rd International Conference on Embedded and Real-Time Computing Systems and Applications (RTCSA), pages 1--9, 2017. https://ieeexplore.ieee.org/document/8046304.
[41]
Xiaojian Liao, Youyou Lu, Erci Xu, and Jiwu Shu. Max: A multicore-accelerated file system for flash storage. In 2021 USENIX Annual Technical Conference (USENIX ATC 21), pages 877--891. USENIX Association, July 2021. https://www.usenix.org/system/files/atc21-liao.pdf.
[42]
Avantika Mathur, Mingming Cao, Suparna Bhattacharya, Andreas Dilger, Alex Tomas, and Laurent Vivier. The new ext4 filesystem: current status and future plans. In Proceedings of the Linux symposium, volume 2, pages 21--33. Citeseer, 2007. https://www.kernel.org/doc/ols/2007/ols2007v2-pages-21-34.pdf.
[43]
Richard McDougall and Jim Mauro. Filebench. https://github.com/filebench/filebench, 2005.
[44]
Changwoo Min, Woon-Hak Kang, Taesoo Kim, Sang-Won Lee, and Young Ik Eom. Lightweight Application-Level crash consistency on transactional flash storage. In 2015 USENIX Annual Technical Conference (USENIX ATC 15), pages 221--234, Santa Clara, CA, July 2015. USENIX Association. https://www.usenix.org/system/files/conference/atc15/atc15-paper-min.pdf.
[45]
Dushyanth Narayanan, Austin Donnelly, and Antony Rowstron. Write off-loading: Practical power management for enterprise storage. ACM Transactions on Storage (TOS), 4(3):1--23, 2008.
[46]
Joontaek Oh, Sion Ji, Yongjin Kim, and Youjip Won. exF2FS: Transaction support in Log-Structured filesystem. In 20th USENIX Conference on File and Storage Technologies (FAST 22), pages 345--362, Santa Clara, CA, February 2022. USENIX Association. https://www.usenix.org/conference/fast22/presentation/oh.
[47]
Seon-yeong Park, Euiseong Seo, Ji-Yong Shin, Seungryoul Maeng, and Joonwon Lee. Exploiting internal parallelism of flash-based ssds. IEEE Computer Architecture Letters, 9(1):9--12, 2010. https://ieeexplore.ieee.org/document/5428220.
[48]
Thanumalayan Sankaranarayana Pillai, Ramnatthan Alagappan, Lanyue Lu, Vijay Chidambaram, Andrea C. Arpaci-Dusseau, and Remzi H. Arpaci-Dusseau. Application crash consistency and performance with CCFS. In 15th USENIX Conference on File and Storage Technologies (FAST 17), pages 181--196, Santa Clara, CA, February 2017. USENIX Association. https://www.usenix.org/system/files/conference/fast17/fast17_pillai.pdf.
[49]
Vijayan Prabhakaran, Andrea C Arpaci-Dusseau, and Remzi H Arpaci-Dusseau. Analysis and evolution of journaling file systems. In USENIX Annual Technical Conference, General Track, volume 194, pages 196--215, 2005. https://www.usenix.org/legacy/events/usenix05/tech/general/full_papers/prabhakaran/prabhakaran.pdf.
[50]
Vijayan Prabhakaran, Lakshmi N Bairavasundaram, Nitin Agrawal, Haryadi S Gunawi, Andrea C Arpaci-Dusseau, and Remzi H Arpaci-Dusseau. Iron file systems. In Proceedings of the twentieth ACM symposium on Operating systems principles, pages 206--220, 2005.
[51]
M. O. Rabin and D. Scott. Finite automata and their decision problems. IBM Journal of Research and Development, 3(2):114--125, 1959. https://ieeexplore.ieee.org/document/5392601.
[52]
Mendel Rosenblum and John K. Ousterhout. The design and implementation of a log-structured file system. ACM Trans. Comput. Syst., 10(1):26--52, feb 1992.
[53]
Girish S. Journal checksums. https://lwn.net/Articles/400541/.
[54]
Yongseok Son, Sunggon Kim, Heon Y Yeom, and Hyuck Han. High-Performance transaction processing in journaling file systems. In 16th USENIX Conference on File and Storage Technologies (FAST 18), pages 227--240, 2018. https://www.usenix.org/system/files/conference/fast18/fast18-son.pdf.
[55]
Adam Sweeney, Doug Doucette, Wei Hu, Curtis Anderson, Mike Nishimoto, and Geoff Peck. Scalability in the xfs file system. In USENIX Annual Technical Conference, volume 15, 1996. https://www.usenix.org/legacy/publications/library/proceedings/sd96/full_papers/sweeney.ps.
[56]
Ken Thompson. Programming techniques: Regular expression search algorithm. Commun. ACM, 11(6):419--422, jun 1968.
[57]
Andrew Tridgell and Ronnie Sahlberg. Dbench. https://dbench.samba.org/, 2005.
[58]
Zev Weiss, Sriram Subramanian, Swaminathan Sundararaman, Nisha Talagala, Andrea Arpaci-Dusseau, and Remzi Arpaci-Dusseau. ANViL: Advanced virtualization for modern Non-Volatile memory devices. In 13th USENIX Conference on File and Storage Technologies (FAST 15), pages 111--118, Santa Clara, CA, February 2015. USENIX Association. https://www.usenix.org/system/files/conference/fast15/fast15-paper-weiss.pdf.
[59]
Youjip Won, Jaemin Jung, Gyeongyeol Choi, Joontaek Oh, Seongbae Son, Jooyoung Hwang, and Sangyeun Cho. Barrier-enabled IO stack for flash storage. In 16th USENIX Conference on File and Storage Technologies (FAST 18), pages 211--226, Oakland, CA, February 2018. USENIX Association. https://www.usenix.org/system/files/conference/fast18/fast18-won.pdf.
[60]
Chi Zhang, Yi Wang, Tianzheng Wang, Renhai Chen, Duo Liu, and Zili Shao. Deterministic crash recovery for nand flash based storage systems. In 2014 51st ACM/EDAC/IEEE Design Automation Conference (DAC), pages 1--6, 2014. https://ieeexplore.ieee.org/document/6881475.
[61]
MySQL Developer Zone. Mysql 5.0 reference manual. Consultado del día, 13, 1997. https://downloads.mysql.com/docs/refman-5.0-en.a4.pdf.

Index Terms

  1. LazyBarrier: Reconstructing Android IO Stack for Barrier-Enabled Flash Storage

    Recommendations

    Comments

    Information & Contributors

    Information

    Published In

    cover image ACM Conferences
    ASPLOS '24: Proceedings of the 29th ACM International Conference on Architectural Support for Programming Languages and Operating Systems, Volume 2
    April 2024
    1299 pages
    ISBN:9798400703850
    DOI:10.1145/3620665
    This work is licensed under a Creative Commons Attribution International 4.0 License.

    Sponsors

    In-Cooperation

    Publisher

    Association for Computing Machinery

    New York, NY, United States

    Publication History

    Published: 27 April 2024

    Check for updates

    Author Tags

    1. operating system
    2. flash storage
    3. file system

    Qualifiers

    • Research-article

    Conference

    ASPLOS '24

    Acceptance Rates

    Overall Acceptance Rate 535 of 2,713 submissions, 20%

    Upcoming Conference

    Contributors

    Other Metrics

    Bibliometrics & Citations

    Bibliometrics

    Article Metrics

    • 0
      Total Citations
    • 515
      Total Downloads
    • Downloads (Last 12 months)515
    • Downloads (Last 6 weeks)97
    Reflects downloads up to 15 Oct 2024

    Other Metrics

    Citations

    View Options

    View options

    PDF

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader

    Get Access

    Login options

    Media

    Figures

    Other

    Tables

    Share

    Share

    Share this Publication link

    Share on social media