SpadFS project is a new filesystem that I design and develop as my PhD thesis. It is an attempt to bring features of advanced filesystems (crash recovery, fast directories) and good performance without increasing code complexity too much.
Uses crash counts instead of journaling (because journaling is too complex and bug-prone) and uses hash instead of btrees for directory organization.
Here are some key features of "SpadFS":
· New method to maintain consistency across crashes --- crash counts.
· 48-bit sector numbers. Supports device size up to 144PB.
· Variable block size from 512 bytes to machine page size. Due to design of Linux page cache, small blocksize increases CPU consumption considerably.
· Large directories are organized in a similar way as Fagin's extendible hashing. Does not use btrees.
· Files are embedded directly in directory structure (unless hardlink is created). Thus, ls -la command doesn't have to seek to inodes.
· Free space is described in lists of extents rather than bitmaps like in most common filesystem. If a filesystem becomes too fragmented, list of free extents is converted to bitmap.
What's New in This Release:
· The main fixes are some spadfsck crashes and creating bad directory entries when a user tried to create s filename longer than 255 characters.