ARS: Reducing F2FS Fragmentation for Smartphones using Decision Trees
Lihua Yanga, Fang Wangb, Zhipeng Tanc, Dan Fengd, Jiaxing Qiane and Shiyun Tuf
Wuhan National Laboratory for Optoelectronics, Key Laboratory of Information Storage System Engineering Research Center of Data Storage Systems and Technology, Ministry of Education of China School of Computer Science & Technology, Huazhong University of Science & Technology
alihuayang@hust.edu.cn
bwangfang@hust.edu.cn
ctanzhipeng@hust.edu.cn
ddfeng@hust.edu.cn
ejiaxingqian@hust.edu.cn
ftushiyun@hust.edu.cn
ABSTRACT
As we all know, file and free space fragmentation negatively affect file system performance. F2FS is a file system designed for flash memory. However, it suffers from severe fragmentation due to its out-of-place updates and the highly synchronous, multi-threaded writing behaviors of mobile applications. We observe that the running time of fragmented files is 2.36× longer than that of continuous files and that F2FS's in-place update scheme is incapable of reducing fragmentation. A fragmented file system leads to a poor user experience. Reserving space to prevent fragmentation is an intuitive approach. However, reserving space for all files wastes space since there are a large number of files. To deal with this dilemma, we propose an adaptive reserved space (ARS) scheme to choose some specific files to update in the reserved space. How to effectively select reserved files is critical to performance. We collect file characteristics associated with fragmentation to construct data sets and use decision trees to accurately pick reserved files. Besides, adjustable reserved space and dynamic reservation strategy are adopted. We implement ARS on a HiKey960 development platform and a commercial smartphone with slight space and file creation time overheads. Experimental results show that ARS reduces file and free space fragmentation dramatically, improves file I/O performance and reduces garbage collection overhead compared to traditional F2FS and F2FS with in-place updates. Furthermore, ARS delivers up to 1.26× transactions per second under SQLite than traditional F2FS and reduces running time of realistic workloads by up to 41.72% than F2FS with in-place updates.