From: Austin S Hemmelgarn <ahferroin7@gmail.com>
To: Hugo Mills <hugo@carfax.org.uk>,
Sandy McArthur <sandymac@gmail.com>,
Toggenburger Lukas <Lukas.Toggenburger@htwchur.ch>,
"linux-btrfs@vger.kernel.org" <linux-btrfs@vger.kernel.org>
Subject: Re: Working on Btrfs as topic for master thesis
Date: Tue, 21 Jan 2014 11:59:32 -0500 [thread overview]
Message-ID: <52DEA774.2070603@gmail.com> (raw)
In-Reply-To: <20140121165200.GF3314@carfax.org.uk>
On 2014-01-21 11:52, Hugo Mills wrote:
> On Tue, Jan 21, 2014 at 07:25:43AM -0500, Austin S Hemmelgarn wrote:
>> On 2014-01-21 01:42, Sandy McArthur wrote:
>>> On Mon, Jan 20, 2014 at 7:20 AM, Austin S Hemmelgarn
>>> <ahferroin7@gmail.com> wrote:
>>>>
>>>> On 2014-01-16 14:23, Toggenburger Lukas wrote:
>>>>> 3. Improving subvolume handling regarding taking recursive snapshots ( https://btrfs.wiki.kernel.org/index.php/Project_ideas#Take_recursive_snapshots ) and taking snapshots of arbitrary directories ( https://btrfs.wiki.kernel.org/index.php/Project_ideas#Snapshot_arbitrary_directories )
>>>>
>>>> Another option that I would personally love to see would be support for
>>>> write-mostly devices (that is, devices in a RAID1/RAID10 setup that only
>>>> get written too unless the data can't be found elsewhere). This would
>>>> in particular provide an alternative to using bcache/dm-cache (namely an
>>>> SSD and HDD in RAID1 with the HDD set to write-mostly).
>>>> Based on the current development focus, I don't think anybody is working
>>>> on this already (I would be, but I don't have either the time or the
>>>> skills with kernel programming that would be needed).
>>>
>>> Maybe this happens already: Might a similar effect be automatically
>>> achieved by tracking per-device I/O load averages and distributing
>>> reads based on the I/O loads of possible read devices?
>>>
>> That might be the case, it depends on how the I/O load averages are
>> calculated. I actually hadn't realized BTRFS did this, I thought it
>> behaved more like MD RAID (that is, distributing the reads among devices
>> in a un-weighted round-robin fashion).
>
> I think David tried that a while ago, and the benchmarks were
> actually worse. I'm not sure how much investigation he did into why,
> though.
>
> Hugo.
>
If he implemented it such that it waited for the write to complete to
all devices before returning from the call to write(), then it is very
easy to see how it could be worse. The trick (for writes at least) is
to wait synchronously for all of the non-writemostly devices to finish
the write, then return from write() and have a background thread cleanup
if there are write errors on the writemostly devices (at that point, you
already have a (probably) good copy on the other devices that you could
replicate to the device that failed the write).
As for the reads, you would only need to find some way to exclude the
writemostly devices from the read-scheduling code unless the read is
because of a read error on the other devices.
next prev parent reply other threads:[~2014-01-21 16:59 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-01-16 19:23 Working on Btrfs as topic for master thesis Toggenburger Lukas
2014-01-17 15:34 ` David Sterba
2014-01-17 16:04 ` Tomasz Torcz
2014-01-18 12:50 ` Toggenburger Lukas
2014-01-22 12:05 ` David Sterba
2014-01-22 13:35 ` Hugo Mills
2014-01-20 5:44 ` Roger Binns
2014-01-22 12:12 ` David Sterba
2014-01-22 20:55 ` Roger Binns
2014-01-23 18:36 ` David Sterba
2014-01-23 21:47 ` Roger Binns
2014-01-20 12:20 ` Austin S Hemmelgarn
2014-01-21 6:42 ` Sandy McArthur
2014-01-21 12:25 ` Austin S Hemmelgarn
2014-01-21 16:52 ` Hugo Mills
2014-01-21 16:59 ` Austin S Hemmelgarn [this message]
2014-01-22 12:20 ` David Sterba
2014-01-22 12:24 ` David Sterba
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=52DEA774.2070603@gmail.com \
--to=ahferroin7@gmail.com \
--cc=Lukas.Toggenburger@htwchur.ch \
--cc=hugo@carfax.org.uk \
--cc=linux-btrfs@vger.kernel.org \
--cc=sandymac@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