A New Design For FUSE File-Systems

Posted by Michael Larabel on January 23, 2012

At SCALE 10x a new FUSE implementation was presented that while still having the file-system in user-space, the kernel component is now responsible for more of the work.

Gordon Ross of Nexenta presented on his new FUSE implementation that implements in-kernel meta-data caching. With this caching in the kernel, less inefficient communication needs to happen between the kernel and the FUSE user-space. FUSE is what Linus Torvalds previously said was just for toys and misguided people. Among the many file-systems with FUSE variants are NTFS and ZFS.

Gordon's talk abstract for SCALE 10x reads, "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."

This former developer of Sun Microsystems based the improvements in part on his earlier smbfs work for Solaris. Right now he refers to this new implementation as being a "toy" and hasn't been pushed for upstream. Right now it's also just living in the Illumos world without any Linux-focused work.

With the reduced number of calls, the file I/O was reported to be about the same but path look-up and other operations were faster.

Discuss this article in our forums, IRC channel, or email the author. You can also follow our content via RSS and on social networks like Facebook, Identi.ca, and Twitter (@Phoronix and @MichaelLarabel). Subscribe to Phoronix Premium to view our content without advertisements, view entire articles on a single page, and experience other benefits.
Latest Hardware Reviews
  1. Sumo Lounge Emperor
  2. Gallium3D Continues Improving OpenGL For Older Radeon GPUs
  3. 15-Way Open vs. Closed Source NVIDIA/AMD Linux GPU Comparison
  4. Nouveau vs. NVIDIA Linux Comparison Shows Shortcomings
Latest Software Articles
  1. Intel Linux OpenGL Driver Leading Over Apple OS X
  2. The Cost Of Ubuntu Disk Encryption
  3. Btrfs vs. EXT4 vs. XFS vs. F2FS On Linux 3.10
  4. AMD Radeon R600 GPU LLVM 3.3 Back-End Testing
Latest Linux News
  1. Wayland's Weston Gets Output Scaling Support
  2. Raspberry Pi Gets New Wayland Weston Renderer
  3. Debian GNU/Hurd 2013 Release Brings New Packages
  4. Intel Ultrabook Performance Is Faster With Mesa 9.2
  5. Hot Relocation HDD To SSD Support For Btrfs
  6. Phoronix Test Suite 4.6.0 "Utsira" Released
  7. New Intel X.Org Driver Supports All Of Haswell
  8. SQLite Now Faster With Memory Mapped I/O
  9. Microsoft Releases Skype For Linux 4.2, Has Bug-Fixes
  10. Qt For Tizen Launches, Based On Qt 5.1
  11. KTAP Released For Linux Kernel Dynamic Tracing
Latest Forum Talk
  1. Wayland's Weston Gets Output Scaling Support
  2. Fedora 18 Comes To ARMv6, Raspberry Pi
  3. Microsoft Releases Skype For Linux 4.2, Has...
  4. Raspberry Pi Gets New Wayland Weston Renderer
  5. Openbenchmarking.org main page is damaged
  6. Humble Indie Bundle Finally Sells Out
  1. Computers
  2. Display Drivers
  3. Graphics Cards
  4. Motherboards
  5. Peripherals
  6. Processors
  7. Software
  8. Operating Systems
  9. All Articles
  1. Linux Benchmarking
  2. OpenBenchmarking.org
  3. Phoronix Test Suite