by Pacia Harper

LFS argues that if workloads are write-dominated, LFS is a good
idea. If workloads remain read-dominated (say 70% reads, 30%
writes), would you still want to use LFS? (why or why not?)

The LFS paper doesn't give us as much information as I want to
answer this question. They used LFS in a production setting
for several months. Presumably the file accesses in this setting
were as "typical" as we're going to get.

Unfortunately, the only measurements the authors give from this
production use are related to writes. This supports their
contention that LFS is excellent for reducing write costs.
However, the most important thing about a file system is its
overall performance. The authors do not evaluate the tradeoffs
involved in running LFS in a real system.

On the other hand, the authors claim that write costs will become
more and more important *in the future*, as main memories become
larger and can cache more data for reads. This means that
evaluating overall performance on the machines available at the
time of the paper would have been somewhat misleading.

I'll agree that the increasing size of main memories makes them
more able to cache data for reading. However, the size of main
memory is not the only thing that changes. Over time, people have
demonstrated that they will find ways to use up any additional
resources a computer system provides (by running more users, more
tasks, or more demanding applications). This implies that read
performance may still be important, as applications can't count
on a given file staying in memory once the application begins to
read it.

The Unix fast file system optimizes its data layout for reads of
logically related data, while the Sprite log file system
optimizes its data layout for writes (and reads) of temporally
related data. If I'm going to read a lot of data, I'm going to
opt for FFS rather than LFS, bargaining that logical locality is
more frequent than temporal locality. The additional cost in
writing a file will hopefully be amortized over the many times
the file is read.

p.s. One interesting thing about LFS is that it might be
well-suited to swapping, since it groups temporally related
writes. I don't know much about swapping schemes to judge this
by, though.