git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Patrick Steinhardt <ps@pks.im>
To: Derrick Stolee <stolee@gmail.com>
Cc: git@vger.kernel.org
Subject: Re: [PATCH 02/17] object-store: rename `object_directory` to `odb_backend`
Date: Fri, 9 May 2025 13:25:07 +0200	[thread overview]
Message-ID: <aB3mE2DW0bcmc_WK@pks.im> (raw)
In-Reply-To: <41f4a9f0-e758-49e5-8e88-4659966547c1@gmail.com>

On Tue, May 06, 2025 at 09:00:04PM -0400, Derrick Stolee wrote:
> On 5/6/25 8:51 PM, Derrick Stolee wrote:
> > On 5/6/25 7:09 AM, Patrick Steinhardt wrote:
> 
> > > Let's preempt this by renaming the structure to `odb_backend` now
> > > already. This name is agnostic of how exactly objects are stored and
> > > allows us to easily introduce e.g. a `files_odb_backend` and other
> > > specific implementations over time.
> > 
> > But here's where I'll get a little nitpicky and say that these are
> > "odb"s not "odb_backend"s.
> > 
> > * odb: a single object database. A repo can have multiple, currently
> >    only one that is read/write and multiple read-only alternates.
> > 
> > * odb backend: an _implementation_ of an object database. This would
> >    be the structure that containts a vtable of implementation methods.
> >    Each individual 'odb' would point to a single backend describing
> >    how to access the data in it.
> > 
> > Does that make sense? If we are going through the effort of renaming
> > things, I think it's worth being a little more future-proof here.

Yeah, I agree with you that this can be somewhat confusing indeed. The
problem is that we basically have a database of databases, and that
makes it somewhat awkward to name things.

> And immediately upon sending this message, I went and looked at
> another patch and realized that the rename in Patch 1 would be
> confusing with 'struct object_database' containing a list of
> 'struct odb's.
> 
> Perhaps in my head I was thinking that each repository has an
> "object store" which is an abstraction over possibly multiple
> "odb"s which each are interacted with via one "odb backend"
> (and there may be multiple potential odb backends in the future,
> but only one right now).

I don't think that "store" buys us much over "database" -- it's
ultimately the same thing, from my perspective. The only reason why I
decided to drop "store" in favor of "database" is that it allows us to
use the `odb_` prefix in many places, which is nice.

> If we want to keep the 'object_database' name from patch 1 (or
> replace it with 'odb' for brevity) then we might want a different
> name for each sub-odb. Perhaps 'odb_shard'? 'odb_slice'? Do any
> of these sound better?

I don't quite like either of them. "shard" is a bit too close to the
shards we have in ".git/objects/[0-9a-f]{2}" and may thus easily cause
confusion. And "slice" feels a bit weird because... I dunno. I have to
think too much about slices in Golang.

How about `odb_alternate`? That's exactly what this is -- an alternate
part of the object database. We already use this term, and it does make
sense even in the future once we have pluggable ODBs. Honestly, now that
I think about it's kind of the obvious choice. Lots of the parts of the
codebase were already called accordingly.

Patrick

  reply	other threads:[~2025-05-09 11:25 UTC|newest]

