Jump to content

Smart File System

From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by 213.84.191.146 (talk) at 06:46, 23 September 2004. The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.
(diff) ← Previous revision | Latest revision (diff) | Newer revision → (diff)

The Smart File System (SFS) is a journalling filesystem used on Amiga computers. It was designed for performance, scalability and integrity. It could use block sizes ranging from 512 (2^9) to 32768 (2^15) bytes with a maximum partion size of 1 TB (1024 GB) or more depending on the block size.

Good performance of the filesystem is realized 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 rollback log of all changes made to meta data 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 meta data integrity is ensured. Actual data in files can still be corrupted if a write operation is terminated half way through.

One particular interesting feature of SFS 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.

SFS is a free filesystem originally created in 1998 by John Hendrikx. After the original author left the Amiga scene in 2000, the sources for SFS were released and its development continued.