Skip to content
Snippets Groups Projects
Commit 77c9b1eb authored by Will Chandler's avatar Will Chandler
Browse files

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
3 merge requests!119heptapod#1448: making Heptapod 1.1 the new oldstable,!116heptapod#1395: make 1.1 the new stable,!115Merged upstream 16.7 stable branches first commit
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment