An Architecture for High Performance File SystemI/O

This paper presents an architecture of current filesystem implementations as well as our new filesystem SpadFS and operating system Spad with rewritten VFS layer targeted at high performance I/O applications. The paper presents microbenchmarks and real-world benchmarks of different filesystems on the same kernel as well as benchmarks of the same filesystem on different kernels – enabling the reader to make conclusion how much is the performance of various tasks affected by operating system and how much by physical layout of data on disk. The paper describes our novel features–most notably continuous allocation of directories and cross-file readahead – and shows their impact on performance.

Authors:



References:
[1] M. Patocka: SpadFS filesystem.
http://artax.karlin.mff.cuni.cz/˜mikulas/spadfs/
[2] R. Card, T. Y. Ts-o, S. Tweedie: Design and Implementation of the
Second Extended Filesystem. Proceedings of the First Dutch International
Symposium on Linux (1994)
[3] S. Tweedie: Journaling the Linux Ext2fs Filesystem. LinuxExpo (1998)
25-29
[4] F. Buchholz: The structure of the Reiser file system.
http://www.cerias.purdue.edu/homes/florian/reiser/reiserfs.php
[5] N. Danilov: Reiser4, will double Linux FS performance.
http://www.ussg.iu.edu/hypermail/linux/kernel/0211.0/0056.html
[6] A. Sweeney, D. Doucette, W. Hu, C. Anderson, M. Nishimoto, and G.
Peck: Scalability in the XFS File System. Proceedings of the USENIX
Technical Conference (1996) 1-14
[7] S. Best, D. Kleikamp: JFS layout.
http://mics.org.uk/usr/share/doc/packages/jfsutils/jfslayout.pdf
[8] M. Patoˇcka: Prerelease of the Spad VFS layer.
http://artax.karlin.mff.cuni.cz/˜mikulas/spad-prerelease/
[9] S. R. Kleiman: Vnodes: An Architecture for Multiple File System Types
in Sun UNIX. USENIX Summer Conference Proceedings (1986) 238-247
[10] R. Fagin: Extendible Hashing: A Fast Access Mechanism for Dynamic
Files. ACM Transactions on Database Systems (1979) 315-344
[11] M. K. McKusick,W, N. Joy, S. J. Leffler, R. S. Fabry: A Fast File System
for UNIX. ACM Transactions on Computer Systems 2, 3 (August 1984)
181-197
[12] Z. Zhang, K. Ghose: yFS: A Journaling File System Design for Handling
Large Data Sets with Reduced Seeking. Proceedings of the 2nd USENIX
Conference on File and Storage Technologies (2003) 59-72
[13] M. Patoˇcka: File allocation information and block allocation subsystem.
Technical report, Charles University in Prague
[14] M. Patoˇcka: Using crash counts to maintain filesystem consistency.
Proceedings of the CITSA (2006) vol. 3, 118-122
[15] M. Patoˇcka: Filesystem benchmarking software.
http://artax.karlin.mff.cuni.cz/˜mikulas/bench/
[16] J. Andrews: Linux: Reiser4 and the Mainline Kernel.
http://kerneltrap.org/node/5679
[17] A. E. Papathanasiou, M. L. Scott: Aggressive Prefetching: An Idea
Whose Time Has Come. HotOS X, Tenth Workshop on Hot Topics in
Operating Systems (2005)
[18] R. Van Meter: Observing the Effects of Multi-Zone Disks Information.
Proceedings of the USENIX Annual Technical Conference (1997)
[19] P. Triantafillou, S. Christodoulakis, C. Georgiadis: A Comprehensive
Analytical Performance Model for Disk-Storage Device Technologies.
IEEE Transactions on Knowledge and Data Engineering, 14 (2002) no.
1, 140-155
[20] D. Phillips: A Directory Index for Ext2. Proceedings of the Annual
Linux Showcase and Conference (2001)
[21] T. Y. Ts-o: Planned Extensions to the Linux Ext2/Ext3 Filesystem.
Proceedings of the USENIX Annual Technical Conference (2002) 235-
243
[22] J. Mostek,W. Earl, D. Koren: Porting the SGI XFS File System to Linux.
The 6th Linux Kongress and the Linux Storage Management Workshop
(1999)