From: Howard Chu <hyc@symas.com>
To: Chris Mason <chris.mason@fusionio.com>,
Matthew Wilcox <willy@linux.intel.com>
Cc: Jeff Moyer <jmoyer@redhat.com>,
Linux FS Devel <linux-fsdevel@vger.kernel.org>,
Jens Axboe <axboe@kernel.dk>
Subject: Re: [PATCH 1/2] block: Add support for atomic writes
Date: Wed, 13 Nov 2013 12:53:48 -0800 [thread overview]
Message-ID: <5283E6DC.8000801@symas.com> (raw)
In-Reply-To: <20131113204438.3802.80855@localhost.localdomain>
Chris Mason wrote:
> Quoting Matthew Wilcox (2013-11-12 10:11:51)
>> I took a look at the SCSI Block Command spec. If I understand it
>> correctly, SCSI would implement this with the WRITE USING TOKEN command.
>> I don't see why it couldn't implement this API, though it seems like
>> SCSI would prefer a separate setup step before the write comes in. I'm
>> not sure that's a reasonable request to make of the application (nor
>> am I sure I understand SBC correctly).
>
> What kind of setup would we have to do? We have all the IO in hand, so
> it can be organized in just about any way needed.
>
>>
>> I like the API, but I'm a little confused not to see a patch saying "Oh,
>> and here's how we implemented it in btrfs without any hardware support"
>> ;-) It seems to me that the concept is just as good a match for an
>> advanced filesystem that supports snapshots as it is for the FTL inside
>> a drive.
>
> Grin, almost Btrfs already does this...COW means that btrfs needs to
> update metadata to point to new locations. To avoid an ugly
> flush-all-the-io-every-commit mess, we track pending writes and update
> the meatadata when the write is fully on media.
>
> We're missing a firm line that makes sure all the metadata updates for a
> single write happen in the same transaction, but that part isn't hard.
>
> We're missing good performance in database workloads, which is a
> slightly bigger trick.
This is precisely why this is needed:
http://www.spinics.net/lists/linux-fsdevel/msg70047.html
--
-- Howard Chu
CTO, Symas Corp. http://www.symas.com
Director, Highland Sun http://highlandsun.com/hyc/
Chief Architect, OpenLDAP http://www.openldap.org/project/
next prev parent reply other threads:[~2013-11-13 20:53 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-11-01 21:27 [PATCH 0/2] Support for atomic IOs Chris Mason
2013-11-01 21:28 ` [PATCH 1/2] block: Add support for atomic writes Chris Mason
2013-11-01 21:47 ` Shaohua Li
2013-11-05 17:43 ` Jeff Moyer
2013-11-07 13:52 ` Chris Mason
2013-11-07 15:43 ` Jeff Moyer
2013-11-07 15:55 ` Chris Mason
2013-11-07 16:14 ` Jeff Moyer
2013-11-07 16:52 ` Chris Mason
2013-11-13 23:59 ` Dave Chinner
2013-11-12 15:11 ` Matthew Wilcox
2013-11-13 20:44 ` Chris Mason
2013-11-13 20:53 ` Howard Chu [this message]
2013-11-13 21:35 ` Matthew Wilcox
2013-11-01 21:29 ` [PATCH 2/3] fs: Add O_ATOMIC support to direct IO Chris Mason
-- strict thread matches above, loose matches on Subject: below --
2013-11-20 8:23 [PATCH 1/2] block: Add support for atomic writes Kishore Sampathkumar
2013-11-26 6:24 Kishore Sampathkumar
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=5283E6DC.8000801@symas.com \
--to=hyc@symas.com \
--cc=axboe@kernel.dk \
--cc=chris.mason@fusionio.com \
--cc=jmoyer@redhat.com \
--cc=linux-fsdevel@vger.kernel.org \
--cc=willy@linux.intel.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.