Re: [Ext2-devel] disk throughput

Linus Torvalds
2001-11-06T05:05:31Z

On Mon, 5 Nov 2001, Alexander Viro wrote:
>
> Oh, come on. (a) is obvious, but obviously not enough ;-)

I agree, but I think it's a fairly good starting point to build up some
heuristics.

Also note that traditonal UNIX implementations will have a hard time doing
anything more fine-grained than "is the parent the root directory or not".
Information about grandparents etc has been lost long before we get to
"ialloc()", so I bet you'll find experimental data only on that one-level
thing.

But it is probably not a binary decision in real life.

In real life, you're ok switching cylinder groups for /home vs /usr, but
you're also ok switching groups for /home/torvalds vs /home/viro. And it's
still reasonably likely that it makes sense to switch groups in
/home/torvalds between 'src' and 'public_html'.

But the deeper down in the directory hierarchy you get, the less likely it
is that it makes sense.

And yes, it's just a heuristic. But it's one that where thanks to the
dcache we could reasonably easily do more than just a black-and-white
"root vs non-root" thing.

> Yes, but block reservation also makes sense (otherwise we can end up
> putting a directory into parent's CG only to have all children
> going there _and_ getting far from their data). Which might be the
> problem with original code, BTW.

Yes, agreed. Disk space allocations should definitely be part of the
heuristics, and that's obviously both inode and blocks.

I do believe that there are probably more "high-level" heuristics that can
be useful, though. Looking at man common big trees, the ownership issue is
one obvious clue. Sadly the trees obviously end up being _created_ without
owner information, and the chown/chgrp happens later, but it might still
be useable for some clues.

Linus