Re: [RFC][PATCH] ChunkFS: fs fission for faster fsck

Valerie Henson
2007-04-28T06:50:22Z

On Fri, Apr 27, 2007 at 12:53:34PM +0200, J??rn Engel wrote:
>
> All this would get easier if continuation inodes were known to be rare.
> You can ditch the doubly-linked list in favor of a pointer to the main
> inode then - traversing the list again is cheap, after all. And you can
> just try to read the same block once for every continuation inode.
>
> If those lists can get long and you need a mapping from offset to
> continuation inode on the medium, you are basically fscked. Storing the
> mapping requires space. You need the mapping only when space (in some
> chunk) gets tight and you allocate continuation inodes. So either you
> don't need the mapping or you don't have a good place to put it.

Any mapping structure will have to be pre-allocated.

> Having a mapping in memory is also questionable. Either you scan the
> whole file on first access and spend a long time for large files. Or
> you create the mapping on the fly. In that case the page cache will
> already give you a 90% solution for free.

So in my secret heart of hearts, I do indeed hope that cnodes are rare
enough that we don't actually have to do anything smart to make them
go fast. Either having no fast lookup structure or creating it in
memory as needed would be the nicest solution. However, since I can't
guarantee this will be the case, it's nice to have some idea of what
we'll do if this does become important.

> You should spend a lot of effort trying to minimize cnodes. ;)

Yep. It's much better to optimize away most cnodes instead of trying
to make the go fast.

-VAL