diff options
author | Sami Hiltunen <shiltunen@gitlab.com> | 2020-08-07 18:55:37 +0300 |
---|---|---|
committer | Sami Hiltunen <shiltunen@gitlab.com> | 2020-09-02 11:39:23 +0300 |
commit | d572afb37cce0e8954522e36cc36b578e99308af (patch) | |
tree | 4e87f1e05a8bdea840ef5b12943337efbbe981b6 /config.praefect.toml.example | |
parent | 1f0b1740e98525102b3b1c6650a01cd57fe311c7 (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.example | 7 |
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'. |