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:
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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?
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
Reference in New Issue
Block a user