*** Welcome to piglix ***

Smart File System

SFS
Developer(s) John Hendrikx
Full name Smart File System
Introduced 1998
Partition identifier 'SFS\0'
Limits
Max. volume size 127 GB
Max. file size 4 GB
Max. filename length 107 characters
Features
Date range January 1, 1978 - 2157
Date resolution 1/50s
Attributes filenote, hidden, undeletable
Transparent compression No
Transparent encryption No (provided at the block device level)
Other
Supported operating systems AmigaOS (version 1.279), AROS (1.84), MorphOS (1.223), AmigaOS 4 (1.293), Linux (1.0beta12)

The Smart File System (SFS) is a journaling filesystem used on Amiga computers and AmigaOS-derived operating systems (though some support also exists for IBM PC compatibles). It is designed for performance, scalability and integrity, offering improvements over standard Amiga filesystems as well as some special or unique features.

SFS uses block sizes ranging from 512 (29) to 32768 (215) bytes with a maximum partition size of 128 GB. Its good performance, better than FFS, and lack of need for long "validation" in case of an error, is achieved by grouping multiple directory entries into a single block and by grouping meta data blocks together into clusters. A bitmap is used to keep track of free space, and file data is kept track of using extents arranged into a B+ tree structure.

Integrity is maintained by keeping a transaction log of all changes made to metadata over a certain period of time. The log is written to disk first into free space and then meta data blocks are overwritten directly. Should the system crash, the next time the filesystem is mounted it will notice the uncompleted operation and roll it back to the last known consistent state. For performance reasons, only metadata integrity is ensured. Actual data in files can still be corrupted if a write operation is terminated half way through. Unlike the original Amiga filesystems, FFS and OFS, filesystem integrity is very rarely compromised by this.

One feature of SFS that is almost unique among Amiga filesystems is its ability to defragment itself while the filesystem is in use, even for locked files. The defragmentation process is almost completely stateless (apart from the location it is working on), which means it can be stopped and started instantly. During defragmentation data integrity is ensured of both meta data and normal data. The filesystem may attempt to move a whole file to a different location when fragmentation is going to occur otherwise.


...
Wikipedia

...