diff options
author | Paul Okstad <pokstad@gitlab.com> | 2020-03-20 09:21:03 +0300 |
---|---|---|
committer | Paul Okstad <pokstad@gitlab.com> | 2020-03-20 09:21:03 +0300 |
commit | 1bb075dd1fd0b6d840ba2c59f8aaac1542655ee7 (patch) | |
tree | 78581a7150400518a07458bd16734a13e10ff1b6 /proto/praefect.proto | |
parent | 969bac80e2f246867c1a976864bd1f5b34ee43dd (diff) |
RPC ConsistencyCheck and Praefect "reconcile" subcommand
Diffstat (limited to 'proto/praefect.proto')
-rw-r--r-- | proto/praefect.proto | 30 |
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; +} |