From: John Garry <john.g.garry@oracle.com>
To: Christoph Hellwig <hch@lst.de>
Cc: brauner@kernel.org, djwong@kernel.org, cem@kernel.org,
dchinner@redhat.com, ritesh.list@gmail.com,
linux-xfs@vger.kernel.org, linux-fsdevel@vger.kernel.org,
linux-kernel@vger.kernel.org, martin.petersen@oracle.com
Subject: Re: [PATCH v2 0/7] large atomic writes for xfs
Date: Fri, 13 Dec 2024 17:15:55 +0000 [thread overview]
Message-ID: <51f5b96e-0a7e-4a88-9ba2-2d67c7477dfb@oracle.com> (raw)
In-Reply-To: <20241213143841.GC16111@lst.de>
On 13/12/2024 14:38, Christoph Hellwig wrote:
> On Tue, Dec 10, 2024 at 12:57:30PM +0000, John Garry wrote:
>> Currently the atomic write unit min and max is fixed at the FS blocksize
>> for xfs and ext4.
>>
>> This series expands support to allow multiple FS blocks to be written
>> atomically.
>
> Can you explain the workload you're interested in a bit more?
Sure, so some background is that we are using atomic writes for innodb
MySQL so that we can stop relying on the double-write buffer for crash
protection. MySQL is using an internal 16K page size (so we want 16K
atomic writes).
MySQL has what is known as a REDO log - see
https://dev.mysql.com/doc/dev/mysql-server/9.0.1/PAGE_INNODB_REDO_LOG.html
Essentially it means that for any data page we write, ahead of time we
do a buffered 512B log update followed by a periodic fsync. I think that
such a thing is common to many apps.
>
> I'm still very scared of expanding use of the large allocation sizes.
Yes
>
> IIRC you showed some numbers where increasing the FSB size to something
> larger did not look good in your benchmarks, but I'd like to understand
> why. Do you have a link to these numbers just to refresh everyones minds
> why that wasn't a good idea.
I don't think that I can share numbers, but I will summarize the findings.
When we tried just using 16K FS blocksize, we found for low thread count
testing that performance was poor - even worse baseline of 4K FS
blocksize and double-write buffer. We put this down to high write
latency for REDO log. As you can imagine, mostly writing 16K for only a
512B update is not efficient in terms of traffic generated and increased
latency (versus 4K FS block size). At higher thread count, performance
was better. We put that down to bigger log data portions to be written
to REDO per FS block write.
For 4K FS blocksize and 16K atomic writes configs - supported via
forcealign or RTvol - performance will generally good across the board.
forcealign was a bit better.
We also tried a hybrid solution with 2x partitions - 1x partition with
16K FS block size for data and 1x partition with 4K FS block size for
REDO. Performance here was good also. Unfortunately, though, this config
is not fit for production - that is because we have a requirement to do
FS snapshot and that is not possible over 2x FS instances. We also did
consider block device snapshot, but there is reluctance to try this also.
> Did that also include supporting atomic
> writes in the sector size <= write size <= FS block size range, which
> aren't currently supported, but very useful?
I have no use for that so far.
Thanks,
John
next prev parent reply other threads:[~2024-12-13 17:16 UTC|newest]
Thread overview: 29+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-12-10 12:57 John Garry
2024-12-10 12:57 ` [PATCH v2 1/7] iomap: Increase iomap_dio_zero() size limit John Garry
2024-12-10 12:57 ` [PATCH v2 2/7] iomap: Add zero unwritten mappings dio support John Garry
2024-12-11 23:47 ` Darrick J. Wong
2024-12-12 10:40 ` John Garry
2024-12-12 20:40 ` Darrick J. Wong
2024-12-13 10:43 ` John Garry
2024-12-13 14:47 ` Christoph Hellwig
2024-12-14 0:56 ` Darrick J. Wong
2024-12-17 7:08 ` Christoph Hellwig
2024-12-18 11:15 ` John Garry
2025-01-08 1:26 ` Darrick J. Wong
2025-01-08 11:39 ` John Garry
2025-01-08 17:42 ` Darrick J. Wong
2025-01-09 7:54 ` Christoph Hellwig
2025-01-10 11:59 ` John Garry
2024-12-10 12:57 ` [PATCH v2 3/7] iomap: Lift blocksize restriction on atomic writes John Garry
2024-12-10 12:57 ` [PATCH v2 4/7] xfs: Add extent zeroing support for " John Garry
2024-12-10 12:57 ` [PATCH v2 5/7] xfs: Switch atomic write size check in xfs_file_write_iter() John Garry
2024-12-10 12:57 ` [PATCH v2 6/7] xfs: Add RT atomic write unit max to xfs_mount John Garry
2024-12-10 12:57 ` [PATCH v2 7/7] xfs: Update xfs_get_atomic_write_attr() for large atomic writes John Garry
2024-12-13 14:38 ` [PATCH v2 0/7] large atomic writes for xfs Christoph Hellwig
2024-12-13 17:15 ` John Garry [this message]
2024-12-13 17:22 ` Christoph Hellwig
2024-12-13 17:43 ` John Garry
2024-12-14 0:42 ` Darrick J. Wong
2024-12-16 8:40 ` John Garry
2024-12-17 7:11 ` Christoph Hellwig
2024-12-17 8:23 ` John Garry
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=51f5b96e-0a7e-4a88-9ba2-2d67c7477dfb@oracle.com \
--to=john.g.garry@oracle.com \
--cc=brauner@kernel.org \
--cc=cem@kernel.org \
--cc=dchinner@redhat.com \
--cc=djwong@kernel.org \
--cc=hch@lst.de \
--cc=linux-fsdevel@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-xfs@vger.kernel.org \
--cc=martin.petersen@oracle.com \
--cc=ritesh.list@gmail.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
all inboxes | Powered by JetHome®