Re: [PATCH] ext2: avoid needless discard of preallocated blocks

From: Val Henson
Date: Sun Aug 20 2006 - 11:30:54 EST


On 8/20/06, Arjan van de Ven <arjan@xxxxxxxxxxxxx> wrote:
On Sun, 2006-08-20 at 12:48 +0100, Ron Yorston wrote:
> Andrew Morton <akpm@xxxxxxxx> wrote:
> >Been there, done that. The problem was that hanging onto the preallocation
> >will cause separate files to have up-to-seven-block gaps between them. So
> >if you put a large number of small files in the same directory, the time to
> >read them all back is quite significantly impacted: they cover a lot more
> >disk.
>
> The preallocation is only held while the file is open, so there will only
> be gaps between files that are open simultaneously. If they're created
> sequentially there will be no gap.
>
> This issue exists even with the current code.
>
> The patch will have a small effect. With the current code an open file
> will lose its preallocation when some other process touches the inode.
> In that case a subsequently created file will follow without a gap. As
> soon as the open file is written to, though, it gets a new preallocation.
> -

maybe porting the reservation code to ext2 (as Val has done) is a nicer
long term solution..

The even nicer solution long term solution is to abstract out the
reservation code as much as possible and share it. But if you want
my (hasty and unlovely) port, you can grab it out of this patch:

http://infohost.nmt.edu/~val/patches/fswide_latest_patch

I'm not sure what benchmark to use to test the performance; our
initial benchmarks (run by Zach Brown) didn't show an improvement (see
the OLS paper).

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