RHGitaly as unique entry point
Motivation
The prefork model of HGitaly is too limited, especially since we have or will have very long running requests. Some, like hg pull
over SSH future supporting method depending on the bandwidth of the end user, hence not reductible by performance gains.
Also the RHGitaly support in the Rails application is hacky to say the least, and has the drawback of not being applied by Workhorse or things like gitaly-backup
.
The current setup has the drawback to force us to implement all options of a given method. This is even a timebomb, as new options that cannot be implemented in Rust can appear any time. Having a way to fall back dynamically like rhg
does in a more dynamical manner would be much better.
To finish the enumeration, copying over a subset of the protocol is tedious and error-prone.
Steps
-
Acquire the capability to launch a separate hg
process (should already be enough to implement push/pull) -
Implement a separate HGitaly startup demonstration -
Generic fall back function or method on a one-shot HGitaly mono server -
Dynamically growing pool of HGitaly workers to reduce worker startup overhead