From: Taylor Blau <me@ttaylorr.com>
To: git@vger.kernel.org
Subject: [TOPIC 09/11] Bundle-URI on fetch / resume-able clone
Date: Fri, 20 Sep 2024 10:22:00 -0400 [thread overview]
Message-ID: <Zu2FCF+BOrshAzxN@nand.local> (raw)
In-Reply-To: <Zu2DmS30E0kKug2a@nand.local>
Bundle-URI on fetch / resume-able clone
=======================================
(moderator: Toon; notetaker: Taylor)
* Toon: we have bundle-uris, which allow us to download bundles before
cloning. What would it take to do them on fetch, too?
* Toon: Complex; you might end up downloading a lot of bundles that you
don't need.
* Toon: there was a bundle token that could be used by the client to
determine whether or not it needs the bundle. Unfortunately, since you
don't know what amount of history you're missing, the bundle in and of
itself may not be sufficient.
* Toon: How do we make bundles more efficient on fetch and aware of what
the clients do and don't have.
* Johannes: In VFS for Git, the set of bundles is "opinionated" and
regenerated often (e.g., weekly, daily, hourly, etc.). We don't really
care about oversharing, because it's fast enough to download those
static files.
* Toon: That's true for the server, not for a singular client.
* Johannes: right, but it's to protect the server. If you don't care
about having too-big of a bundle, it's OK because you can just fetch
the last hour and then see what you still need on top of that.
* Johannes: there is logic to determine what you need to download based
on the time that you last fetched, etc.
* Elijah: are they thin packs? Yes.
* Patrick: the heuristics that we have to advertise what kind of bundles
are on the server is not sufficient enough to determine which bundles
the client may or may not want to download. The client must guess.
* Jonathan: ISTM that the property list for the bundles as they are
today should probably be considered a starting point (as in "part of a
feature"). The heuristics need to be extended.
* Jonathan: at Google we use packfile-URIs, and one of the advantages of
how that works is that since the packfiles are advertised after the
normal fetch negotiation, you get a curated list. For bundle-uris,
need something analogous to the fetch negotiation for the client to be
able to make a similar decision of which bundle to download.
* brian: extending the feature to store timestamps, then you could store
the last fetch on the system would inform some better selection of
which bundles to clone down during a fetch.
* brian: Would make a big difference for folks in environments which do
not benefit from reliable Internet connections.
* Toon: Sure... but you have to put a lot of pressure to keep those
bundles up-to-date on the server side.
* Jonathan: one of the advantages of bundles over packs is that they
have information about the references. One potential property could be
"here's the length of this header" and then having the client download
it to examine whether or not it wants such a bundle.
* Patrick: probably would want to cache those on the client so that
we're able to avoid re-downloading these every single time.
* Toon: resumability
* Jonathan: protocol supports it, just hasn't been implemented. Someone
needs to just get it done. :)
* Beyond that, the main complication is how you store the state and what
the UX is for resuming. But a person implementing it can figure those
things out.
* Brian: broken-proxy situations require some configurability of where
your bundles can be downloaded from.
next prev parent reply other threads:[~2024-09-20 14:22 UTC|newest]
Thread overview: 48+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-09-20 14:15 Notes from the Git Contributor's Summit, 2024 Taylor Blau
2024-09-20 14:17 ` [TOPIC 01/11] Rust Taylor Blau
2024-09-20 16:20 ` rsbecker
2024-09-23 2:25 ` Sean Allred
2024-09-23 12:17 ` rsbecker
2024-09-24 15:30 ` Phillip Wood
2024-09-24 22:44 ` rsbecker
2024-09-27 9:37 ` Sean Allred
2024-09-27 12:23 ` rsbecker
2024-09-27 17:40 ` rsbecker
2024-09-20 14:17 ` [TOPIC 02/11] Top-level lib/ directory Taylor Blau
2024-09-20 14:18 ` [TOPIC 03/11] Structured Error Handling Taylor Blau
2024-09-20 14:19 ` [TOPIC 04/11] Platform Support Policy Taylor Blau
2024-09-20 14:19 ` [TOPIC 05/11]: SHA 256 / Git 3.0 Taylor Blau
2024-09-20 19:22 ` Junio C Hamano
2024-09-20 14:20 ` [TOPIC 06/11] Git and Software Freedom Conservancy Taylor Blau
2024-09-20 14:20 ` [TOPIC 07/11] New Contributors and Discord Taylor Blau
2024-09-20 22:48 ` Junio C Hamano
2024-09-21 17:02 ` Kousik Sanagavarapu
2024-09-22 19:15 ` Junio C Hamano
2024-09-22 19:44 ` Junio C Hamano
2024-09-23 13:51 ` Konstantin Ryabitsev
2024-09-23 21:31 ` Junio C Hamano
2024-09-24 18:06 ` Konstantin Ryabitsev
2024-09-24 19:15 ` Junio C Hamano
2024-09-24 19:23 ` Konstantin Ryabitsev
2024-09-27 10:08 ` Phillip Wood
2024-09-27 19:22 ` Junio C Hamano
2024-10-01 15:23 ` Phillip Wood
2024-09-20 14:21 ` [TOPIC 08/11] Modern Build Systems Taylor Blau
2024-09-23 2:01 ` Eli Schwartz
2024-09-24 12:13 ` Patrick Steinhardt
2024-09-20 14:22 ` Taylor Blau [this message]
2024-09-20 14:22 ` [TOPIC 10/11] Project Tracking Taylor Blau
2024-09-20 19:41 ` Junio C Hamano
2024-09-20 19:49 ` Junio C Hamano
2024-09-23 9:15 ` Phillip Wood
2024-09-20 14:23 ` [TOPIC 11/11] git-scm.com state of the site Taylor Blau
-- strict thread matches above, loose matches on Subject: below --
2024-08-24 17:20 [GSoC][PATCH] unit-tests: add tests for oidset.h Ghanshyam Thakkar
2024-08-26 7:02 ` Patrick Steinhardt
2024-08-26 9:31 ` Christian Couder
2024-08-26 15:46 ` Junio C Hamano
2024-09-26 18:28 ` Junio C Hamano
2024-09-26 19:12 ` [PATCH] howto-maintain-git: discarding inactive topics Junio C Hamano
2024-09-27 8:57 ` [GSoC][PATCH] unit-tests: add tests for oidset.h Christian Couder
2024-09-27 18:47 ` Junio C Hamano
2024-09-28 7:02 ` Patrick Steinhardt
2024-09-30 18:48 ` Junio C Hamano
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=Zu2FCF+BOrshAzxN@nand.local \
--to=me@ttaylorr.com \
--cc=git@vger.kernel.org \
/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).