Re: [PATCH 1/8] midx: start tracking per object database source
From: Patrick Steinhardt <hidden>
Date: 2025-07-15 08:26:42
On Thu, Jul 10, 2025 at 07:19:16PM -0400, Taylor Blau wrote:
On Thu, Jul 10, 2025 at 07:10:02PM -0400, Taylor Blau wrote:quoted
On Wed, Jul 09, 2025 at 09:54:49AM +0200, Patrick Steinhardt wrote:quoted
Multi-pack indices are tracked via `struct multi_pack_index`. This data structure is stored as a linked list inside `struct object_database`, which is the global database that spans across all of the object sources. This layout causes two problems: - Multi-pack indices aren't global to an object database, but instead there can be one multi-pack index per source. This creates a mismatch between the on-disk layout and how things are organized in the object database subsystems and makes some parts, like figuring out whether a source has an MIDX, quite awkward.This is a little confusing to me. What do we consider to be an "object database", and what do we consider to be a "source"? For instance, if I have a repository with one or more alternates, I would imagine that each alternate is a separate "source", and the sources together comprise the object database. Does that match the way you're thinking about it? If so, that makes sense. But if not (i.e., we consider all alternates to belong to the same object database and share a single source), then I don't know how this will interact with the existing MIDX alternates mechanism. Some clarification here would be helpful, I think.Ahh..., after applying part of this series locally, the documentation in "struct odb_source" clarifies that (at least as of yet) there is one source per alternate, along with a source for the local object database, and that these collection of sources comprise the object database. Makes sense.
I'll still add a note, as all of this is a rather recent development. Doesn't hurt to reiterate some of those points. Patrick