feat: region procedure service (#137)

* feat: adds region service and procedure service

* refactor: adds procedure service for ddl and region task

* feat: adds QueryProcedureRequest

* feat: improve ProcedureStateResponse and MigrateRegionRequest

* fix: forgot headers

* fix: remove cluster_id in MigrateRegionRequest

* refactor: rename Procedure to ProcedureService

* chore: rename peer

* fix: forgot java Procedure
This commit is contained in:
dennis zhuang
2024-02-02 22:56:40 +08:00
committed by GitHub
parent 188153f55e
commit 96f1f0404f
30 changed files with 12486 additions and 1205 deletions
+5
View File
@@ -73,3 +73,8 @@ message KeyValue {
// value is the value held by the key, in bytes.
bytes value = 2;
}
// Procedure identifer
message ProcedureId {
bytes key = 1;
}
+3 -10
View File
@@ -22,12 +22,6 @@ import "greptime/v1/meta/common.proto";
import "greptime/v1/meta/route.proto";
import "greptime/v1/ddl.proto";
service DdlTask {
// Submits a DDL task to meta.
rpc SubmitDdlTask(SubmitDdlTaskRequest) returns (SubmitDdlTaskResponse);
}
enum DdlTaskType {
Create = 0;
Drop = 1;
@@ -57,7 +51,7 @@ message TruncateTableTask {
TruncateTableExpr truncate_table = 1;
}
message SubmitDdlTaskRequest {
message DdlTaskRequest {
RequestHeader header = 1;
oneof task {
@@ -71,10 +65,9 @@ message SubmitDdlTaskRequest {
}
}
message SubmitDdlTaskResponse {
message DdlTaskResponse {
ResponseHeader header = 1;
// Key is the identifier for the ddl task.
bytes key = 2;
ProcedureId pid = 2;
// Returns if table created.
// TODO(jeremy): remove it?
+42
View File
@@ -0,0 +1,42 @@
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
syntax = "proto3";
package greptime.v1.meta;
option go_package = "github.com/GreptimeTeam/greptime-proto/go/greptime/v1/meta";
import "greptime/v1/meta/common.proto";
import "greptime/v1/meta/ddl.proto";
import "greptime/v1/meta/region.proto";
enum ProcedureStatus {
Running = 0;
Done = 1;
Retrying = 2;
Failed = 3;
}
message QueryProcedureRequest {
RequestHeader header = 1;
ProcedureId pid = 2;
}
message ProcedureStateResponse {
ResponseHeader header = 1;
ProcedureStatus status = 2;
string error = 3;
}
service ProcedureService {
// Query a submitted procedure state
rpc query(QueryProcedureRequest) returns (ProcedureStateResponse);
// Submits a DDL task
rpc ddl(DdlTaskRequest) returns (DdlTaskResponse);
// Submits a region migration task
rpc migrate(MigrateRegionRequest) returns (MigrateRegionResponse);
}
+34
View File
@@ -0,0 +1,34 @@
// Copyright 2023 Greptime Team
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
syntax = "proto3";
package greptime.v1.meta;
option go_package = "github.com/GreptimeTeam/greptime-proto/go/greptime/v1/meta";
import "greptime/v1/meta/common.proto";
message MigrateRegionRequest {
RequestHeader header = 1;
uint64 region_id = 3;
uint64 from_peer = 4;
uint64 to_peer = 5;
uint32 replay_timeout_secs = 6;
}
message MigrateRegionResponse {
ResponseHeader header = 1;
ProcedureId pid = 2;
}