Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 16 Nov 1999 14:48:36 -0500 (EST)
From:      Zhihui Zhang <zzhang@cs.binghamton.edu>
To:        Alfred Perlstein <bright@wintelcom.net>
Cc:        freebsd-fs@FreeBSD.ORG
Subject:   Re: On-the-fly defragmentation of FFS
Message-ID:  <Pine.GSO.3.96.991116143730.11223A-100000@sol.cs.binghamton.edu>
In-Reply-To: <Pine.BSF.4.05.9911161245250.12797-100000@fw.wintelcom.net>

next in thread | previous in thread | raw e-mail | index | archive | help

On Tue, 16 Nov 1999, Alfred Perlstein wrote:

> On Tue, 16 Nov 1999, Zhihui Zhang wrote:
> 
> > 
> > After studying the code of ffs_reallocblks() for a while, it occurs to me
> > that the on-the-fly defragmentation of a FFS file (It does this on a per
> > file basis) only takes place at the end of a file and only when the
> > previous logical blocks have all been laid out contiguously on the disk
> > (see also cluster_write()).  This seems to me a lot of limitations to the
> > FFS defragger.  I wonder if the file was not allocated contiguously
> > when it was first created, how can it find contiguous space later unless
> > we delete a lot of files in between?
> > 
> > I hope someone can confirm or correct my understanding. It would be even
> > better if someone can suggest a way to improve defragmentation if the FFS
> > defragger is not very efficient.
> > 
> > BTW, if I copy all files from a filesystem to a new filesystem, will the
> > files be stored more contiguously?  Why?
> > 
> > Any help or suggestion is appreciated.
> 
> I think you're missing an obvious point, as the file is written out
> the only place where it is likely to be fragmented is the end, hence
> the reason for only defragging the end of the file. :)
> 

Thanks. I think this defragmentation (I can not find a better word for it) 
means making the blocks contiguous. Consider the case which in the last
eight blocks of a file, seven of them are already contiguously allocated
and only the last block is not.  Now if we write at the very last block,
the filesystem will try to move those seven blocks and the last block
together to some other place to make them all contiguous.  This only
happens at the end of a file.  I was wondering if this can happen
elsewhere or if there is a better solution for this kind of adjustment.

-Zhihui




To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-fs" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.GSO.3.96.991116143730.11223A-100000>