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:
authorPaul Okstad <pokstad@gitlab.com>2020-03-20 09:21:03 +0300
committerPaul Okstad <pokstad@gitlab.com>2020-03-20 09:21:03 +0300
commit1bb075dd1fd0b6d840ba2c59f8aaac1542655ee7 (patch)
tree78581a7150400518a07458bd16734a13e10ff1b6 /proto/praefect.proto
parent969bac80e2f246867c1a976864bd1f5b34ee43dd (diff)
RPC ConsistencyCheck and Praefect "reconcile" subcommand
Diffstat (limited to 'proto/praefect.proto')
-rw-r--r--proto/praefect.proto30
1 files changed, 30 insertions, 0 deletions
diff --git a/proto/praefect.proto b/proto/praefect.proto
index f51d8f5b6..80312b554 100644
--- a/proto/praefect.proto
+++ b/proto/praefect.proto
@@ -14,6 +14,16 @@ service PraefectInfoService {
scope_level: SERVER
};
}
+ // ConsistencyCheck will perform a consistency check on the requested
+ // virtual storage backend. A stream of repository statuses will be sent
+ // back indicating which repos are consistent with the primary and which ones
+ // need repair.
+ rpc ConsistencyCheck(ConsistencyCheckRequest) returns (stream ConsistencyCheckResponse) {
+ option (op_type) = {
+ op: ACCESSOR
+ scope_level: STORAGE
+ };
+ }
}
message RepositoryReplicasRequest{
@@ -29,3 +39,23 @@ message RepositoryReplicasResponse{
RepositoryDetails primary = 1;
repeated RepositoryDetails replicas = 2;
}
+
+message ConsistencyCheckRequest {
+ string virtual_storage = 1 [(storage)=true];
+ // The target storage is the storage you wish to check for inconsistencies
+ // against a reference storage (typically the current primary).
+ string target_storage = 2;
+ // Optionally provide a reference storage to compare the target storage
+ // against. If a reference storage is omitted, the current primary will be
+ // used.
+ string reference_storage = 3;
+}
+
+message ConsistencyCheckResponse {
+ string repo_relative_path = 1;
+ string target_checksum = 2;
+ string reference_checksum = 3;
+ // If resync was enabled, then each inconsistency will schedule a replication
+ // job. A replication ID is returned to track the corresponding job.
+ uint64 repl_job_id = 4;
+}