Re: fsync on large files

Linus Torvalds (torvalds@transmeta.com)
Wed, 17 Feb 1999 10:03:30 -0800 (PST)


On Wed, 17 Feb 1999, Alan Cox wrote:
>
> ext2 is a multiplatform file system. Linux, HURD, BSD, OS/2, RiscOS last
> time I checked.

Only in name. Let's not fool ourselves. The only cross-platform filesystem
out there is the MSDOS filesystem (and NFS - but network filesystems are
inherently different when it comes to "crossplatform" issues), and ext2
isn't even in the running.

> > only complicate renaming and loopback mounting a lot. There's also a lot
> > of code to handle concurrent writes etc, which can't happen any more.
>
> But will need to occur for future scaling.

No, I don't think I'll ever allow concurrent writes to the same file.

The basic reason is simple: we have more filesystems than can reasonably
be maintained if it happens. The same way I don't want driver writers to
have to know about more than the bare minimum basic rules about SMP
(because 99% of all people don't understand race conditions), I don't want
FS people having to know more than the bare minimum about race conditions
in filesystems.

Why? Simply because I certainly understand races better than most people
out there, and even _I_ get confused.

Performance comes second in this case, especially as I don't believe there
is any strong argument for performance in the first place. And don't
bother telling me about databases, I know about databases, and I think
it's a complete red herring. We get more performance by having a simple
locking scheme and good caching than by adding complexity - and that's
been true historically forever.

> Linux has a lot of cruft in it maybe while doing journalling we should throw
> the OS away and rewrite that too ? - I hope Im misunderstanding your argument.

Sure, go right ahead.

No, you're not misunderstanding the argument. Eventually some hungry
programmer will decide that Linux has too much cruft, and he'll want to
take over the world, and he'll come up with a system called Davix or
something. That's how these things go, and that's how things _should_
work.

The only thing I can aim at is to minimize the amount of cruft, and
pushing out the inevitable as far into the future as humanly possible.
That's what "maintenance" means, Alan.

Alan, the _only_ beef I ever have about you as a developer is that you're
looking about a year into the future - not ten.

Start thinking ten years down the road, and think "how do I avoid the
complexity issue"? Then, after you've given that some serious thouhgt,
come back to me about this all.

Linus

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/