All of lore.kernel.org
 help / color / mirror / Atom feed
From: Christoph Hellwig <hch@lst.de>
To: John Garry <john.g.garry@oracle.com>
Cc: Christoph Hellwig <hch@lst.de>,
	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 18:22:43 +0100	[thread overview]
Message-ID: <20241213172243.GA30046@lst.de> (raw)
In-Reply-To: <51f5b96e-0a7e-4a88-9ba2-2d67c7477dfb@oracle.com>

On Fri, Dec 13, 2024 at 05:15:55PM +0000, John Garry wrote:
> 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).

Make perfect sense so far.

>
> 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.

So it's actually using buffered I/O for that and not direct I/O?

> 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.

So if the redo log uses buffered I/O I can see how that would bloat writes.
But then again using buffered I/O for a REDO log seems pretty silly
to start with.


  reply	other threads:[~2024-12-13 17:22 UTC|newest]

Thread overview: 29+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-12-10 12:57 [PATCH v2 0/7] large atomic writes for xfs 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
2024-12-13 17:22     ` Christoph Hellwig [this message]
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=20241213172243.GA30046@lst.de \
    --to=hch@lst.de \
    --cc=brauner@kernel.org \
    --cc=cem@kernel.org \
    --cc=dchinner@redhat.com \
    --cc=djwong@kernel.org \
    --cc=john.g.garry@oracle.com \
    --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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.