Title: Buffered FUSE: optimising the Android IO stack for user-level filesystem
Authors: Sooman Jeong; Youjip Won
Addresses: Hanyang University, #507-2, Annex of Engineering Center, 17 Haengdang-dong, Sungdong-gu, Seoul, 133-791, South Korea ' Hanyang University, #507-2, Annex of Engineering Center, 17 Haengdang-dong, Sungdong-gu, Seoul, 133-791, South Korea
Abstract: In this work, we optimise the Android IO stack for user-level filesystem. Android imposes user-level filesystem over native filesystem partition to provide flexibility in managing the internal storage space and to maintain host compatibility. The overhead of user-level filesystem is prohibitively large and the native storage bandwidth is significantly under-utilised. We overhauled the FUSE layer in the Android platform and propose buffered FUSE (bFUSE) to address the overhead of user-level filesystem. The key technical ingredients of buffered FUSE are: 1) extended FUSE IO size; 2) internal user-level write buffer; 3) independent management thread which performs time-driven FUSE buffer synchronisation. With buffered FUSE, we examined the performances of five different filesystems and three disk scheduling algorithms in a combinatorial manner. With bFUSE on XFS filesystem using the deadline scheduling, we achieved the IO performance improvements of 470% and 419% in Android ICS and JB, respectively, over the existing smartphone device.
Keywords: Android platform; storage; IO stack; user-level filesystem; FUSE; write buffer; embedded systems; buffer synchronisation; scheduling; smartphones.
International Journal of Embedded Systems, 2014 Vol.6 No.2/3, pp.95 - 107
Received: 11 Sep 2013
Accepted: 11 Oct 2013
Published online: 31 Jul 2014 *