Thread (44 messages) 44 messages, 4 authors, 2023-06-08

Re: [PATCH v2 0/2] pack-bitmap: boundary-based bitmap traversalt

From: Derrick Stolee <hidden>
Date: 2023-05-05 20:45:42


On 5/5/2023 2:46 PM, Taylor Blau wrote:
On Fri, May 05, 2023 at 01:59:31PM -0400, Derrick Stolee wrote:
quoted
On 5/5/2023 1:27 PM, Taylor Blau wrote:
quoted
Here is a reroll of my series to implement a boundary-based bitmap
traversal algorithm that I worked on towards the end of 2021 with Peff.

The algorithm is unchanged from the last version, but the implementation
has been made much more straightforward, thanks to a very helpful
suggestion from Stolee.

Instead of hackily trying to write down all of the UNINTERESTING commits
between the tips and boundary within limit_list(), we can just perform a
commit-only walk, which will give us the set of commits that we need.
Something that didn't seem to get attention in this version was buried
deep in the commentary of my high-level review [1]:
Oops, sorry, I definitely missed this unintentionally and did not mean
to ignore it.
I had to dig deep to find it, even after knowing it was in there
somewhere, so I'm not upset it didn't happen this version.
quoted
quoted
For these reasons, I'm surprised that this patch completely replaces
the old algorithm for the new one. I would prefer to see a config
option that enables this new algorithm. It would be safer to deploy
that way, too.
I still think it would be nice to keep the two algorithms for at least
a little while instead of completely removing the old one. Let's gather
some more evidence and get more reps in with the new algorithm before
making it the new default. I could imagine a scenario where someone
really wants to spend the extra time to make sure none of the objects
reachable from the UNINTERESTING commits are included in the output of
this diff.

[1] https://lore.kernel.org/git/a143150d-7cf5-c697-0e48-0f7af1c6de8f@github.com/ (local)
Hmm. I'm not opposed to keeping the old algorithm around, though I
wonder what the configuration option would look like here. I imagine
that we don't want to support the old algorithm indefinitely, though.

Perhaps something like `pack.useBoundaryBitmapTraversal` (implied by
`feature.experimental`), defaulting to "false", and then eventually
"true"?
This name makes sense to me. Including it in feature.experimental right
away seems like a good idea. Incrementing it to "true" by default after
a single release would make sense, too, since the performance benefits
are so clear. Just important to have that emergency toggle.

Thanks,
-Stolee
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help