Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitaly.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSami Hiltunen <shiltunen@gitlab.com>2020-08-07 18:55:37 +0300
committerSami Hiltunen <shiltunen@gitlab.com>2020-09-02 11:39:23 +0300
commitd572afb37cce0e8954522e36cc36b578e99308af (patch)
tree4e87f1e05a8bdea840ef5b12943337efbbe981b6 /config.praefect.toml.example
parent1f0b1740e98525102b3b1c6650a01cd57fe311c7 (diff)
automatic repository reconciliation
Replication jobs are currently only attempted three times at maximum until they are dropped. After a replication job is dropped, its changes are not going to be replicated until another replication job is triggered form another mutator operation or an administrator runs reconcile manually. Repositories can stay outdated for an indefinite time. This commit addresses the problem by adding a background goroutine that automatically schedules replication jobs from storages which have a fully up to date copy of the repository to storages with outdated copies of the repository. Replication jobs are only scheduled from and to storages which are currently healthy to avoid scheduling replication jobs that are not going to be successfully completed. If there is a replication job already targeting the repository, a redundant reconciliation job won't be scheduled.
Diffstat (limited to 'config.praefect.toml.example')
-rw-r--r--config.praefect.toml.example7
1 files changed, 7 insertions, 0 deletions
diff --git a/config.praefect.toml.example b/config.praefect.toml.example
index d2bac77eb..370e1a579 100644
--- a/config.praefect.toml.example
+++ b/config.praefect.toml.example
@@ -39,6 +39,13 @@ listen_addr = "127.0.0.1:2305"
[replication]
batch_size = 10 # configures the number of replication jobs to dequeue and lock in a batch
+[reconciliation]
+# Duration value specifying an interval at which to run the automatic repository reconciler.
+# Automatic reconciliation is disabled if set to 0. Example: "1m" for reconciliation every minute.
+scheduling_interval = 0
+# Scheduling duration histogram buckets.
+histogram_buckets = [0.005, 0.01, 0.025, 0.05, 0.1, 0.25, 0.5, 1, 2.5, 5, 10]
+
[failover]
enabled = true
election_strategy = "sql" # Options: local, sql. Defaults to 'sql'.