Add 'use_wrapper' setting to Gitaly
Gitaly is in the process of implementing a write-ahead log (WAL) for git operations, which will provide significant benefits for resiliance and scalability. This model requires that we have only one Gitaly process running at a time. However, our current upgrade method keeps the old and new Gitaly processes running in parallel for an period of time defined by the administrator. The `gitaly-wrapper` binary is used by Omnibus to provide a stable pid to `runit` and sets the `GITALY_UPGRADES_ENABLED` environment variable that causes Gitaly to perform upgrades with concurrent processes. To prepare for the deployment of Gitaly's WAL architecture, add a new `gitaly['use_wrapper']` option which allows admins to execute Gitaly without the `gitaly-wrapper` binary so that there is never more than one Gitaly process running at once. This is enabled by default, admins must opt into the new behavior. Without the wrapper, sending SIGHUP to Gitaly will cause momentary service interruptions for git clone operations, ~300ms in our benchmarks. Read-only web requests will retry automatically for outages lasting up to 750ms and will handle the upgrade gracefully. We retain the wrapper for Praefect as this will remain compatible with running concurrent processes. Changelog: added
parent
699f0bdf
No related branches found
No related tags found
Showing
- files/gitlab-config-template/gitlab.rb.template 1 addition, 0 deletionsfiles/gitlab-config-template/gitlab.rb.template
- files/gitlab-cookbooks/gitaly/attributes/default.rb 1 addition, 0 deletionsfiles/gitlab-cookbooks/gitaly/attributes/default.rb
- files/gitlab-cookbooks/gitaly/recipes/enable.rb 2 additions, 0 deletionsfiles/gitlab-cookbooks/gitaly/recipes/enable.rb
- files/gitlab-cookbooks/gitaly/templates/default/sv-gitaly-run.erb 4 additions, 0 deletions...tlab-cookbooks/gitaly/templates/default/sv-gitaly-run.erb
- spec/chef/cookbooks/gitaly/recipes/gitaly_spec.rb 24 additions, 0 deletionsspec/chef/cookbooks/gitaly/recipes/gitaly_spec.rb
Loading
Please register or sign in to comment