linux-fsdevel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: David Chinner <dgc@sgi.com>
To: Neil Brown <neilb@suse.de>
Cc: Greg Banks <gnb@sgi.com>,
	Linux Filesystem Mailing List <linux-fsdevel@vger.kernel.org>,
	David Chinner <dgc@melbourne.sgi.com>,
	Donald Douwsma <donaldd@melbourne.sgi.com>,
	Christoph Hellwig <hch@infradead.org>,
	Roger Strassburg <rls@sgi.com>, Mark Goodwin <markgw@sgi.com>,
	Brett Jon Grandbois <brettg@melbourne.sgi.com>,
	Arnd Bergmann <arnd@arndb.de>
Subject: Re: Proposal to improve filesystem/block snapshot interaction
Date: Wed, 31 Oct 2007 10:56:52 +1100	[thread overview]
Message-ID: <20071030235652.GY995458@sgi.com> (raw)
In-Reply-To: <18214.45062.754722.885137@notabene.brown>

On Tue, Oct 30, 2007 at 03:16:06PM +1100, Neil Brown wrote:
> On Tuesday October 30, gnb@sgi.com wrote:
> > BIO_HINT_RELEASE
> >     The bio's block extent is no longer in use by the filesystem
> >     and will not be read in the future.  Any storage used to back
> >     the extent may be released without any threat to filesystem
> >     or data integrity.
> 
> If the allocation unit of the storage device (e.g. a few MB) does not
> match the allocation unit of the filesystem (e.g. a few KB) then for
> this to be useful either the storage device must start recording tiny
> allocations, or the filesystem should re-release areas as they grow.
> i.e. when releasing a range of a device, look in the filesystem's usage
> records for the largest surrounding free space, and release all of that.

I figured that the easiest way around this is reporting free space
extents, not the amoutn actually freed. e.g.

	4k in file A @ block 10
	4k in file B @ block 11
	4k free space @ block 12
	4k in file C @ block 13
	1008k in free space at block 14.

If we free file A, we report that we've released an extent of 4k @ block 10.
if we then free file B, we report we've released an extent of 12k @ block 10.
If we then free file C, we report a release of 1024k @ block 10.

Then the underlying device knows what the aggregated free space regions
are and can easily release large regions without needing to track tiny
allocations and frees done by the filesystem.

> I guess that is equally domain specific, but the difference is that if
> you try to read from the DONTCOW part of the snapshot, you get bad
> old data, where as if you try to access the subordinate device of a
> snapshot, you get an IO error - which is probably safer.

If you read from a DONTCOW region you should get zeros back - it's
a hole in the snapshot.

Cheers,

Dave.
-- 
Dave Chinner
Principal Engineer
SGI Australian Software Group

  parent reply	other threads:[~2007-10-30 23:57 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <20070927063113.GD2989@sgi.com>
2007-10-30  1:04 ` Proposal to improve filesystem/block snapshot interaction Greg Banks
2007-10-30  1:11   ` Greg Banks
2007-10-30  4:16   ` Neil Brown
2007-10-30  5:12     ` Greg Banks
2007-10-30  7:43       ` Arnd Bergmann
2007-11-20 23:43       ` Roger Strassburg
2007-10-30 23:56     ` David Chinner [this message]
2007-10-31  4:01       ` Greg Banks
2007-10-31  7:04         ` David Chinner
2007-10-30  9:35   ` Dongjun Shin
2007-10-30 10:15     ` Arnd Bergmann
2007-10-30 10:49       ` Dongjun Shin
2007-10-30 12:38         ` Arnd Bergmann
2007-10-30 14:19           ` Dongjun Shin
2007-10-30 15:37             ` Jörn Engel
2007-10-30 16:37               ` Arnd Bergmann
2007-10-30 23:19                 ` Kyungmin Park
2007-10-30 23:42       ` Kyungmin Park
2007-10-30 14:06     ` Jörn Engel
2007-10-31  3:44     ` Greg Banks

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20071030235652.GY995458@sgi.com \
    --to=dgc@sgi.com \
    --cc=arnd@arndb.de \
    --cc=brettg@melbourne.sgi.com \
    --cc=dgc@melbourne.sgi.com \
    --cc=donaldd@melbourne.sgi.com \
    --cc=gnb@sgi.com \
    --cc=hch@infradead.org \
    --cc=linux-fsdevel@vger.kernel.org \
    --cc=markgw@sgi.com \
    --cc=neilb@suse.de \
    --cc=rls@sgi.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).