Skip to content
A Scalable File System on Fast Storage Devices
C TeX Roff Shell Makefile C++ Other
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
e2fsprogs-1.42.8
spanfsv2-garbage-collection
LICENSE
README.md
atc15-paper-kang.pdf

README.md

SpanFS

Introduction

SpanFS is a Scalable File System on Fast Storage Devices, which aims to provide scalable I/O performance on many-core platform incorporating fast storage technologies. As demonstrated in our paper, the scalability bottlenecks of exitsting file systems are mainly caused by two factors: the use of shared in-memory data structures and the serialization of internl I/O activities on fast storage devices.

In order to address the scalability bottlenecks, we proposed SpanFS, which builds a file system with multiple independent micro-filesystem services called domains. Then, SpanFS distributes all files and directories among the domains and provides a global file system view on top of the domains. Each domian adopts traditional journaling mechanism to ensure its local consistency. We build the logical connection (bidirectional index) among the domains beyond the underlying distributed journaling, then propose a set of techniques to maintain global consistency based on the connection. SpanFS is implemented based on Ext4 in Linux 3.18.0.

For more details, please refer to our paper: SpanFS: A Scalable File System on Fast Storage Devices .

If you use our work, please cite our USENIX ATC paper.

@inproceedings {spanfs,

author = {Junbin Kang and Benlong Zhang and Tianyu Wo and Weiren Yu and Lian Du and Shuai Ma and Jinpeng Huai},

title = {SpanFS: A Scalable File System on Fast Storage Devices},

booktitle = {2015 USENIX Annual Technical Conference (USENIX ATC 15)},

year = {2015},

pages = {249--261},

}

The guide to using SpanFS

First, make the SpanFS on-disk structures by using our modified mke2fs (Parameter N would be the number of domains to be created)

 e2fsprogs-1.42.8/misc/mke2fs -t ext4 -J size=64 -p N /dev/fioa

Then, mount SpanFS

 mount -t spanfsv2 -o data=ordered /dev/fioa /mnt
You can’t perform that action at this time.