Re: soft-update/async write file systems

Theodore Y. Ts'o (tytso@MIT.EDU)
Wed, 18 Feb 1998 00:42:24 -0500


Date: Tue, 17 Feb 1998 14:27:03 -0800
From: "Larry M. Augustin" <lma@varesearch.com>

I've been seeing the reports of Kirk McKusick's soft-update filesystem
for *BSD. Anyone working on anything similar for Linux?

For people who are interested, I suggest they take a look at the actual
Usenix paper, which was published in the 1994 Operating Systems Design
and Implementation conference proceedings.

You need to be a Usenix member to actually reference the on-line copy of
the paper

http://www.usenix.org/publications/library/proceedings/osdi/ganger.html

(or you can grab a copy from any decent C.S. library at your local
university)

I've looked at the paper, and the ideas there are clever. It wouldn't
be hard to extend some of the implementation approaches they are using
to do metadata logging (which you'll note Kirk McKusick mentioned
he was thinking about doing now that he's finished Soft Updates).

The real problem (and I ran into this while I started looking at trying
to do metadata logging for ext2fs) is that the Linux block device
interface is a real disaster right now. It very badly needs to be
rewritten from scratch. Between the what the high-level SCSI code does
to re-order and requests for performance reasons, and the fairly adhoc
block device layer, it's pretty much impossible for the filesystem to
request or expect any kind of write ordering semantics.

So what we really need is someone who is willing to do a lot of work
regularizing and straightening out the block device layer first.
Whoever did this would have to spend a lot of time coordinating with the
SCSI folks, since the SCSI performance hacks is one of the main
complexities in the current block device system. These hacks need to be
generalized and moved into the block device layer, so that you can
easily add in support for such things as write ordering. The other
group of people that you'd need to talk to is the people doing RAID
work, since they have similar issues that they need to deal with in
terms of needing to modify block device buffers before the resulting
data gets written out to disk.

Unfortunately, I don't have time to do the high-level block device
interface layer rewrite, but I will commit to working with whoever is
willing to come up with a list of requirements that would be necessary
to implement some of the more interesting filesystem ideas (logging,
soft updates, metadata logging, etc.).

Do we have any takers? It will probably be a fairly difficult task, and
it's almost certain not to be finished in time for 2.2. But, it would
be good start work on this sooner rather than later.

- Ted

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu