// 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; import "greptime/v1/meta/common.proto"; import "greptime/v1/meta/store.proto"; option go_package = "github.com/GreptimeTeam/greptime-proto/go/greptime/v1/meta"; // Cluster service is used for communication between meta nodes. service Cluster { // Batch get kvs by input keys from leader's in_memory kv store. rpc BatchGet(BatchGetRequest) returns (BatchGetResponse); // Range get the kvs from leader's in_memory kv store. rpc Range(RangeRequest) returns (RangeResponse); // Returns all the peers of metasrv. rpc MetasrvPeers(MetasrvPeersRequest) returns (MetasrvPeersResponse); } message MetasrvPeersRequest { RequestHeader header = 1; } message MetasrvPeersResponse { ResponseHeader header = 1; MetasrvNodeInfo leader = 2; repeated MetasrvNodeInfo followers = 3; } message MetasrvNodeInfo { Peer peer = 1; string version = 2; string git_commit = 3; // The node start timestamp in milliseconds. uint64 start_time_ms = 4; // The CPU cores number of the node. uint32 cpus = 5; // The memory bytes of the node. uint64 memory_bytes = 6; }