@@ -189,8 +189,7 @@ The availability objectives for Gitaly clusters assuming a single node failure a
...
@@ -189,8 +189,7 @@ The availability objectives for Gitaly clusters assuming a single node failure a
Writes are replicated asynchronously. Any writes that have not been replicated
Writes are replicated asynchronously. Any writes that have not been replicated
to the newly promoted primary are lost.
to the newly promoted primary are lost.
[Strong consistency](#strong-consistency) can be used to avoid loss in some
[Strong consistency](#strong-consistency) prevents loss in some circumstances.
circumstances.
-**Recovery Time Objective (RTO):** Less than 10 seconds.
-**Recovery Time Objective (RTO):** Less than 10 seconds.
Outages are detected by a health check run by each Praefect node every
Outages are detected by a health check run by each Praefect node every
...
@@ -323,19 +322,18 @@ You can [monitor distribution of reads](#monitor-gitaly-cluster) using Prometheu
...
@@ -323,19 +322,18 @@ You can [monitor distribution of reads](#monitor-gitaly-cluster) using Prometheu
> - In GitLab 13.3, disabled unless primary-wins voting strategy is disabled.
> - In GitLab 13.3, disabled unless primary-wins voting strategy is disabled.
> - From GitLab 13.4, enabled by default.
> - From GitLab 13.4, enabled by default.
> - From GitLab 13.5, you must use Git v2.28.0 or higher on Gitaly nodes to enable strong consistency.
> - From GitLab 13.5, you must use Git v2.28.0 or higher on Gitaly nodes to enable strong consistency.
> - From GitLab 13.6, primary-wins voting strategy and `gitaly_reference_transactions_primary_wins` feature flag were removed from the source code.
> - From GitLab 13.6, primary-wins voting strategy and the `gitaly_reference_transactions_primary_wins` feature flag was removed.
> - From GitLab 14.0, [Gitaly Cluster only supports strong consistency](https://gitlab.com/gitlab-org/gitaly/-/merge_requests/3575), and the `gitaly_reference_transactions` feature flag was removed.
By default, Gitaly Cluster guarantees eventual consistency by replicating all writes to secondary
Gitaly Cluster writes changes synchronously to all healthy, up to date replicas.
Gitaly nodes after the write to the primary Gitaly node has happened.
If a replica is outdated or unhealthy at the time of the transaction, the write is asynchronously replicated to it.
Praefect can instead provide strong consistency by creating a transaction and writing changes to all
In GitLab 13.12 and earlier, if Gitaly Cluster wasn't configured to use strong consistency (or didn't support it yet), Gitaly Cluster guaranteed eventual consistency by replicating all writes to secondary Gitaly nodes after the write to the primary Gitaly node has occurred.
Gitaly nodes at once.
If enabled, transactions are only available for a subset of RPCs. For more information, see the
A subset of operations still use replication jobs (instead of a strong consistency transaction).