From: Arne Jansen <sensille@gmx.net>
To: Gregory Maxwell <gmaxwell@gmail.com>
Cc: Berend Dekens <btrfs@cyberwizzard.nl>, linux-btrfs@vger.kernel.org
Subject: Re: BTRFS and power loss ~= corruption?
Date: Fri, 26 Aug 2011 08:37:14 +0200 [thread overview]
Message-ID: <4E573F1A.2060807@gmx.net> (raw)
In-Reply-To: <CAAS2fgRfW3J441Xv8x6cnKWyKGao-ZGi4_Od=iB-fLX3YixV5g@mail.gmail.com>
On 26.08.2011 01:01, Gregory Maxwell wrote:
> On Wed, Aug 24, 2011 at 9:11 AM, Berend Dekens <btrfs@cyberwizzard.nl> wrote:
> [snip]
>> I thought the idea of COW was that whatever happens, you can always mount in
>> a semi-consistent state?
> [snip]
>
>
> It seems to me that if someone created a block device which recorded
> all write operations a rather excellent test could be constructed
> where a btrfs filesystem is recorded under load and then every partial
> replay is mounted and checked for corruption/data loss.
>
> This would result in high confidence that no power loss event could
> destroy data given the offered load assuming well behaved
> (non-reordering hardware). If it recorded barrier operations the a
> tool could also try many (but probably not all) permissible
> reorderings at every truncation offset.
>
I like the idea. Some more thoughts:
- instead of trying all reorderings it might be enough to just always
deliver the oldest possible copy
- the order in which btrfs writes the data probably depends on the
order in which the device acknowledges the request. You might need
to add some reordering there, too
- you need to produce a wide variety of workloads, as problems might
only occur at a special kind of it (directIO, fsync, snapshots...)
- if there really is a regression somewhere, it would be good to also
include the full block layer into the test, as the regression might
not be in btrfs at all
- as a first small step one could just use blktrace to record the write
order and analyze the order on mount as well
> It seems to me that the existence of this kind of testing is something
> that should be expected of a modern filesystem before it sees
> widescale production use.
> --
next prev parent reply other threads:[~2011-08-26 6:37 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-08-24 13:11 BTRFS and power loss ~= corruption? Berend Dekens
2011-08-24 13:31 ` Arne Jansen
2011-08-24 15:01 ` Berend Dekens
2011-08-24 15:04 ` *** GMX Spamverdacht *** " Arne Jansen
2011-08-24 15:13 ` Berend Dekens
2011-08-24 17:06 ` Mitch Harder
2011-08-24 21:00 ` Ahmed Kamal
2011-08-25 3:31 ` Anand Jain
2011-08-25 17:55 ` Martin Steigerwald
2011-08-25 22:16 ` Maciej Marcin Piechotka
2011-11-09 20:15 ` Martin Steigerwald
2011-08-25 23:01 ` Gregory Maxwell
2011-08-26 6:37 ` Arne Jansen [this message]
2011-08-26 7:48 ` Mike Fleetwood
2011-08-26 9:30 ` Arne Jansen
2011-11-09 17:33 ` Stefan Behrens
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=4E573F1A.2060807@gmx.net \
--to=sensille@gmx.net \
--cc=btrfs@cyberwizzard.nl \
--cc=gmaxwell@gmail.com \
--cc=linux-btrfs@vger.kernel.org \
/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.