* Kickstarting snapshot-aware defrag?
@ 2017-10-03 13:32 Niccolò Belli
2017-10-04 7:01 ` Duncan
0 siblings, 1 reply; 2+ messages in thread
From: Niccolò Belli @ 2017-10-03 13:32 UTC (permalink / raw)
To: linux-btrfs; +Cc: Josef Bacik
Hi,
It seems to me that the proposal[1] for a snapshot-aware defrag has long
been abandoned. Since most peoples badly need this feature I tought about
how to possibly speed up the achievement of this goal.
I know of several bounty-based kickstarting platforms, among them the best
ones are probably bountysource.com[2] and freedomsponsors.org[3].
With both platforms everyone interested can place a bounty on the issue and
if/when there will be someone interested to implement it he will get the
bounty.
I created an issue on both of them just to show how the platform will
handle it.
Since btrfs is a small community, before actually placing bounties and
sponsoring it I would like to know if there is someone against this
development model or someone interested in implementing a feature because
of a bounty.
Bests,
Niccolò
[1]https://www.spinics.net/lists/linux-btrfs/msg34539.html
[2]https://www.bountysource.com/issues/50004702-feature-request-snapshot-aware-defrag
[3]https://freedomsponsors.org/issue/817/feature-request-snapshot-aware-defrag?alert=KICKSTART
^ permalink raw reply [flat|nested] 2+ messages in thread
* Re: Kickstarting snapshot-aware defrag?
2017-10-03 13:32 Kickstarting snapshot-aware defrag? Niccolò Belli
@ 2017-10-04 7:01 ` Duncan
0 siblings, 0 replies; 2+ messages in thread
From: Duncan @ 2017-10-04 7:01 UTC (permalink / raw)
To: linux-btrfs
Niccolò Belli posted on Tue, 03 Oct 2017 15:32:22 +0200 as excerpted:
> Hi,
> It seems to me that the proposal[1] for a snapshot-aware defrag has long
> been abandoned. Since most peoples badly need this feature I tought
> about how to possibly speed up the achievement of this goal.
AFAIK it hasn't been /abandoned/, tho agreed it could seem that way on
the surface. Rather, it was tried, and it simply didn't scale, making
defrag slow to effective impracticality (a snapshot-aware defrag that
takes a month might as well not exist at all), because many of the
operations it had to do behind the scenes simply didn't scale.
So the first attempt was rolled back so people could at least defrag in
reasonable time again, even if it was no longer snapshot-aware.
Now before snapshot-aware defrag can work reasonably, all those various
scaling issues have to be addressed. That's happening, but it's not
something that can be done, at least not done /right/, in a day.
Now I'm not a dev, but if I've been following the patches and discussion
properly, perhaps the biggest scaling issue has been the lack of an
ability to reverse-trace something in particular -- the lists work one
way and that's fast, but reversing things means going thru the entire
list looking for the item(s) of interest... and snapshot-aware-defrag
isn't the only thing with the problem, just the easiest to disable as a
workaround. The same root problem is the reason TB-scale btrfs check
takes so much memory in normal mode, or so long in low-memory-mode, and
it's the reason behind the performance issues with qgroup-enabled
balance, thus the recommendation to disable qgroups if your balance is
taking unreasonably long, etc.
Without getting too far into stuff I'm not entirely sure about as a non-
dev, I believe a solution is known in general, but it's only recently
being looked at for implementation, because there were other more
pressing things that kept coming up, stuff that ended up needing fixed
first, etc. And this /might/ be one of the things that's going to take
an on-device format change as well, that they're saving up in a list so
they can do them all together, for one more major change before the final
push to official btrfs stability, something I've seen mentioned in other
contexts, tho I'm not positive that it applies to this particular issue.
So bottom line, they're working on it, but it's not something that's
going to be done in a day, or even a year, as time has demonstrated.
It's /not/ abandoned, and sure, it could be turned back on with little
effort in a kernel release cycle or two if they wanted, but until the
scaling issues are fixed, that wouldn't help, because while some of the
issues have been fixed and it might take a week to do an hour's work now
instead of a month, or even "only" a day now, that's not going to change
the fact that it's not going to be particularly practical, and a non-
snapshot-aware defrag that actually works in reasonable time remains far
more practical than a snapshot-aware defrag that takes that long.
> I know of several bounty-based kickstarting platforms, among them the
> best ones are probably bountysource.com[2] and freedomsponsors.org[3].
> With both platforms everyone interested can place a bounty on the issue
> and if/when there will be someone interested to implement it he will get
> the bounty.
> I created an issue on both of them just to show how the platform will
> handle it.
>
> Since btrfs is a small community, before actually placing bounties and
> sponsoring it I would like to know if there is someone against this
> development model or someone interested in implementing a feature
> because of a bounty.
Glad you asked first, because...
Honestly, this is going to go over like a lead balloon. Similar things
have been tried before, and invariably, they fail, because it horribly
clashes with existing kernel culture and practices, and because it
incentivizes the wrong thing.
What happens both with cash bounties, and with similar effect non-cash
bounties such as (bare) "get a patch accepted into the kernel"
requirements for development courses or resume puffery, is that it
clashes with the general kernel developer long view -- the patch series
may end up going thru 20 revisions over the course of a year or more,
fixing complaints from first one subsystem maintainer and then another,
only to finally be rejected in favor of someone else's different approach
because it's more maintainable, or works better with something else to be
built on top, or ... . Or elements of both approaches (or five or six
approaches) may ultimately be combined, and the person who first proposed
a feature may not be the one that gets final authorship even if they
cooperated with the person and approach that did.
Someone interested in a bounty simply isn't going to stick around for all
that.
Additionally, there's a huge interest in developing kernel devs that will
stick around, both to help maintain code they've already submitted, and
to continue to work on other things. Bounty-type solutions encourage
"one-shot-wonders" that disappear and are never seen or heard from
again. While that might be fine for a one-line or even 10-line fix, and
there's normally many such one-shot-fixes in every kernel, those are
trivial fixes that don't normally need a bounty, while the larger
features where a bounty might appear to be useful, really need someone
that's going to stick around to maintain it. But that's not what
bounties encourage!
So a bounty simply isn't useful for kernel work, and proposing such
things, as I said, goes over like a lead balloon, because the experience
with such things has been **BAD**.
OTOH, there's always room for individuals who are using the code
themselves, want to make it better, and take a longer term interest in
learning its ins and outs, and starting small, I've seen suggestions here
to start with the on-disk format and with btrfs-progs, since that doesn't
involve hard kernel issues such as machine-locking lock-inversions, or
data corrupting missing-lock concurrency issues. Similarly for companies
willing to sponsor devs to take the time to come up to speed and make
meaningful contributions, even if it's going to take several man-months
of work before there's going to be much to show for it, and even if those
"meaningful contributions" end up coming in under someone else's
authorship, because that turned out to be the better longer-term solution
to the problem, tho there /was/ significant contribution to the finally
accepted solution, just not on the authorship line.
But again, that's pretty much the utter antithesis of bounties.
> [1]https://www.spinics.net/lists/linux-btrfs/msg34539.html
> [2]https://www.bountysource.com/issues/50004702-feature-request-
snapshot-aware-defrag
> [3]https://freedomsponsors.org/issue/817/feature-request-snapshot-aware-
defrag?alert=KICKSTART
--
Duncan - List replies preferred. No HTML msgs.
"Every nonfree program has a lord, a master --
and if you use the program, he is your master." Richard Stallman
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2017-10-04 7:01 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-10-03 13:32 Kickstarting snapshot-aware defrag? Niccolò Belli
2017-10-04 7:01 ` Duncan
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).