On Thu, May 22, 2025 at 05:13:55PM -0500, Justin Tobler wrote: > On 25/05/14 07:12AM, Patrick Steinhardt wrote: > > The `object_directory` structure is used as an access point for a single > > object directory like ".git/objects". While the structure isn't yet > > fully self-contained, the intent is for it to eventually contain all > > information required to access objects in one specific location. > > > > While the name "object directory" is a good fit for now, this will > > change over time as we continue with the agenda to make pluggable object > > databases a thing. Eventually, objects may not be accessed via any kind > > of directory at all anymore, but they could instead be backed by any > > kind of durable storage mechanism. While it seems quite far-fetched for > > now, it is thinkable that eventually this might even be some form of a > > database, for example. > > > > As such, the current name of this structure will become worse over time > > as we evolve into the direction of pluggable ODBs. Immediate next steps > > will start to carve out proper self-contained object directories, which > > requires us to pass in these object directories as parameters. Based on > > our modern naming schema this means that those functions should then be > > named after their subsystem, which means that we would start to bake the > > current name into the codebase more and more. > > > > Let's preempt this by renaming the structure to `odb_alternate` now > > already. This name is agnostic of how exactly objects are stored while > > still specifically pinpointing that this is about an alternate object > > database. Furthermore, it is already used in Git to represent this > > context -- the only stretch is that the primary object directory is now > > the primary alternate. > > I know the naming here has been discussed in other threads, but > `odb_alternate` doesn't feel quite right to me. When I think of an > object database alternate, I think of the additional object sources that > may be configured for a repository. > > From my understanding, the `odb_alternate` here applies to any object > source, even the main one. Using "alternate" makes me think there is > another object database somewhere which may be confusing in scenarios > where there would only be one. Yeah, I do get that. On the other hand I don't think it's too much of a stretch: the local object directory of one repository is another repo's alternate. Furthermore, we already do have the distinction between "local" and "non-local" objects, which translates quite well into this new naming schema. > Ultimately I don't want to bikeshed too much on names, but wanted to > voice my thoughts. As an alternative to "alternate", maybe we could do > `object_source`? :) If we were picking something more "generic" I'd favor `odb_backend` over `object_source`, to be honest. But we have agreed in the previous version of this patch series that this isn't the way to go. So I'm not quite convinced that `object_source` is better, and if we were to go this way I'd also rather call it `odb_source`. If others agree that `odb_source` is better than `odb_alternate` I'm happy to adapt. But until then I'd rather leave things as-is. Thanks! Patrick