6fadcf8c7a
* move protobuf from GreptimeDB * add license check * add other github actions
100 lines
2.0 KiB
Protocol Buffer
100 lines
2.0 KiB
Protocol Buffer
syntax = "proto3";
|
|
|
|
package greptime.v1.meta;
|
|
|
|
import "greptime/v1/meta/common.proto";
|
|
|
|
service Router {
|
|
rpc Create(CreateRequest) returns (RouteResponse) {}
|
|
|
|
// Fetch routing information for tables. The smallest unit is the complete
|
|
// routing information(all regions) of a table.
|
|
//
|
|
// ```text
|
|
// table_1
|
|
// table_name
|
|
// table_schema
|
|
// regions
|
|
// region_1
|
|
// leader_peer
|
|
// follower_peer_1, follower_peer_2
|
|
// region_2
|
|
// leader_peer
|
|
// follower_peer_1, follower_peer_2, follower_peer_3
|
|
// region_xxx
|
|
// table_2
|
|
// ...
|
|
// ```
|
|
//
|
|
rpc Route(RouteRequest) returns (RouteResponse) {}
|
|
|
|
rpc Delete(DeleteRequest) returns (RouteResponse) {}
|
|
}
|
|
|
|
message CreateRequest {
|
|
RequestHeader header = 1;
|
|
|
|
TableName table_name = 2;
|
|
repeated Partition partitions = 3;
|
|
bytes table_info = 4;
|
|
}
|
|
|
|
message RouteRequest {
|
|
RequestHeader header = 1;
|
|
|
|
repeated TableName table_names = 2;
|
|
}
|
|
|
|
message DeleteRequest {
|
|
RequestHeader header = 1;
|
|
|
|
TableName table_name = 2;
|
|
}
|
|
|
|
message RouteResponse {
|
|
ResponseHeader header = 1;
|
|
|
|
repeated Peer peers = 2;
|
|
repeated TableRoute table_routes = 3;
|
|
}
|
|
|
|
message TableRoute {
|
|
Table table = 1;
|
|
repeated RegionRoute region_routes = 2;
|
|
}
|
|
|
|
message RegionRoute {
|
|
Region region = 1;
|
|
// single leader node for write task
|
|
uint64 leader_peer_index = 2;
|
|
// multiple follower nodes for read task
|
|
repeated uint64 follower_peer_indexes = 3;
|
|
}
|
|
|
|
message Table {
|
|
uint64 id = 1;
|
|
TableName table_name = 2;
|
|
bytes table_schema = 3;
|
|
}
|
|
|
|
message Region {
|
|
// TODO(LFC): Maybe use message RegionNumber?
|
|
uint64 id = 1;
|
|
string name = 2;
|
|
Partition partition = 3;
|
|
|
|
map<string, string> attrs = 100;
|
|
}
|
|
|
|
// PARTITION `region_name` VALUES LESS THAN (value_list)
|
|
message Partition {
|
|
repeated bytes column_list = 1;
|
|
repeated bytes value_list = 2;
|
|
}
|
|
|
|
// This message is only for saving into store.
|
|
message TableRouteValue {
|
|
repeated Peer peers = 1;
|
|
TableRoute table_route = 2;
|
|
}
|