From: "Austin S. Hemmelgarn" <ahferroin7@gmail.com>
To: Duncan <1i5t5.duncan@cox.net>, linux-btrfs@vger.kernel.org
Subject: Re: dear developers, can we have notdatacow + checksumming, plz?
Date: Tue, 22 Dec 2015 07:16:38 -0500 [thread overview]
Message-ID: <56793F26.1030302@gmail.com> (raw)
In-Reply-To: <pan$b5e12$31be6ea6$fd54b60e$5d72fa7a@cox.net>
On 2015-12-22 04:12, Duncan wrote:
> Austin S. Hemmelgarn posted on Mon, 21 Dec 2015 08:36:02 -0500 as
> excerpted:
>
>> On 2015-12-16 21:09, Christoph Anton Mitterer wrote:
>
>>> On Tue, 2015-12-15 at 11:00 -0500, Austin S. Hemmelgarn wrote:
>
>>>> nodatacow only [avoids fragmentation] if the file is
>>>> pre-allocated, if it isn't, then it still ends up fragmented.
>
>>> Hmm is that "it may end up fragmented" or a "it will definitely? Cause
>>> I'd have hoped, that if nothing else had been written in the meantime,
>>> btrfs would perhaps try to write next to the already allocated blocks.
>
>> If there are multiple files being written, then there is a relatively
>> high probability that they will end up fragmented if they are more than
>> about 64k and aren't pre-allocated.
>
> Does the 30-second-by-default commit window (and similarly 30-second-
> default dirty-flush-time at the VFS level) modify this at all? It has
> been my assumption that same-file writes accumulated during this time
> should merge, increasing efficiency and decreasing fragmentation (both
> with and without nocow), tho of course further writes outside this 30-
> second window will likely trigger it, if other files have been written in
> parallel or in the mean time.
>
I think it does, but not much, and it depends on the workload. I do
notice less fragmentation on the filesystems I increase the commit
window on, and more on ones I decrease it, but the difference is pretty
small as long as you use something reasonable (I've never tested
anything higher than 300, and I rarely go above 60). My guess based on
what the commit window is for (namely, it's the amount of time the log
tree gets updated before forcing a transaction to be committed) would be
that it has less effect if stuff is regularly calling fsync().
prev parent reply other threads:[~2015-12-22 12:17 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-12-14 4:59 dear developers, can we have notdatacow + checksumming, plz? Christoph Anton Mitterer
2015-12-14 6:42 ` Russell Coker
2015-12-15 1:02 ` Christoph Anton Mitterer
2015-12-14 14:16 ` Austin S. Hemmelgarn
2015-12-15 3:15 ` Christoph Anton Mitterer
2015-12-15 16:00 ` Austin S. Hemmelgarn
2015-12-16 9:15 ` Duncan
2015-12-16 9:55 ` Duncan
2015-12-17 2:09 ` Christoph Anton Mitterer
2015-12-21 13:36 ` Austin S. Hemmelgarn
2015-12-22 9:12 ` Duncan
2015-12-22 12:16 ` Austin S. Hemmelgarn [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=56793F26.1030302@gmail.com \
--to=ahferroin7@gmail.com \
--cc=1i5t5.duncan@cox.net \
--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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox