git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: Pluggable backends for refs,wip

From
Ronnie Sahlberg <sahlberg@google.com>
Date
Aug 5, 2014, 22:23 UTC
Message-ID
<CAL=YDWnYQJVTkCW0GYE6qOK9a+VBiO6ozUOPWkGNEr8H0-4a4w@mail.gmail.com>
In-Reply-To
<CAK3OfOiu39H8oZMKjra97ZNLHNatNYtFwr8Do_QwoxGXzg4SGw@mail.gmail.com>
On Tue, Aug 5, 2014 at 2:56 PM, Nico Williams <nico@cryptonector.com> wrote:
Show 16 quoted lines
> Personally (a user of, not a maintainer of, git) I really want some
> alternative backends.  In particular I'm after something like Fossil's
> use of SQLite3; I want a SQLite3 backend for several reasons, not the
> least of which is the power of SQL for looking at history.
>
> I'm not sure that I necessarily want a daemon/background process.  I
> get the appeal (add inotify and bingo, very fast git status, always),
> but it seems likely to add obnoxious failure modes.
>
> As to a SQLite3-type backend, I am of two minds: either add it as a
> bolt-on to the builtin backend, or add it as a first-class backend
> that replaces the builtin one.  The former is nice because the SQLite3
> DB becomes more of a cache/index and query engine than a store, and
> can be used without migrating any repos, but the latter is also nice
> because SQLite3 provides strong ACID transactional semantics on local
> filesystems.
This will allow you to do either or both, depending on what you want.
I am adding one new first-class backend to talk to a separate daemon :
  refs-be-db.c
which then talks to a separate daemon   refsd-tdb.c

refsd-tdb.c is 7 RPCs and ~500 lines of code for a naive implementation for a standalone separate daemon implementation.

If you rather want want a new first-class backend builtin to git itself instead of as a separate daemon, then that will be possible too. It just means that you will have to base the work on refs-be-db.c which is a much larger and complex code base than refsd-tdb.c.

But yeah, once this work is finished, you will be able to build new first-class ref backends if you so wish. Please see refs-be-db.c that is the file and the methods you will need to implement in order to have a first-class SQL* backend.

regards ronnie sahlberg

Previous: Nico WilliamsNext: Nico Williams
Message 3 of 6 in “Pluggable backends for refs,wip”
  1. Ronnie SahlbergAug 5, 2014
  2. Nico WilliamsAug 5, 2014
  3. Ronnie SahlbergAug 5, 2014
  4. Nico WilliamsAug 5, 2014
  5. Michael HaggertyAug 7, 2014
  6. Ronnie SahlbergAug 8, 2014

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.