From: Dave Chinner <david@fromorbit.com>
To: Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
Cc: xfs@oss.sgi.com, "Darrick J. Wong" <darrick.wong@oracle.com>
Subject: Re: [RFC v2 00/24] xfs: add reflink and dedupe support
Date: Sun, 2 Aug 2015 08:58:17 +1000 [thread overview]
Message-ID: <20150801225817.GS16638@dastard> (raw)
In-Reply-To: <20150801130131.GD101746@meili.valhalla.31bits.net>
On Sat, Aug 01, 2015 at 09:01:31AM -0400, Josef 'Jeff' Sipek wrote:
> On Wed, Jul 29, 2015 at 03:32:59PM -0700, Darrick J. Wong wrote:
> > Hi all,
> >
> > This is the second revision of an RFC for adding to XFS kernel support
> > for mapping multiple file logical blocks to the same physical block,
> > more commonly known as reflinking. The implementation a single [block
> > range, refcount] tree to track the reference counts of extents of
> > physical blocks. There's also support code to provide the desired
> > copy-on-write behavior and the userland interfaces to reflink, query
> > the status of, and un-reflink files.
>
> This is cool work. I have a random thought to share... IIRC, you keep a
> per-inode flag to avoid expensive ops on files that have no refcounted
> blocks. ZFS keeps a bit in each block pointer to indicate that the target
> is dedup'd. I'd have to check if xfs has a spare bit in its block pointer,
> but if it does that's one way to minimize the refcount btree overhead.
No, we don't. We'd have to steal a bit from the extent length field,
similar to the way unwritten extents were implemented.
As it is, we still need a separate tree to track the shared extent
refcounts, so making this more fine grained to optimise freeing of
extents can be looked at further down the track once we have an idea
where the bottlenecks in the shared extent system are....
Cheers,
Dave.
--
Dave Chinner
david@fromorbit.com
_______________________________________________
xfs mailing list
xfs@oss.sgi.com
http://oss.sgi.com/mailman/listinfo/xfs
prev parent reply other threads:[~2015-08-01 22:58 UTC|newest]
Thread overview: 37+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-07-29 22:32 [RFC v2 00/24] xfs: add reflink and dedupe support Darrick J. Wong
2015-07-29 22:33 ` [PATCH 01/24] xfs: introduce refcount btree definitions Darrick J. Wong
2015-07-29 22:33 ` [PATCH 02/24] xfs: define tracepoints for refcount/reflink activities Darrick J. Wong
2015-07-29 22:33 ` [PATCH 03/24] xfs: add refcount btree stats infrastructure Darrick J. Wong
2015-07-30 0:34 ` Dave Chinner
2015-07-30 19:04 ` Darrick J. Wong
2015-07-29 22:33 ` [PATCH 04/24] xfs: refcount btree add more reserved blocks Darrick J. Wong
2015-07-30 0:35 ` Dave Chinner
2015-07-30 19:09 ` Darrick J. Wong
2015-07-29 22:33 ` [PATCH 05/24] xfs: define the on-disk refcount btree format Darrick J. Wong
2015-07-30 0:42 ` Dave Chinner
2015-07-30 22:14 ` Darrick J. Wong
2015-07-29 22:33 ` [PATCH 06/24] xfs: add refcount btree support to growfs Darrick J. Wong
2015-07-29 22:33 ` [PATCH 07/24] xfs: add refcount btree operations Darrick J. Wong
2015-07-30 0:51 ` Dave Chinner
2015-07-29 22:33 ` [PATCH 08/24] libxfs: adjust refcount of an extent of blocks in refcount btree Darrick J. Wong
2015-07-29 22:33 ` [PATCH 09/24] libxfs: adjust refcount when unmapping file blocks Darrick J. Wong
2015-07-29 22:34 ` [PATCH 10/24] xfs: add refcount btree block detection to log recovery Darrick J. Wong
2015-07-29 22:34 ` [PATCH 11/24] xfs: map an inode's offset to an exact physical block Darrick J. Wong
2015-07-30 1:04 ` Dave Chinner
2015-07-30 21:09 ` Darrick J. Wong
2015-07-29 22:34 ` [PATCH 12/24] xfs: add reflink feature flag to geometry Darrick J. Wong
2015-07-29 22:34 ` [PATCH 13/24] xfs: create a separate workqueue for copy-on-write activities Darrick J. Wong
2015-07-29 22:34 ` [PATCH 14/24] xfs: implement copy-on-write for reflinked blocks Darrick J. Wong
2015-07-29 22:34 ` [PATCH 15/24] xfs: handle directio " Darrick J. Wong
2015-07-29 22:34 ` [PATCH 16/24] xfs: copy-on-write reflinked blocks when zeroing ranges of blocks Darrick J. Wong
2015-07-29 22:34 ` [PATCH 17/24] xfs: clear inode reflink flag when freeing blocks Darrick J. Wong
2015-07-29 22:34 ` [PATCH 18/24] xfs: reflink extents from one file to another Darrick J. Wong
2015-07-29 22:35 ` [PATCH 19/24] xfs: add clone file and clone range ioctls Darrick J. Wong
2015-07-29 22:35 ` [PATCH 20/24] xfs: emulate the btrfs dedupe extent same ioctl Darrick J. Wong
2015-07-29 22:35 ` [PATCH 21/24] xfs: teach fiemap about reflink'd extents Darrick J. Wong
2015-07-29 22:35 ` [PATCH 22/24] xfs: swap inode reflink flags when swapping inode extents Darrick J. Wong
2015-08-01 12:51 ` Josef 'Jeff' Sipek
2015-07-29 22:35 ` [PATCH 23/24] xfs: support XFS_XFLAG_REFLINK (and FS_NOCOW_FL) on reflink filesystems Darrick J. Wong
2015-07-29 22:35 ` [PATCH 24/24] xfs: recognize the reflink feature bit Darrick J. Wong
2015-08-01 13:01 ` [RFC v2 00/24] xfs: add reflink and dedupe support Josef 'Jeff' Sipek
2015-08-01 22:58 ` Dave Chinner [this message]
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=20150801225817.GS16638@dastard \
--to=david@fromorbit.com \
--cc=darrick.wong@oracle.com \
--cc=jeffpc@josefsipek.net \
--cc=xfs@oss.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