From: Andrei Borzenkov <arvidjaar@gmail.com>
To: Chris Murphy <lists@colorremedies.com>,
"Gervais, Francois" <FGervais@distech-controls.com>
Cc: "linux-btrfs@vger.kernel.org" <linux-btrfs@vger.kernel.org>
Subject: Re: CoW behavior when writing same content
Date: Tue, 9 Oct 2018 20:25:44 +0300 [thread overview]
Message-ID: <7ea431d5-2966-f0e5-9dec-882e46743a69@gmail.com> (raw)
In-Reply-To: <CAJCQCtTAu8qrcB7cd3dKGstgSd32UjkWB5jZc5jbRJ0KXmHgRQ@mail.gmail.com>
09.10.2018 18:52, Chris Murphy пишет:
> On Tue, Oct 9, 2018 at 8:48 AM, Gervais, Francois
> <FGervais@distech-controls.com> wrote:
>> Hi,
>>
>> If I have a snapshot where I overwrite a big file but which only a
>> small portion of it is different, will the whole file be rewritten in
>> the snapshot? Or only the different part of the file?
>
If you overwrite the whole file, the whole file will be overwritten.
> Depends on how the application modifies files. Many applications write
> out a whole new file with a pseudorandom filename, fsync, then rename.
>
>>
>> Something like:
>>
>> $ dd if=/dev/urandom of=/big_file bs=1M count=1024
>> $ cp /big_file root/
>> $ btrfs sub snap root snapshot
>> $ cp /big_file snapshot/
>>
And which portion of these three files is different? They must be
identical. Not that it really matters, but that does not match your
question.
>> In this case is root/big_file and snapshot/big_file still share the same data?
>
> You'll be left with three files. /big_file and root/big_file will
> share extents,
How comes they share extents? This requires --reflink, is it default now?
> and snapshot/big_file will have its own extents. You'd
> need to copy with --reflink for snapshot/big_file to have shared
> extents with /big_file - or deduplicate.
>
This still overwrites the whole file in the sense original file content
of "snapshot/big_file" is lost. That new content happens to be identical
and that new content will probably be reflinked does not change the fact
that original file is gone.
next prev parent reply other threads:[~2018-10-09 17:25 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-10-09 14:48 CoW behavior when writing same content Gervais, Francois
2018-10-09 15:52 ` Chris Murphy
2018-10-09 16:21 ` Roman Mamedov
2018-10-09 17:25 ` Andrei Borzenkov [this message]
2018-10-09 22:31 ` Chris Murphy
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=7ea431d5-2966-f0e5-9dec-882e46743a69@gmail.com \
--to=arvidjaar@gmail.com \
--cc=FGervais@distech-controls.com \
--cc=linux-btrfs@vger.kernel.org \
--cc=lists@colorremedies.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;
as well as URLs for NNTP newsgroup(s).