On Thu, Mar 03, 2005 at 02:40:21AM -0700, Andreas Dilger wrote:
> On Mar 03, 2005  14:03 +0530, Suparna Bhattacharya wrote:
> > diffstat of the 3 patches : 22 files changed, 5920 insertions(+), 
> > 47 deletions. The largest is in the extents patch (2743), mballoc 
> > is 1968, and delalloc is 1209. To use delalloc, which gives us
> > all the performance benefits, right now we need all the 3 patches
> > to be used in conjunction. Supporting extent map btrees as well 
> > as traditional indexing and associated options for compatibility etc
> > is perhaps the more invasive of changes. Given that keeping ext3 
> > stable and maintainable is a key concern (that is after all a major 
> > reason why a lot of users rely on ext3), a somewhat incremental 
> > approach is desirable. 
> > 
> > So, I'll start from the direction that has been suggested by
> > some -- (1) delayed allocation without changing the
> > on-disk format. And then later (2) go on to breaking format with 
> > all changes for scalability to larger files with full extents 
> > support (haven't thought enough about this yet - maybe in a
> > separate mail)
> 
> Well, for a starter, the extents format changes are not forced on
> users, only if they mount with "-o extents" and write files will
> it mark the superblock incompatible and start allocating files
> this way.  I believe (though I have never tested) that even if
> extents are enabled, writes to a block-mapped file will continue
> to work and that file will not be converted to an extent file.

Files that are created with extents will not be viewable by an older
kernel, though (I think) - which is where the format breakage comes
in (is that correct ?). But I don't see this as a major issue, since 
it can perhaps be taken care of through a little bit of migration 
tooling as Ted indicated. 

So, compatibility in itself wasn't the main concern bothering me 
but how we could make it easier to assure stability & maintainability
even with all the cool stuff. For example, if we have both mballoc 
and regular balloc and similarly extents and regular indexing based 
on growth patterns (a nice idea, btw), does it multiply the 
scenarios to verify on the testing front ? Or in dealing with changes
in the future ? I'm guessing that this might be one of the things (besides
agreement on the disk layout) holding up inclusion of extents, despite
the patches being around for a while now .. but then I could be wrong.
B-tree based extent maps were mentioned by sct way back in his 2000 
paper ! And of course every filesystem out there implements B-trees in
its own way.

I can see arguments flying both ways ... at what point do we decide
to break towards an ext4 ? 

BTW, has anyone tried playing with the idea of ext4 as not a 
cp -r fs/ext3 fs/ext4 and edit, but if possible using some layered
filesystem techniques to reuse much of ext3 directly, and just override
a few operations (like get_blocks for extents etc) where there 
is a layout impact ? 

Alex, have you had a chance to prototype your idea of rooting extents
in ea ?

> 
> > A few random things that come to mind for (1), going through the code:
> > 
> > - There might be possibilities for code reduction, by extending
> >   generic routines as far as possible, e.g. ext3_wb_writepages
> >   has a lot in common with generic writepages. That would
> >   also make it easier to maintain.
> 
> I'm sure some support for this could be gotten from e.g. XFS as well,
> since their filesystem (on Irix at least) was all about delayed alloc
> (not sure what it does under Linux), and I believe ReiserFS/Reiser4
> also desire the ability to have delayed allocation from the VFS (i.e.
> some sort of light-weight "reserve space" call for each page dirtied
> and then getting the actual file + offsets en masse later (if the
> VFS/VM doesn't discard the whole thing).

*nod*

Regards
Suparna

> 
> Cheers, Andreas
> --
> Andreas Dilger
> http://sourceforge.net/projects/ext2resize/
> http://members.shaw.ca/adilger/             http://members.shaw.ca/golinux/
> 



-- 
Suparna Bhattacharya ([EMAIL PROTECTED])
Linux Technology Center
IBM Software Lab, India

-
To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to