Title: Buffered FUSE: optimising the Android IO stack for user-level filesystem

 

Author: 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

 

Journal: Int. J. of Embedded Systems, 2014 Vol.6, No.2/3, pp.95 - 107

 

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.

 

DOI: http://dx.doi.org/10.1504/IJES.2014.063806

 

Available online 22 Jul 2014

 

 

Editors Full Text AccessAccess for SubscribersPurchase this articleComment on this article