Skip to content

Implement support for transactional voting via reference-transaction hooks

Problem to solve

The first iteration of transactions uses the pre-receive hook which only captures a subset of write operations. This means that we must fall back to async replication regularly.

Proposal

With the new reference-transaction hook (https://gitlab.com/gitlab-org/gitlab-git/-/merge_requests/2) having been released as part of v2.28.0-rc0, we should transition from using the pre-receive hook to perform transactional voting to the new hook.

This will require support for subtransactions first, though, as the reference-transaction hook may be executed multiple times, causing multiple votes to happen.

Edited by James Ramsay (ex-GitLab)
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information