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-fsdevel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html