I always "just assumed" that the reason PFS3 was so fast was because it essentially had a secret built-in copy of FastCache.
Is that not true in some sense?
Caching is helpful, but it is not essential. A cache will boost performance only if what you need to access next is already stored in the cache. This is the case with data which is accessed repeatedly, but often enough data on the disk is accessed once and then never again.
To provide for a consistent speed improvement you need to organize the file system's data structures in such a way as make accessing the data fast. For example, instead of having to walk through a series of data blocks before you can use the data you are looking for, you could have a tree data structure, which would let you pinpoint within 3-4 steps what would take 15-30 data blocks to walk through in sequence.
The FFS consistently uses data structures which are very simplistic in construction, and in theory ought to be robust. But the robustness is just not there, and the simplicity only succeeds in dropping performance the more data has to be managed.
Ppl always complain about FFS being slow but if you increase the sector size to 4K or larger you get a giant speedboost. No caching software needed. If you then add caching software you should then be around the same speed as SFS or PFS.
Changing the block size (a block is made up of several sectors) will have a positive impact on performance only if your disk drive and the controller hardware do not make data accesses noticeably slower if you end up reading 4-8 times the previous amount of data.
You still have the same scalability issues with the FFS, which means that the more data you have to manage, the quicker FFS loses performance. Not all file systems lose performance as quickly as the FFS, as the amount of data increases. It's particularly nasty with the FFS, though.
There is one major drawback to increasing the block size with the FFS: if the file system data structures become corrupted, then the amount of data affected by the corruption will be much higher than with smaller block sizes. Given that the FFS lacks robustness by design, trading greater speed for even smaller robustness may be a bad idea...