Thread (41 messages) 41 messages, 5 authors, 10d ago

Re: [PATCH v2 6/8] repack: track the preferred pack explicitly in MIDX write steps

flat view

From: Jeff King <hidden>
Date: 2026-10-03 01:07:22

On Fri, Oct 02, 2026 at 08:00:52PM -0500, Taylor Blau wrote:
On Fri, Oct 02, 2026 at 07:28:34PM -0400, Jeff King wrote:
quoted
On Wed, Sep 30, 2026 at 11:11:58PM -0500, Taylor Blau wrote:
quoted
A MIDX write step marks preferred packs in its string-list entries and
chooses the last marked entry when executing the step. That makes the
choice depend on list order, preventing the list from being sorted for
membership checks.

Record the last candidate directly in the step, borrowing its name from
the write list. This preserves preferred-pack selection while allowing
the list to be sorted without changing that choice.
This is certainly cleaner, though it looks like the existing code works
by marking item->util and then doing a linear search for it. So wouldn't
that work even after sorting?
It would if only one entry were marked, but we can mark several.

For example, when `repack_make_midx_compaction_plan()` folds multiple
MIDX layers into one via a WRITE step, it marks each layer's preferred pack
without clearing the earlier marks. The scan doesn't stop at the first
such mark, and the last marked entry wins.

So sorting would of course preserve the marks, but may change which one
comes last.
OK, that does make more sense. Re-reading your commit message again, I
see it even says that, but somehow it didn't quite sink in the first
time for me.

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