Abstract
Flash storage has been a standard component in Android devices. Recent research has reported that application data management in Android involves frequent fsync() operations. The current fsync() implementations, including those of ext4 and F2FS, have several common drawbacks. Specifically, ext4 commits a transaction every time to sync a file, whereas F2FS commits a checkpoint to sync a directory. Committing a transaction or checkpoint flushes all dirty data from the page cache to the flash storage via many small, random block write requests. The resultant high I/O frequency and excessive write traffic cause a high fsync() latency. This study presents an efficient fsync() method, called eager synching, which is based on a simple idea: write less, and write sequentially. To sync a file, eager synching writes only a subset of all dirty data in the page cache to a sequential log space using a few sequential block write requests. It does not involve transaction or checkpoint committing. We successfully implemented eager synching in ext4 and F2FS, and our experimental results show that, compared with the original fsync() methods of ext4 and F2FS, eager synching reduced the average and maximum fsync() latencies by up to 72% and 91%, respectively, block-level write traffic by up to 35%, and I/O frequency by up to 66%. Through enhanced crash recovery procedures, eager synching can successfully recover all previously synched files while still guaranteeing the file system integrity. We also conducted live application replays using the proposed eager synching approach and observed that this approach significantly improved the application frame updating rate and application execution time.
- Alan D. Brunelle. 2007. blktrace. Retrieved from http://www.cse.unsw.edu.au/∼aaronc/iosched/doc/blktrace.html.Google Scholar
- Li-Pin Chang, Po-Han Sung, and Po-Hung Chen. 2014. Fast file synching for applications in flash-based Android devices. In Proceedings of the 2014 IEEE Non-Volatile Memory Systems and Applications Symposium (NVMSA’14). IEEE, 1--6. Google ScholarCross Ref
- Tzi-Cker Chiueh and Lan Huang. 2002. Track-based disk logging. In Proceedings of the International Conference on Dependable Systems and Networks (DSN’02). 429--438. Google ScholarDigital Library
- Lorenzo Gomez, Iulian Neamtiu, Tanzirul Azim, and Todd Millstein. 2013. RERAN: Timing- and touch-sensitive record and replay for Android. In Proceedings of the 2013 International Conference on Software Engineering (ICSE’13). 72--81. Google ScholarDigital Library
- Constantin Gonzalez. 2010. Solaris ZFS, Synchronous Writes and the ZIL Explained. Retrieved from http://constantin.glez.de/blog/2010/07/solaris-zfs-synchronous-writes-and-zil-explained.Google Scholar
- Daeho Jeong, Youngjae Lee, and Jin-Soo Kim. 2015. Boosting quasi-asynchronous I/O for better responsiveness in mobile devices. In Proceedings of the 13th USENIX Conference on File and Storage Technologies. USENIX Association, 191--202. Google ScholarDigital Library
- Sooman Jeong, Kisung Lee, Seongjin Lee, Seoungbum Son, and Youjip Won. 2013. I/O stack optimization for smartphones. In Proceedings of the 2013 USENIX Annual Technical Conference. USENIX, 309--320. Google ScholarDigital Library
- Woon-Hak Kang, Sang-Won Lee, Bongki Moon, Gi-Hwan Oh, and Changwoo Min. 2013. X-FTL: Transactional FTL for SQLite databases. In Proceedings of the 2013 ACM SIGMOD International Conference on Management of Data (SIGMOD’13). 97--108. Google ScholarDigital Library
- Hyojun Kim, Nitin Agrawal, and Cristian Ungureanu. 2012. Revisiting storage for smartphones. In Proceedings of the USENIX Conference on File and Storage Technologies. 209--222. Google ScholarDigital Library
- Hyojun Kim and Seongjun Ahn. 2008. BPLRU: A buffer management scheme for improving random writes in flash storage. In Proceedings of the 6th USENIX Conference on File and Storage Technologies (FAST’08). USENIX Association, 1--14. Google ScholarDigital Library
- Je-Min Kim and Jin-Soo Kim. 2012a. Advil: A pain reliever for the storage performance of mobile devices. In Proceedings of the 2012 IEEE 15th International Conference on Computational Science and Engineering (CSE’12). 429--436. Google ScholarDigital Library
- Je-Min Kim and Jin-Soo Kim. 2012b. AndroBench: Benchmarking the storage performance of Android-based mobile devices. In Frontiers in Computer Education, Sabo Sambath and Egui Zhu (Eds.). Advances in Intelligent and Soft Computing, Vol. 133. 667--674. Google ScholarCross Ref
- Changman Lee, Dongho Sim, Jooyoung Hwang, and Sangyeun Cho. 2015b. F2FS: A new file system for flash storage. In Proceedings of the USENIX Conference on File and Storage Technologies (FAST’15). 273--286. Google ScholarDigital Library
- Kisung Lee and Youjip Won. 2012. Smart layers and dumb result: IO characterization of an Android-based smartphone. In Proceedings of the 10th ACM International Conference on Embedded Software (EMSOFT’12). 23--32. Google ScholarDigital Library
- Wongun Lee, Keonwoo Lee, Hankeun Son, Wook-Hee Kim, Beomseok Nam, and Youjip Won. 2015a. WALDIO: Eliminating the filesystem journaling in resolving the journaling of journal anomaly. In Proceedings of the USENIX Annual Technical Conference. 235--247. Google ScholarDigital Library
- Linux man page. 2015. fsync(2). (2015). http://linux.die.net/man/2/fsync.Google Scholar
- Aravind MacHiry, Rohan Tahiliani, and Mayur Naik. 2013. Dynodroid: An input generation system for android apps. In Proceedings of the 2013 9th Joint Meeting on Foundations of Software Engineering. ACM, 224--234. Google ScholarDigital Library
- Robotium. 2015. Robotium testing framework for Android. Retrieved from https://code.google.com/p/robotium/.Google Scholar
- Liang Shi, Jianhua Li, Chun Jason Xue, Chengmo Yang, and Xuehai Zhou. 2011. ExLRU: A unified write buffer cache management for flash memory. In Proceedings of the 9th ACM International Conference on Embedded Software. ACM, 339--348. Google ScholarDigital Library
- Systemtap. 2015. Systemtap. Retrieved from http://sourceware.org/systemtap/.Google Scholar
- The Open Group. 2004. fsync. Retrieved from http://pubs.opengroup.org/onlinepubs/009695399/functions/fsync.html.Google Scholar
- Randolph Y. Wang, Thomas E. Anderson, and David A. Patterson. 1999. Virtual log based file systems for a programmable disk. In Proceedings of the 3rd Symposium on Operating Systems Design and Implementation (OSDI’99). USENIX Association, 29--43. Google ScholarDigital Library
- Shengqian Yang, Dacong Yan, and Atanas Rountev. 2013. Testing for poor responsiveness in Android applications. In Proceedings of the 1st International Workshop on the Engineering of Mobile-Enabled Systems (MOBS’13). IEEE, 1--6. Google ScholarCross Ref
- Tom Yeh, Tsung-Hsiang Chang, and Robert C. Miller. 2009. Sikuli: Using GUI screenshots for search and automation. In Proceedings of the 22nd Annual ACM Symposium on User Interface Software and Technology. ACM, 183--192. Google ScholarDigital Library
- Chi Zhang, Xiang Yu, Arvind Krishnamurthy, and Randolph Y. Wang. 2002. Configuring and scheduling an eager-writing disk array for a transaction processing workload. In Proceedings of the 1st USENIX Conference on File and Storage Technologies (FAST’02). USENIX Association, Article 24. Google ScholarDigital Library
Index Terms
- Eager Synching: A Selective Logging Strategy for Fast fsync() on Flash-Based Android Devices
Recommendations
BetrFS: a compleat file system for commodity SSDs
EuroSys '22: Proceedings of the Seventeenth European Conference on Computer SystemsDespite the existence of file systems tailored for flash and over a decade of research into flash file systems, this paper shows that no single Linux file system performs consistently well on a commodity SSD across different workloads. We define a ...
Optimizing storage performance of Android smartphone
ICUIMC '13: Proceedings of the 7th International Conference on Ubiquitous Information Management and CommunicationRecently, mobile platform devices such as smartphone and tablet have spread widely. These devices have embedded NAND flash storage devices. For example, recent smartphones use embedded multimedia cards (eMMC) to store application and data. The ...
CosaFS: A Cooperative Shingle-Aware File System
Special Issue on MSST 2017 and Regular PapersIn this article, we design and implement a cooperative shingle-aware file system, called CosaFS, on heterogeneous storage devices that mix solid-state drives (SSDs) and shingled magnetic recording (SMR) technology to improve the overall performance of ...
Comments