linux-xfs.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Dave Chinner <david@fromorbit.com>
To: Amir Goldstein <amir73il@gmail.com>
Cc: Chandan Babu R <chandanrlinux@gmail.com>,
	linux-xfs <linux-xfs@vger.kernel.org>,
	"Darrick J . Wong" <darrick.wong@oracle.com>,
	"Darrick J. Wong" <djwong@kernel.org>,
	Christoph Hellwig <hch@lst.de>,
	Allison Henderson <allison.henderson@oracle.com>,
	"Luis R. Rodriguez" <mcgrof@kernel.org>,
	Theodore Tso <tytso@mit.edu>
Subject: Re: [PATCH V14 00/16] Bail out if transaction can cause extent count to overflow
Date: Wed, 25 May 2022 18:38:14 +1000	[thread overview]
Message-ID: <20220525083814.GH1098723@dread.disaster.area> (raw)
In-Reply-To: <CAOQ4uxi=jZt_FnNktw8u5L90WUcEAtX4jymM126hLTVbw74f=g@mail.gmail.com>

On Wed, May 25, 2022 at 10:48:09AM +0300, Amir Goldstein wrote:
> On Wed, May 25, 2022 at 10:33 AM Dave Chinner <david@fromorbit.com> wrote:
> >
> > On Tue, May 24, 2022 at 08:36:50AM +0300, Amir Goldstein wrote:
> > > On Tue, May 24, 2022 at 1:43 AM Dave Chinner <david@fromorbit.com> wrote:
> > > >
> > > > On Mon, May 23, 2022 at 02:15:44PM +0300, Amir Goldstein wrote:
> > > > > On Sun, Jan 10, 2021 at 6:10 PM Chandan Babu R <chandanrlinux@gmail.com> wrote:
> > >
> > > I am not sure I follow this argument.
> > > Users can create large attributes, can they not?
> >
> > Sure. But *nobody does*, and there are good reasons we don't see
> > people doing this.
> >
> > The reality is that apps don't use xattrs heavily because
> > filesystems are traditionally very bad at storing even moderate
> > numbers of xattrs. XFS is the exception to the rule. Hence nobody is
> > trying to use a few million xattrs per inode right now, and it's
> > unlikely anyone will unless they specifically target XFS.  In which
> > case, they are going to want the large extent count stuff that just
> > got merged into the for-next tree, and this whole discussion is
> > moot....
> 
> With all the barriers to large extents count that you mentioned
> I wonder how large extent counters feature mitigates those,
> but that is irrelevant to the question at hand.

They don't. That's the point I'm trying to make - these patches
don't actually fix any problems with large data fork extent counts -
they just allow them to get bigger.

As I said earlier - the primary driver for these changes is not
growing the number of data extents or reflink - it's growing the
amount of data we can store in the attribute fork. We need to grow
that from 2^16 extents to 2^32 extents because we want to be able to
store hundreds of millions of xattrs per file for internal
filesystem purposes.

Extending the data fork to 2^48 extents at the same time just makes
sense from an on-disk format perspective, not because the current
code can scale effectively to 2^32 extents, but because we're
already changing all that code to support a different attr fork
extent size. We will probably need >2^32 extents in the next decade,
so we're making the change now while we are touching the code....

There are future mods planned that will make large extent counts
bearable, but we don't have any idea how to solve problems like
making reflink go from O(n) to O(log n) to make reflink of
billion extent files an every day occurrence....

Cheers,

Dave.
-- 
Dave Chinner
david@fromorbit.com

      reply	other threads:[~2022-05-25  8:38 UTC|newest]

Thread overview: 31+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-01-10 16:07 [PATCH V14 00/16] Bail out if transaction can cause extent count to overflow Chandan Babu R
2021-01-10 16:07 ` [PATCH V14 01/16] xfs: Add helper for checking per-inode extent count overflow Chandan Babu R
2021-01-10 16:07 ` [PATCH V14 02/16] xfs: Check for extent overflow when trivally adding a new extent Chandan Babu R
2021-01-10 16:07 ` [PATCH V14 03/16] xfs: Check for extent overflow when punching a hole Chandan Babu R
2021-01-10 16:07 ` [PATCH V14 04/16] xfs: Check for extent overflow when adding dir entries Chandan Babu R
2021-01-12  1:34   ` Darrick J. Wong
2021-01-10 16:07 ` [PATCH V14 05/16] xfs: Check for extent overflow when removing " Chandan Babu R
2021-01-12  1:38   ` Darrick J. Wong
2021-01-10 16:07 ` [PATCH V14 06/16] xfs: Check for extent overflow when renaming " Chandan Babu R
2021-01-12  1:37   ` Darrick J. Wong
2021-01-10 16:07 ` [PATCH V14 07/16] xfs: Check for extent overflow when adding/removing xattrs Chandan Babu R
2021-01-10 16:07 ` [PATCH V14 08/16] xfs: Check for extent overflow when writing to unwritten extent Chandan Babu R
2021-01-10 16:07 ` [PATCH V14 09/16] xfs: Check for extent overflow when moving extent from cow to data fork Chandan Babu R
2021-01-10 16:07 ` [PATCH V14 10/16] xfs: Check for extent overflow when remapping an extent Chandan Babu R
2021-01-10 16:07 ` [PATCH V14 11/16] xfs: Check for extent overflow when swapping extents Chandan Babu R
2021-01-10 16:07 ` [PATCH V14 12/16] xfs: Introduce error injection to reduce maximum inode fork extent count Chandan Babu R
2021-01-10 16:07 ` [PATCH V14 13/16] xfs: Remove duplicate assert statement in xfs_bmap_btalloc() Chandan Babu R
2021-01-10 16:07 ` [PATCH V14 14/16] xfs: Compute bmap extent alignments in a separate function Chandan Babu R
2021-01-10 16:07 ` [PATCH V14 15/16] xfs: Process allocated extent " Chandan Babu R
2021-01-10 16:07 ` [PATCH V14 16/16] xfs: Introduce error injection to allocate only minlen size extents for files Chandan Babu R
2022-05-23 11:15 ` [PATCH V14 00/16] Bail out if transaction can cause extent count to overflow Amir Goldstein
2022-05-23 15:50   ` Chandan Babu R
2022-05-23 19:06     ` Amir Goldstein
2022-05-25  5:49       ` Amir Goldstein
2022-05-23 22:43   ` Dave Chinner
2022-05-24  5:36     ` Amir Goldstein
2022-05-24 16:05       ` Amir Goldstein
2022-05-25  8:21         ` Dave Chinner
2022-05-25  7:33       ` Dave Chinner
2022-05-25  7:48         ` Amir Goldstein
2022-05-25  8:38           ` 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=20220525083814.GH1098723@dread.disaster.area \
    --to=david@fromorbit.com \
    --cc=allison.henderson@oracle.com \
    --cc=amir73il@gmail.com \
    --cc=chandanrlinux@gmail.com \
    --cc=darrick.wong@oracle.com \
    --cc=djwong@kernel.org \
    --cc=hch@lst.de \
    --cc=linux-xfs@vger.kernel.org \
    --cc=mcgrof@kernel.org \
    --cc=tytso@mit.edu \
    /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).