Re: [WIP 0/7] CDN offloading of fetch response
- From
Jonathan Nieder <jrnieder@gmail.com>
- Date
- Feb 28, 2019, 23:21 UTC
- Message-ID
- <20190228232108.GA163714@google.com>
- In-Reply-To
- <CAP8UFD1tKNFO9wU8CbgNnSnQyvHYPsZMk1Bit2y1jxH4vk62qQ@mail.gmail.com>
Hi,
Sorry for the slow followup. Thanks for probing into the design --- this should be useful for getting the docs to be clear.
Christian Couder wrote:
> So it's likely that users will want a way to host on such sites > incomplete repos using CDN offloading to a CDN on another site. And > then if the CDN is not accessible for some reason, things will > completely break when users will clone.
I think this would be a broken setup --- we can make it clear in the protocol and server docs that you should only point to a CDN for which you control the contents, to avoid breaking clients.
That doesn't prevent adding additional features in the future e.g. for "server suggested alternates" --- it's just that I consider that a separate feature.
Using CDN offloading requires cooperation of the hosting provider. It's a way to optimize how fetches work, not a way to have a partial repository on the server side.
[...]
> On Tue, Feb 26, 2019 at 12:45 AM Jonathan Nieder <jrnieder@gmail.com> wrote:
Show 7 quoted lines
>> This doesn't stop a hosting provider from using e.g. server options to >> allow the client more control over how their response is served, just >> like can be done for other features of how the transfer works (how >> often to send progress updates, whether to prioritize latency or >> throughput, etc). > > Could you give a more concrete example of what could be done?
What I mean is passing server options using "git fetch --server-option". For example:
git fetch -o priority=BATCH origin master
or
git fetch -o avoid-cdn=badcdn.example.com origin master
The interpretation of server options is up to the server.
Show 10 quoted lines
>> What the client *can* do is turn off support for packfile URLs in a >> request completely. This is required for backward compatibility and >> allows working around a host that has configured the feature >> incorrectly. > > If the full content of a repo is really large, the size of a full pack > file sent by an initial clone could be really big and many client > machines could not have enough memory to deal with that. And this > suppose that repo hosting providers would be ok to host very large > repos in the first place.
Do we require the packfile to fit in memory? If so, we should fix that (to use streaming instead).
Thanks, Jonathan