[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20070427045824.GB20286@nifty>
Date: Thu, 26 Apr 2007 21:58:25 -0700
From: Valerie Henson <val_henson@...ux.intel.com>
To: Jeff Dike <jdike@...toit.com>
Cc: Amit Gud <gud@....edu>, Nikita Danilov <nikita@...sterfs.com>,
David Lang <david.lang@...italinsight.com>,
linux-fsdevel@...r.kernel.org, linux-kernel@...r.kernel.org,
riel@...riel.com, zab@...bo.net, arjan@...radead.org,
suparna@...ibm.com, brandon@...p.org, karunasagark@...il.com
Subject: Re: [RFC][PATCH] ChunkFS: fs fission for faster fsck
On Thu, Apr 26, 2007 at 12:05:04PM -0400, Jeff Dike wrote:
>
> No, I'm referring to a different file. The scenario is that you have
> a growing file in a nearly full disk with files being deleted (and
> thus space being freed) such that allocations for the growing file
> bounce back and forth between chunks.
This is an excellent question. I call this the ping-pong problem.
The solution is as Amit describes: You have a maximum of one
continuation inode per file per chunk, and you require sparse files.
Here's an example, spelled out:
Allocate file 1 in chunk A.
Grow file 1.
Chunk A fills up.
Allocate continuation inode for file 1 in chunk B.
Chunk A gets some free space.
Chunk B fills up.
Pick chunk A for allocating next block of file 1.
Try to look up a continuation inode for file 1 in chunk A.
Continuation inode for file 1 found in chunk A!
Attach newly allocated block to existing inode for file 1 in chunk A.
This is why the file format inside each chunk needs to support sparse
files.
I have a presentation that has a series of slides on problems and
potential resolutions that might help:
http://infohost.nmt.edu/~val/review/chunkfs_presentation.pdf
-VAL
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists