Improving Second Extended File system (ext2fs) and making it GPL free
Abstract
The Ext2 or extended file system is a file system developed by Rémy Card and others for the Linux kernel. The ext2fs or it's derivatives are used as the Linux operating system's native file system format today. Ext2 is still preferred on flash drives as it requires fewer write operations (since it has no journal). FreeBSD has had Ext2 support for a long time. The current implementation suffers from some problems and it's GPL'd.
Schedule
If you want the schedule in a more organized and presentable form then I recommend going here.
Tue, April 21 – Tue, April 28 : Initial Reading and Planning
Wed, Apr 29 – Mon, May 4, 2009 : PR : 104133 File system corruption
Tue, May 5 – Fri, May 8 : PR : 77826,81568 and 105093
Sat, May 9 – Mon, May 11 : Interval for gaining on lost schedule, planning etc, updating blog,wiki etc.
Tue, May 12 – Fri, May 15 : PR : 122047 UF_IMMUTABLE / UF_APPEND flag problem
Sat, May 16 – Wed, May 20 : Phase 2 planning and research
Thu, May 21 – Thu, May 28 : Rewriting ext2fs.h and ext2fs_sb.h
Fri, May 29 – Wed, June 3 : Researching NetBSD's block and inode allocation policy
Thu, June 4 – Sat, June 20 : Rewriting ext2_linux_balloc.c and ext2_linux_ialloc.c
Sun, June 21 – Wed, June 24 : Interval for gaining on lost schedule, reviewing code, updating blog, wiki etc.
Thu, June 25 – Fri, July 10 : Rewriting ext2_vfops.c and i386_bitops.h
Sat, July 11 – Mon, July 20 : Benchmarking
Tue, July 21 – Sat, July 25 : Interval for gaining on schedule, additional bechmarking, uploading results on the web etc.
Sun, July 26 – Mon, August 17, 2009 : Reviewing code, Bug Fixing, Documentation and adding new features (if possible)
Mentor
Benchmarking
I conducted all my benchmarking on a machine with a 2 GHz Intel Core 2 Duo (T5870) CPU, 2 MB of L2 cache. The motherboard was a Dell Vostro J475C with 800 MHz FSB. The machine contained 3GB of DDR2 SDRAM. The benchmark disk was a 5400 RPM WD 3200BEVT (WD Scorpio Blue) with a capacity of 320 GB.
uname -a FreeBSD aditya 8.0-BETA2 FreeBSD 8.0-BETA2 #1: Wed Jul 29 14:53:10 IST 2009
IOZONE Benchmarking
iozone -a <mountpoint>
Series 0 is BSDL and MPSAFE ext2fs system and Series 1 is GPL'd ext2fs.
Conclusions
The performance of the BSDL ext2fs is almost equal to the GPL'd implementation. The performance of both the implementation is low while transferring big files due to lack of optimized policies.
dbench
dbench -D <mountpoint> 4
BSDL ext2fs Throughput: 29.8157 MB/sec
GPL ext2fs Throughput: 34.9873 MB/sec
Blogbench
blogbench -d <mountpoint>
BSDL ext2fs:
Final score for writes: 41
Final score for reads: 24933
GPL ext2fs:
Final score for writes: 44
Final score for reads: 31489