Thread overview: 166+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-05-06 11:09 [PATCH 00/17] object-store: carve out the object database subsystem Patrick Steinhardt
2025-05-06 11:09 ` [PATCH 01/17] object-store: rename `raw_object_store` to `object_database` Patrick Steinhardt
2025-05-07  0:47   ` Derrick Stolee
2025-05-07 15:27     ` Junio C Hamano
2025-05-06 11:09 ` [PATCH 02/17] object-store: rename `object_directory` to `odb_backend` Patrick Steinhardt
2025-05-07  0:51   ` Derrick Stolee
2025-05-07  1:00     ` Derrick Stolee
2025-05-09 11:25       ` Patrick Steinhardt [this message]
2025-05-06 11:09 ` [PATCH 03/17] object-store: rename files to "odb.{c,h}" Patrick Steinhardt
2025-05-06 18:06   ` Derrick Stolee
2025-05-06 11:09 ` [PATCH 04/17] odb: introduce parent pointers Patrick Steinhardt
2025-05-06 11:09 ` [PATCH 05/17] odb: get rid of `the_repository` in `find_odb()` Patrick Steinhardt
2025-05-07  1:10   ` Derrick Stolee
2025-05-09 11:25     ` Patrick Steinhardt
2025-05-06 11:09 ` [PATCH 06/17] odb: get rid of `the_repository` in `assert_oid_type()` Patrick Steinhardt
2025-05-06 11:09 ` [PATCH 07/17] " Patrick Steinhardt
2025-05-07  1:12   ` Derrick Stolee
2025-05-09 11:25     ` Patrick Steinhardt
2025-05-06 11:09 ` [PATCH 08/17] odb: get rid of `the_repository` when handling alternates Patrick Steinhardt
2025-05-07  1:14   ` Derrick Stolee
2025-05-06 11:09 ` [PATCH 09/17] odb: get rid of `the_repository` in `for_each()` functions Patrick Steinhardt
2025-05-07  1:21   ` Derrick Stolee
2025-05-09 11:25     ` Patrick Steinhardt
2025-05-12 18:28       ` Derrick Stolee
2025-05-06 11:09 ` [PATCH 10/17] odb: get rid of `the_repository` when handling the primary backend Patrick Steinhardt
2025-05-06 11:09 ` [PATCH 11/17] odb: get rid of `the_repository` when handling submodule backends Patrick Steinhardt
2025-05-07  1:25   ` Derrick Stolee
2025-05-07  1:29     ` Derrick Stolee
2025-05-06 11:09 ` [PATCH 12/17] odb: trivial refactorings to get rid of `the_repository` Patrick Steinhardt
2025-05-07  1:25   ` Derrick Stolee
2025-05-07 16:38     ` Junio C Hamano
2025-05-09 11:25       ` Patrick Steinhardt
2025-05-06 11:09 ` [PATCH 13/17] odb: rename `oid_object_info()` Patrick Steinhardt
2025-05-06 11:09 ` [PATCH 14/17] odb: rename `repo_read_object_file()` Patrick Steinhardt
2025-05-06 11:09 ` [PATCH 15/17] odb: rename `has_object()` Patrick Steinhardt
2025-05-06 11:09 ` [PATCH 16/17] odb: rename `pretend_object_file()` Patrick Steinhardt
2025-05-06 11:09 ` [PATCH 17/17] odb: rename `read_object_with_reference()` Patrick Steinhardt
2025-05-07  1:40 ` [PATCH 00/17] object-store: carve out the object database subsystem Derrick Stolee
2025-05-07 17:02   ` Junio C Hamano
2025-05-09 11:25     ` Patrick Steinhardt
2025-05-09 11:25   ` Patrick Steinhardt
2025-05-13 19:28     ` Toon Claes
2025-05-14  4:31       ` Patrick Steinhardt
2025-05-07 23:22 ` Junio C Hamano
2025-05-09 14:12 ` [PATCH v2 " Patrick Steinhardt
2025-05-09 14:12   ` [PATCH v2 01/17] object-store: rename `raw_object_store` to `object_database` Patrick Steinhardt
2025-05-13 19:27     ` Toon Claes
2025-05-09 14:12   ` [PATCH v2 02/17] object-store: rename `object_directory` to `odb_alternate` Patrick Steinhardt
2025-05-13 19:28     ` Toon Claes
2025-05-14  4:31       ` Patrick Steinhardt
2025-05-09 14:12   ` [PATCH v2 03/17] object-store: rename files to "odb.{c,h}" Patrick Steinhardt
2025-05-13 19:28     ` Toon Claes
2025-05-14  4:31       ` Patrick Steinhardt
2025-05-14 12:58       ` Junio C Hamano
2025-05-09 14:12   ` [PATCH v2 04/17] odb: introduce parent pointers Patrick Steinhardt
2025-05-09 14:12   ` [PATCH v2 05/17] odb: get rid of `the_repository` in `find_odb()` Patrick Steinhardt
2025-05-09 14:12   ` [PATCH v2 06/17] odb: get rid of `the_repository` in `assert_oid_type()` Patrick Steinhardt
2025-05-09 14:12   ` [PATCH v2 07/17] odb: get rid of `the_repository` in `odb_mkstemp()` Patrick Steinhardt
2025-05-09 14:12   ` [PATCH v2 08/17] odb: get rid of `the_repository` when handling alternates Patrick Steinhardt
2025-05-09 14:12   ` [PATCH v2 09/17] odb: get rid of `the_repository` in `for_each()` functions Patrick Steinhardt
2025-05-09 14:12   ` [PATCH v2 10/17] odb: get rid of `the_repository` when handling the primary alternate Patrick Steinhardt
2025-05-09 14:12   ` [PATCH v2 11/17] odb: get rid of `the_repository` when handling submodule alternates Patrick Steinhardt
2025-05-09 14:12   ` [PATCH v2 12/17] odb: trivial refactorings to get rid of `the_repository` Patrick Steinhardt
2025-05-09 14:12   ` [PATCH v2 13/17] odb: rename `oid_object_info()` Patrick Steinhardt
2025-05-09 14:12   ` [PATCH v2 14/17] odb: rename `repo_read_object_file()` Patrick Steinhardt
2025-05-09 14:12   ` [PATCH v2 15/17] odb: rename `has_object()` Patrick Steinhardt
2025-05-09 14:12   ` [PATCH v2 16/17] odb: rename `pretend_object_file()` Patrick Steinhardt
2025-05-09 14:12   ` [PATCH v2 17/17] odb: rename `read_object_with_reference()` Patrick Steinhardt
2025-05-09 21:43   ` [PATCH v2 00/17] object-store: carve out the object database subsystem Junio C Hamano
2025-05-12 18:33     ` Derrick Stolee
2025-05-14  5:12 ` [PATCH v3 " Patrick Steinhardt
2025-05-14  5:12   ` [PATCH v3 01/17] object-store: rename `raw_object_store` to `object_database` Patrick Steinhardt
2025-05-22 21:59     ` Justin Tobler
2025-05-14  5:12   ` [PATCH v3 02/17] object-store: rename `object_directory` to `odb_alternate` Patrick Steinhardt
2025-05-22 22:13     ` Justin Tobler
2025-05-26  5:45       ` Patrick Steinhardt
2025-05-27 16:45         ` Justin Tobler
2025-05-28 13:18           ` Toon Claes
2025-05-30  9:39             ` Patrick Steinhardt
2025-05-30  9:39           ` Patrick Steinhardt
2025-05-14  5:12   ` [PATCH v3 03/17] object-store: rename files to "odb.{c,h}" Patrick Steinhardt
2025-05-14  5:12   ` [PATCH v3 04/17] odb: introduce parent pointers Patrick Steinhardt
2025-05-14  5:12   ` [PATCH v3 05/17] odb: get rid of `the_repository` in `find_odb()` Patrick Steinhardt
2025-05-14  5:12   ` [PATCH v3 06/17] odb: get rid of `the_repository` in `assert_oid_type()` Patrick Steinhardt
2025-05-14  5:12   ` [PATCH v3 07/17] odb: get rid of `the_repository` in `odb_mkstemp()` Patrick Steinhardt
2025-05-14  5:12   ` [PATCH v3 08/17] odb: get rid of `the_repository` when handling alternates Patrick Steinhardt
2025-05-14  5:12   ` [PATCH v3 09/17] odb: get rid of `the_repository` in `for_each()` functions Patrick Steinhardt
2025-05-14  5:12   ` [PATCH v3 10/17] odb: get rid of `the_repository` when handling the primary alternate Patrick Steinhardt
2025-05-14  5:12   ` [PATCH v3 11/17] odb: get rid of `the_repository` when handling submodule alternates Patrick Steinhardt
2025-05-14  5:12   ` [PATCH v3 12/17] odb: trivial refactorings to get rid of `the_repository` Patrick Steinhardt
2025-05-14  5:12   ` [PATCH v3 13/17] odb: rename `oid_object_info()` Patrick Steinhardt
2025-05-14  5:12   ` [PATCH v3 14/17] odb: rename `repo_read_object_file()` Patrick Steinhardt
2025-05-14  5:12   ` [PATCH v3 15/17] odb: rename `has_object()` Patrick Steinhardt
2025-05-14  5:12   ` [PATCH v3 16/17] odb: rename `pretend_object_file()` Patrick Steinhardt
2025-05-14  5:12   ` [PATCH v3 17/17] odb: rename `read_object_with_reference()` Patrick Steinhardt
2025-05-14 14:48   ` [PATCH v3 00/17] object-store: carve out the object database subsystem Toon Claes
2025-05-15  8:22     ` Patrick Steinhardt
2025-06-02 10:27 ` [PATCH v4 " Patrick Steinhardt
2025-06-02 10:27   ` [PATCH v4 01/17] object-store: rename `raw_object_store` to `object_database` Patrick Steinhardt
2025-06-04  8:55     ` Toon Claes
2025-06-04 11:52       ` Patrick Steinhardt
2025-06-02 10:27   ` [PATCH v4 02/17] object-store: rename `object_directory` to `odb_source` Patrick Steinhardt
2025-06-04 13:24     ` Toon Claes
2025-06-04 13:55       ` Patrick Steinhardt
2025-06-02 10:27   ` [PATCH v4 03/17] object-store: rename files to "odb.{c,h}" Patrick Steinhardt
2025-06-02 10:27   ` [PATCH v4 04/17] odb: introduce parent pointers Patrick Steinhardt
2025-06-02 10:27   ` [PATCH v4 05/17] odb: get rid of `the_repository` in `find_odb()` Patrick Steinhardt
2025-06-02 10:27   ` [PATCH v4 06/17] odb: get rid of `the_repository` in `assert_oid_type()` Patrick Steinhardt
2025-06-02 10:27   ` [PATCH v4 07/17] odb: get rid of `the_repository` in `odb_mkstemp()` Patrick Steinhardt
2025-06-02 10:27   ` [PATCH v4 08/17] odb: get rid of `the_repository` when handling alternates Patrick Steinhardt
2025-06-02 10:27   ` [PATCH v4 09/17] odb: get rid of `the_repository` in `for_each()` functions Patrick Steinhardt
2025-06-02 10:27   ` [PATCH v4 10/17] odb: get rid of `the_repository` when handling the primary source Patrick Steinhardt
2025-06-02 10:27   ` [PATCH v4 11/17] odb: get rid of `the_repository` when handling submodule sources Patrick Steinhardt
2025-06-02 10:27   ` [PATCH v4 12/17] odb: trivial refactorings to get rid of `the_repository` Patrick Steinhardt
2025-06-02 10:27   ` [PATCH v4 13/17] odb: rename `oid_object_info()` Patrick Steinhardt
2025-06-02 10:27   ` [PATCH v4 14/17] odb: rename `repo_read_object_file()` Patrick Steinhardt
2025-06-02 10:27   ` [PATCH v4 15/17] odb: rename `has_object()` Patrick Steinhardt
2025-06-02 10:27   ` [PATCH v4 16/17] odb: rename `pretend_object_file()` Patrick Steinhardt
2025-06-02 10:27   ` [PATCH v4 17/17] odb: rename `read_object_with_reference()` Patrick Steinhardt
2025-06-02 15:38   ` [PATCH v4 00/17] object-store: carve out the object database subsystem Junio C Hamano
2025-06-05  6:46 ` [PATCH v5 " Patrick Steinhardt
2025-06-05  6:46   ` [PATCH v5 01/17] object-store: rename `raw_object_store` to `object_database` Patrick Steinhardt
2025-06-05  6:46   ` [PATCH v5 02/17] object-store: rename `object_directory` to `odb_source` Patrick Steinhardt
2025-06-30  2:02     ` Justin Tobler
2025-07-01 12:17       ` Patrick Steinhardt
2025-06-05  6:46   ` [PATCH v5 03/17] object-store: rename files to "odb.{c,h}" Patrick Steinhardt
2025-06-05  6:46   ` [PATCH v5 04/17] odb: introduce parent pointers Patrick Steinhardt
2025-06-30  2:34     ` Justin Tobler
2025-07-01 12:17       ` Patrick Steinhardt
2025-06-05  6:46   ` [PATCH v5 05/17] odb: get rid of `the_repository` in `find_odb()` Patrick Steinhardt
2025-06-30  2:36     ` Justin Tobler
2025-06-05  6:46   ` [PATCH v5 06/17] odb: get rid of `the_repository` in `assert_oid_type()` Patrick Steinhardt
2025-06-05  6:46   ` [PATCH v5 07/17] odb: get rid of `the_repository` in `odb_mkstemp()` Patrick Steinhardt
2025-06-05  6:46   ` [PATCH v5 08/17] odb: get rid of `the_repository` when handling alternates Patrick Steinhardt
2025-06-30  2:56     ` Justin Tobler
2025-07-01 12:18       ` Patrick Steinhardt
2025-06-05  6:46   ` [PATCH v5 09/17] odb: get rid of `the_repository` in `for_each()` functions Patrick Steinhardt
2025-06-05  6:47   ` [PATCH v5 10/17] odb: get rid of `the_repository` when handling the primary source Patrick Steinhardt
2025-06-05  6:47   ` [PATCH v5 11/17] odb: get rid of `the_repository` when handling submodule sources Patrick Steinhardt
2025-06-05  6:47   ` [PATCH v5 12/17] odb: trivial refactorings to get rid of `the_repository` Patrick Steinhardt
2025-06-05  6:47   ` [PATCH v5 13/17] odb: rename `oid_object_info()` Patrick Steinhardt
2025-06-05  6:47   ` [PATCH v5 14/17] odb: rename `repo_read_object_file()` Patrick Steinhardt
2025-06-05  6:47   ` [PATCH v5 15/17] odb: rename `has_object()` Patrick Steinhardt
2025-06-05  6:47   ` [PATCH v5 16/17] odb: rename `pretend_object_file()` Patrick Steinhardt
2025-06-30  3:14     ` Justin Tobler
2025-06-05  6:47   ` [PATCH v5 17/17] odb: rename `read_object_with_reference()` Patrick Steinhardt
2025-06-30  3:15     ` Justin Tobler
2025-07-01 12:22 ` [PATCH v6 00/17] object-store: carve out the object database subsystem Patrick Steinhardt
2025-07-01 12:22   ` [PATCH v6 01/17] object-store: rename `raw_object_store` to `object_database` Patrick Steinhardt
2025-07-01 12:22   ` [PATCH v6 02/17] object-store: rename `object_directory` to `odb_source` Patrick Steinhardt
2025-07-01 12:22   ` [PATCH v6 03/17] object-store: rename files to "odb.{c,h}" Patrick Steinhardt
2025-07-01 12:22   ` [PATCH v6 04/17] odb: introduce parent pointers Patrick Steinhardt
2025-07-01 12:22   ` [PATCH v6 05/17] odb: get rid of `the_repository` in `find_odb()` Patrick Steinhardt
2025-07-01 12:22   ` [PATCH v6 06/17] odb: get rid of `the_repository` in `assert_oid_type()` Patrick Steinhardt
2025-07-01 12:22   ` [PATCH v6 07/17] odb: get rid of `the_repository` in `odb_mkstemp()` Patrick Steinhardt
2025-07-01 12:22   ` [PATCH v6 08/17] odb: get rid of `the_repository` when handling alternates Patrick Steinhardt
2025-07-01 12:22   ` [PATCH v6 09/17] odb: get rid of `the_repository` in `for_each()` functions Patrick Steinhardt
2025-07-01 12:22   ` [PATCH v6 10/17] odb: get rid of `the_repository` when handling the primary source Patrick Steinhardt
2025-07-01 12:22   ` [PATCH v6 11/17] odb: get rid of `the_repository` when handling submodule sources Patrick Steinhardt
2025-07-01 12:22   ` [PATCH v6 12/17] odb: trivial refactorings to get rid of `the_repository` Patrick Steinhardt
2025-07-01 12:22   ` [PATCH v6 13/17] odb: rename `oid_object_info()` Patrick Steinhardt
2025-07-01 12:22   ` [PATCH v6 14/17] odb: rename `repo_read_object_file()` Patrick Steinhardt
2025-07-01 12:22   ` [PATCH v6 15/17] odb: rename `has_object()` Patrick Steinhardt
2025-07-01 12:22   ` [PATCH v6 16/17] odb: rename `pretend_object_file()` Patrick Steinhardt
2025-07-01 12:22   ` [PATCH v6 17/17] odb: rename `read_object_with_reference()` Patrick Steinhardt
2025-07-01 14:26   ` [PATCH v6 00/17] object-store: carve out the object database subsystem Justin Tobler

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=aB3mE2DW0bcmc_WK@pks.im \
    --to=ps@pks.im \
    --cc=git@vger.kernel.org \
    --cc=stolee@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).