Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Investigate fetch and gvfs-helper #242

Open
jeffhostetler opened this issue Feb 4, 2020 · 0 comments
Open

Investigate fetch and gvfs-helper #242

jeffhostetler opened this issue Feb 4, 2020 · 0 comments
Assignees

Comments

@jeffhostetler
Copy link

In #240
an issue was uncovered where a git fetch would try to use gvfs-helper prefetch (to the cache-server), receive 0 new objects, and then try a remote-https / fetch-pack directly to the origin server. This would fail because a gvfs-aware origin server does not allow normal fetches and requires use of the gvfs-protocol. This server error prevented fetch from attempting a gvfs-style missing object (either individual or batch) fetch. The behavior of gvfs-helper seems to be slightly different from the original read-object-hook in this regards.

The fix in #240 does address the problem.

The purpose of this issue is to investigate performance. This has only been observed when the origin server is ahead of the cache server. So the ref exchange may have very new objects that are not yet present on the cache server. It seems like we might:
[1] either have gvfs-helper do the fallback to main when it receives a 0 object prefetch from the cache-server. this might prevent the foreground fetch from needing to run the fetch-pack at all.
[2] have fetch do the second prefetch to the main server (rather than hiding it inside gvfs-helper).
[3] other??

My concern here is that the individual missing object fetches following the (now no-op) fetch-pack might be more expensive than a gvfs-prefetch, but I haven't investigated the actual behavior yet.

@jeffhostetler jeffhostetler self-assigned this Feb 4, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant