January 20-22, 2012, Hilton Los Angeles Airport Hotel

FUSE with In-Kernel Meta-Data Caching

Gordon Ross


FUSE (File-system in User Space) traditionally uses a very "thin" kernel module that communicates using a message passing interface to a user-level process that does all the interesting work. That approach forces a large number of very fine-grained requests for each high level file-system requests. An alternative to the traditional FUSE design is presented, where the kernel file-system module can do meta-data caching and some aggregation of requests, allowing the rendez-vous with the user-level helper process to be less frequent and more efficient. This allows the elimination of a significant portion of the work normally done by the user-level FUSE library. Also new in this approach is the use of illumos "door calls" (an efficient inter-process communication mechanism inherited from OpenSolaris) for communications between the in-kernel file-system module and the user-level FUSE service program. Experimental results from a prototype of this design are compared with the more traditional implementation, demonstrating some advantages of the new approach.

Presentation Slides: