App ( a ) Kernel Storage Stack ( b ) Process Storage Stack Frontend VFS File System BlO User-level Driver App App Kernel User space Crash Consistency FS Process User space App App

We introduce file systems as processes (FSP), a storage architecture designed for modern ultra-fast storage devices. By building a direct-access file system as a standalone user-level process, FSP accelerates file system development velocity without compromising essential file system properties. FSP promises to deliver raw device-level performance via highly tuned inter-process communication mechanisms; FSP also ensures protection and metadata integrity by design. To study the potential advantages and disadvantages of the FSP approach, we develop DashFS, a prototype user-level file system. We discuss its architecture and show preliminary performance benefits.

[1]  Per Brinch Hansen,et al.  The nucleus of a multiprogramming system , 1970, CACM.

[2]  J. Liedtke On -Kernel Construction , 1995 .

[3]  Thorsten von Eicken,et al.  U-Net: a user-level network interface for parallel and distributed computing , 1995, SOSP.

[4]  Willy Zwaenepoel,et al.  IO-Lite: a unified I/O buffering and caching system , 1999, TOCS.

[5]  Margo I. Seltzer,et al.  Unifying File System Protection , 2001, USENIX Annual Technical Conference, General Track.

[6]  Hermann Härtig,et al.  VPFS: building a virtual private file system with a small trusted computing base , 2008, Eurosys '08.

[7]  Michael Stumm,et al.  FlexSC: Flexible System Call Scheduling with Exception-Less System Calls , 2010, OSDI.

[8]  Ashish Gehani,et al.  Performance and extension of user space file systems , 2010, SAC '10.

[9]  Steven Swanson,et al.  Providing safe, user space access to fast, solid state disks , 2012, ASPLOS XVII.

[10]  Frank Hady,et al.  When poll is better than interrupt , 2012, FAST.

[11]  Hui Ding,et al.  TAO: Facebook's Distributed Data Store for the Social Graph , 2013, USENIX Annual Technical Conference.

[12]  Philippe Bonnet,et al.  Linux block IO: introducing multi-queue SSD access on multi-core systems , 2013, SYSTOR '13.

[13]  Timothy Roscoe,et al.  Arrakis , 2014, OSDI.

[14]  Yang Liu,et al.  Willow: A User-Programmable SSD , 2014, OSDI.

[15]  Eunyoung Jeong,et al.  mTCP: a Highly Scalable User-level TCP Stack for Multicore Systems , 2014, NSDI.

[16]  Christoforos E. Kozyrakis,et al.  IX: A Protected Dataplane Operating System for High Throughput and Low Latency , 2014, OSDI.

[17]  Michael M. Swift,et al.  Aerie: flexible file-system interfaces to storage-class memory , 2014, EuroSys '14.

[18]  Michael A. Bender,et al.  BetrFS: A Right-Optimized Write-Optimized File System , 2015, FAST.

[19]  Andrea C. Arpaci-Dusseau,et al.  Split-level I/O scheduling , 2015, SOSP.

[20]  Jin-Soo Kim,et al.  NVMeDirect: A User-space I/O Framework for Application-specific Optimization on NVMe SSDs , 2016, HotStorage.

[21]  Annie Foong,et al.  Storage As Fast As Rest of the System , 2016, 2016 IEEE 8th International Memory Workshop (IMW).

[22]  David A. Patterson,et al.  Attack of the killer microseconds , 2017, Commun. ACM.

[23]  Dan Williams,et al.  Platform Storage Performance With 3D XPoint Technology , 2017, Proceedings of the IEEE.

[24]  Thomas E. Anderson,et al.  Strata: A Cross Media File System , 2017, SOSP.

[25]  Remzi H. Arpaci-Dusseau Operating Systems: Three Easy Pieces , 2015, login Usenix Mag..

[26]  Andrea C. Arpaci-Dusseau,et al.  Application Crash Consistency and Performance with CCFS , 2017, USENIX Annual Technical Conference.

[27]  Gang Cao,et al.  SPDK: A Development Kit to Build High Performance Storage Applications , 2017, 2017 IEEE International Conference on Cloud Computing Technology and Science (CloudCom).

[28]  Christoforos E. Kozyrakis,et al.  ReFlex: Remote Flash ≈ Local Flash , 2017, ASPLOS.

[29]  Erez Zadok,et al.  To FUSE or Not to FUSE: Performance of User-Space File Systems , 2017, FAST.

[30]  Mahmut T. Kandemir,et al.  FlashShare: Punching Through Server Storage Stack from Kernel to Firmware for Ultra-Low Latency SSDs , 2018, OSDI.

[31]  Thomas F. Wenisch,et al.  µTune: Auto-Tuned Threading for OLDI Microservices , 2018, OSDI.

[32]  Ki-Whan Song,et al.  A flash memory controller for 15μs ultra-low-latency SSD using high-speed 3D NAND flash with 3μs read time , 2018, 2018 IEEE International Solid - State Circuits Conference - (ISSCC).

[33]  Myoungsoo Jung,et al.  Exploring System Challenges of Ultra-Low Latency Solid State Drives , 2018, HotStorage.

[34]  Andrea C. Arpaci-Dusseau,et al.  Designing a True Direct-Access File System with DevFS , 2018, FAST.

[35]  Andrea C. Arpaci-Dusseau,et al.  DenseFS: a Cache-Compact Filesystem , 2018, HotStorage.

[36]  Hari Balakrishnan,et al.  Shenango: Achieving High CPU Efficiency for Latency-sensitive Datacenter Workloads , 2019, NSDI.

[37]  Zeyu Mi,et al.  SkyBridge: Fast and Secure Inter-Process Communication for Microkernels , 2019, EuroSys.