All of lore.kernel.org
 help / color / mirror / Atom feed
From: Christoph Anton Mitterer <calestyo@scientia.net>
To: "Austin S. Hemmelgarn" <ahferroin7@gmail.com>
Cc: Btrfs BTRFS <linux-btrfs@vger.kernel.org>
Subject: Re: RedHat 7.4 Release Notes: "Btrfs has been deprecated" - wut?
Date: Mon, 14 Aug 2017 21:39:57 +0200	[thread overview]
Message-ID: <1502739597.5384.1.camel@scientia.net> (raw)
In-Reply-To: <b0e0e9e4-5b7f-ac84-b05c-8724762b16ea@gmail.com>

[-- Attachment #1: Type: text/plain, Size: 3244 bytes --]

On Mon, 2017-08-14 at 10:23 -0400, Austin S. Hemmelgarn wrote:
> Assume you have higher level verification.  Would you rather not be
> able 
> to read the data regardless of if it's correct or not, or be able to 
> read it and determine yourself if it's correct or not?

What would be the difference here then to the CoW+checksuming+some-
data-corruption-case?!
btrfs would also give EIO and all these applications you mention would
fail then.

As I've said previous, one could provide end users with the means to
still access the faulty data. Or they could simply mount with
nochecksum.




> For almost 
> anybody, the answer is going to be the second case, because the 
> application knows better than the OS if the data is correct (and 
> 'correct' may be a threshold, not some binary determination).
You've made that claim already once with VMs and DBs, and your claim
proved simply wrong.

Most applications don't do this kind of verification.

And those that do probably rather just check whether the data is valid
and if not give an error or at best fall back to some automatical
backups (e.g. what package managers do).

I'd know only few programs who'd really be capable to use data they
know is bogus and recover from that automagically... the only examples
I'd know are some archive formats which include error correcting codes.
And I really mean using the blocks for recovery for which the csum
wouldn't verify (i.e. the ones that gives an EIO)... without ECCs, how
would a program know what do to with such data?


I cannot image that many people would choose the second option, to be
honest.
Working with bogus data?! What should be the benefit of this?



>   At that 
> point, you need to make the checksum error a warning instead of 
> returning -EIO.  How do you intend to communicate that warning back
> to 
> the application?  The kernel log won't work, because on any
> reasonably 
> secure system it's not visible to anyone but root.

Still same problem with CoW + any data corruption...

>   There's also no side 
> channel for the read() system calls that you can utilize.  That then 
> means that the checksums end up just being a means for the
> administrator 
> to know some data wasn't written correctly, but they should know
> that 
> anyway because the system crashed.

No, they'd have no idea if any / which data was written during the
crash.



> Looking at this from a different angle: Without background, what
> would 
> you assume the behavior to be for this?  For most people, the
> assumption 
> would be that this provides the same degree of data safety that the 
> checksums do when the data is CoW.

I don't think the average use would have any such assumption. Most
people likely don't even know that there is implicitly no checksuming
if nodatacow is enabled.


What people may however have heard of is, that btrfs does doe
checksuming and they'd assume that their filesystem gives them always
just valid data (or an error)... and IMO that's actually what each
modern fs should do per default.
Relying on higher levels providing such means is simply not realistic.



Cheers,
Chris.

[-- Attachment #2: smime.p7s --]
[-- Type: application/x-pkcs7-signature, Size: 5930 bytes --]

      parent reply	other threads:[~2017-08-14 19:40 UTC|newest]

Thread overview: 63+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-08-02  8:38 RedHat 7.4 Release Notes: "Btrfs has been deprecated" - wut? Brendan Hide
2017-08-02  9:11 ` Wang Shilong
2017-08-03 19:18   ` Chris Murphy
2017-08-02 11:25 ` Austin S. Hemmelgarn
2017-08-02 12:55   ` Lutz Vieweg
2017-08-02 13:47     ` Austin S. Hemmelgarn
2017-08-02 18:44 ` Chris Mason
2017-08-02 22:12   ` Fajar A. Nugraha
2017-08-02 22:22 ` Chris Murphy
2017-08-03  9:59   ` Lutz Vieweg
2017-08-03 18:08 ` waxhead
2017-08-03 18:29   ` Christoph Anton Mitterer
2017-08-03 19:22     ` Austin S. Hemmelgarn
2017-08-03 20:45       ` Brendan Hide
2017-08-03 22:00         ` Chris Murphy
2017-08-04 11:26         ` Austin S. Hemmelgarn
2017-08-03 19:03   ` Austin S. Hemmelgarn
2017-08-04  9:48     ` Duncan
2017-08-16 18:07   ` David Sterba
2017-08-04 14:05 ` Qu Wenruo
2017-08-04 23:55   ` Wang Shilong
2017-08-07 15:27   ` Chris Murphy
2017-08-10  0:35     ` Qu Wenruo
2017-08-12  0:10       ` Christoph Anton Mitterer
2017-08-12  7:42         ` Christoph Hellwig
2017-08-12 11:51           ` Christoph Anton Mitterer
2017-08-12 12:12             ` Hugo Mills
2017-08-13 14:08               ` Goffredo Baroncelli
2017-08-14  7:08                 ` Qu Wenruo
2017-08-14 14:23                   ` Goffredo Baroncelli
2017-08-14 19:08                     ` Chris Murphy
2017-08-14 20:27                       ` Goffredo Baroncelli
2017-08-14  6:36           ` Qu Wenruo
2017-08-14  7:43             ` Paul Jones
2017-08-14  7:46               ` Qu Wenruo
2017-08-14 12:32                 ` Christoph Anton Mitterer
2017-08-14 12:58                   ` Qu Wenruo
2017-08-14 12:24             ` Christoph Anton Mitterer
2017-08-14 14:23               ` Austin S. Hemmelgarn
2017-08-14 15:13                 ` Graham Cobb
2017-08-14 15:53                   ` Austin S. Hemmelgarn
2017-08-14 16:42                     ` Graham Cobb
2017-08-14 19:54                     ` Christoph Anton Mitterer
2017-08-15 11:37                       ` Austin S. Hemmelgarn
2017-08-15 14:41                         ` Christoph Anton Mitterer
2017-08-15 15:43                           ` Austin S. Hemmelgarn
2017-08-16 13:12                       ` Chris Mason
2017-08-16 13:31                         ` Christoph Anton Mitterer
2017-08-16 13:53                           ` Austin S. Hemmelgarn
2017-08-16 14:11                             ` Christoph Anton Mitterer
2017-08-16 15:07                               ` Austin S. Hemmelgarn
2017-08-16 17:26                                 ` Peter Grandi
2017-08-16 18:19                             ` David Sterba
2017-08-16 16:54                           ` Peter Grandi
2017-08-16 13:56                         ` Austin S. Hemmelgarn
2017-08-16 14:01                         ` Qu Wenruo
2017-08-16 19:52                           ` Chris Murphy
2017-08-17  6:25                             ` GWB
2017-08-17 11:47                               ` Austin S. Hemmelgarn
2017-08-17 19:00                                 ` Chris Murphy
2017-08-17 20:34                                   ` GWB
2017-08-16 16:44                         ` Peter Grandi
2017-08-14 19:39                 ` Christoph Anton Mitterer [this message]

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=1502739597.5384.1.camel@scientia.net \
    --to=calestyo@scientia.net \
    --cc=ahferroin7@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.