feat: introduce region role (#113)

This commit is contained in:
Weny Xu
2023-10-31 16:17:41 +09:00
committed by GitHub
parent c27b3844e5
commit d354d4f0f7
5 changed files with 611 additions and 154 deletions
+81 -36
View File
@@ -50,6 +50,7 @@ PROTOBUF_CONSTEXPR RegionStat::RegionStat(
, /*decltype(_impl_.wcus_)*/int64_t{0}
, /*decltype(_impl_.approximate_bytes_)*/int64_t{0}
, /*decltype(_impl_.approximate_rows_)*/int64_t{0}
, /*decltype(_impl_.role_)*/0
, /*decltype(_impl_._cached_size_)*/{}} {}
struct RegionStatDefaultTypeInternal {
PROTOBUF_CONSTEXPR RegionStatDefaultTypeInternal()
@@ -141,7 +142,7 @@ PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORIT
} // namespace v1
} // namespace greptime
static ::_pb::Metadata file_level_metadata_greptime_2fv1_2fmeta_2fheartbeat_2eproto[7];
static constexpr ::_pb::EnumDescriptor const** file_level_enum_descriptors_greptime_2fv1_2fmeta_2fheartbeat_2eproto = nullptr;
static const ::_pb::EnumDescriptor* file_level_enum_descriptors_greptime_2fv1_2fmeta_2fheartbeat_2eproto[1];
static constexpr ::_pb::ServiceDescriptor const** file_level_service_descriptors_greptime_2fv1_2fmeta_2fheartbeat_2eproto = nullptr;
const uint32_t TableStruct_greptime_2fv1_2fmeta_2fheartbeat_2eproto::offsets[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = {
@@ -170,6 +171,7 @@ const uint32_t TableStruct_greptime_2fv1_2fmeta_2fheartbeat_2eproto::offsets[] P
PROTOBUF_FIELD_OFFSET(::greptime::v1::meta::RegionStat, _impl_.approximate_bytes_),
PROTOBUF_FIELD_OFFSET(::greptime::v1::meta::RegionStat, _impl_.approximate_rows_),
PROTOBUF_FIELD_OFFSET(::greptime::v1::meta::RegionStat, _impl_.engine_),
PROTOBUF_FIELD_OFFSET(::greptime::v1::meta::RegionStat, _impl_.role_),
~0u, // no _has_bits_
PROTOBUF_FIELD_OFFSET(::greptime::v1::meta::HeartbeatResponse, _internal_metadata_),
~0u, // no _extensions_
@@ -220,11 +222,11 @@ const uint32_t TableStruct_greptime_2fv1_2fmeta_2fheartbeat_2eproto::offsets[] P
static const ::_pbi::MigrationSchema schemas[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = {
{ 0, -1, -1, sizeof(::greptime::v1::meta::HeartbeatRequest)},
{ 13, -1, -1, sizeof(::greptime::v1::meta::RegionStat)},
{ 25, -1, -1, sizeof(::greptime::v1::meta::HeartbeatResponse)},
{ 34, -1, -1, sizeof(::greptime::v1::meta::RegionLease)},
{ 43, -1, -1, sizeof(::greptime::v1::meta::AskLeaderRequest)},
{ 50, -1, -1, sizeof(::greptime::v1::meta::AskLeaderResponse)},
{ 58, -1, -1, sizeof(::greptime::v1::meta::MailboxMessage)},
{ 26, -1, -1, sizeof(::greptime::v1::meta::HeartbeatResponse)},
{ 35, -1, -1, sizeof(::greptime::v1::meta::RegionLease)},
{ 44, -1, -1, sizeof(::greptime::v1::meta::AskLeaderRequest)},
{ 51, -1, -1, sizeof(::greptime::v1::meta::AskLeaderResponse)},
{ 59, -1, -1, sizeof(::greptime::v1::meta::MailboxMessage)},
};
static const ::_pb::Message* const file_default_instances[] = {
@@ -248,38 +250,40 @@ const char descriptor_table_protodef_greptime_2fv1_2fmeta_2fheartbeat_2eproto[]
"e.v1.meta.RegionStat\0229\n\017mailbox_message\030"
"\005 \001(\0132 .greptime.v1.meta.MailboxMessage\022"
"\034\n\024duration_since_epoch\030\006 \001(\004\022\022\n\nnode_ep"
"och\030\007 \001(\004\"\200\001\n\nRegionStat\022\021\n\tregion_id\030\001 "
"och\030\007 \001(\004\"\254\001\n\nRegionStat\022\021\n\tregion_id\030\001 "
"\001(\004\022\014\n\004rcus\030\002 \001(\003\022\014\n\004wcus\030\003 \001(\003\022\031\n\021appro"
"ximate_bytes\030\004 \001(\003\022\030\n\020approximate_rows\030\005"
" \001(\003\022\016\n\006engine\030\006 \001(\t\"\265\001\n\021HeartbeatRespon"
"se\0220\n\006header\030\001 \001(\0132 .greptime.v1.meta.Re"
"sponseHeader\0229\n\017mailbox_message\030\002 \001(\0132 ."
"greptime.v1.meta.MailboxMessage\0223\n\014regio"
"n_lease\030\003 \001(\0132\035.greptime.v1.meta.RegionL"
"ease\"V\n\013RegionLease\022\022\n\nregion_ids\030\001 \003(\004\022"
"\034\n\024duration_since_epoch\030\002 \001(\004\022\025\n\rlease_s"
"econds\030\003 \001(\004\"C\n\020AskLeaderRequest\022/\n\006head"
"er\030\001 \001(\0132\037.greptime.v1.meta.RequestHeade"
"r\"m\n\021AskLeaderResponse\0220\n\006header\030\001 \001(\0132 "
".greptime.v1.meta.ResponseHeader\022&\n\006lead"
"er\030\002 \001(\0132\026.greptime.v1.meta.Peer\"|\n\016Mail"
"boxMessage\022\n\n\002id\030\001 \001(\004\022\017\n\007subject\030\002 \001(\t\022"
"\014\n\004from\030\003 \001(\t\022\n\n\002to\030\004 \001(\t\022\030\n\020timestamp_m"
"illis\030\005 \001(\003\022\016\n\004json\030\006 \001(\tH\000B\t\n\007payload2\277"
"\001\n\tHeartbeat\022Z\n\tHeartbeat\022\".greptime.v1."
"meta.HeartbeatRequest\032#.greptime.v1.meta"
".HeartbeatResponse\"\000(\0010\001\022V\n\tAskLeader\022\"."
"greptime.v1.meta.AskLeaderRequest\032#.grep"
"time.v1.meta.AskLeaderResponse\"\000B<Z:gith"
"ub.com/GreptimeTeam/greptime-proto/go/gr"
"eptime/v1/metab\006proto3"
" \001(\003\022\016\n\006engine\030\006 \001(\t\022*\n\004role\030\007 \001(\0162\034.gre"
"ptime.v1.meta.RegionRole\"\265\001\n\021HeartbeatRe"
"sponse\0220\n\006header\030\001 \001(\0132 .greptime.v1.met"
"a.ResponseHeader\0229\n\017mailbox_message\030\002 \001("
"\0132 .greptime.v1.meta.MailboxMessage\0223\n\014r"
"egion_lease\030\003 \001(\0132\035.greptime.v1.meta.Reg"
"ionLease\"V\n\013RegionLease\022\022\n\nregion_ids\030\001 "
"\003(\004\022\034\n\024duration_since_epoch\030\002 \001(\004\022\025\n\rlea"
"se_seconds\030\003 \001(\004\"C\n\020AskLeaderRequest\022/\n\006"
"header\030\001 \001(\0132\037.greptime.v1.meta.RequestH"
"eader\"m\n\021AskLeaderResponse\0220\n\006header\030\001 \001"
"(\0132 .greptime.v1.meta.ResponseHeader\022&\n\006"
"leader\030\002 \001(\0132\026.greptime.v1.meta.Peer\"|\n\016"
"MailboxMessage\022\n\n\002id\030\001 \001(\004\022\017\n\007subject\030\002 "
"\001(\t\022\014\n\004from\030\003 \001(\t\022\n\n\002to\030\004 \001(\t\022\030\n\020timesta"
"mp_millis\030\005 \001(\003\022\016\n\004json\030\006 \001(\tH\000B\t\n\007paylo"
"ad*&\n\nRegionRole\022\n\n\006Leader\020\000\022\014\n\010Follower"
"\020\0012\277\001\n\tHeartbeat\022Z\n\tHeartbeat\022\".greptime"
".v1.meta.HeartbeatRequest\032#.greptime.v1."
"meta.HeartbeatResponse\"\000(\0010\001\022V\n\tAskLeade"
"r\022\".greptime.v1.meta.AskLeaderRequest\032#."
"greptime.v1.meta.AskLeaderResponse\"\000B<Z:"
"github.com/GreptimeTeam/greptime-proto/g"
"o/greptime/v1/metab\006proto3"
;
static const ::_pbi::DescriptorTable* const descriptor_table_greptime_2fv1_2fmeta_2fheartbeat_2eproto_deps[1] = {
&::descriptor_table_greptime_2fv1_2fmeta_2fcommon_2eproto,
};
static ::_pbi::once_flag descriptor_table_greptime_2fv1_2fmeta_2fheartbeat_2eproto_once;
const ::_pbi::DescriptorTable descriptor_table_greptime_2fv1_2fmeta_2fheartbeat_2eproto = {
false, false, 1382, descriptor_table_protodef_greptime_2fv1_2fmeta_2fheartbeat_2eproto,
false, false, 1466, descriptor_table_protodef_greptime_2fv1_2fmeta_2fheartbeat_2eproto,
"greptime/v1/meta/heartbeat.proto",
&descriptor_table_greptime_2fv1_2fmeta_2fheartbeat_2eproto_once, descriptor_table_greptime_2fv1_2fmeta_2fheartbeat_2eproto_deps, 1, 7,
schemas, file_default_instances, TableStruct_greptime_2fv1_2fmeta_2fheartbeat_2eproto::offsets,
@@ -295,6 +299,20 @@ PROTOBUF_ATTRIBUTE_INIT_PRIORITY2 static ::_pbi::AddDescriptorsRunner dynamic_in
namespace greptime {
namespace v1 {
namespace meta {
const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* RegionRole_descriptor() {
::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&descriptor_table_greptime_2fv1_2fmeta_2fheartbeat_2eproto);
return file_level_enum_descriptors_greptime_2fv1_2fmeta_2fheartbeat_2eproto[0];
}
bool RegionRole_IsValid(int value) {
switch (value) {
case 0:
case 1:
return true;
default:
return false;
}
}
// ===================================================================
@@ -745,6 +763,7 @@ RegionStat::RegionStat(const RegionStat& from)
, decltype(_impl_.wcus_){}
, decltype(_impl_.approximate_bytes_){}
, decltype(_impl_.approximate_rows_){}
, decltype(_impl_.role_){}
, /*decltype(_impl_._cached_size_)*/{}};
_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
@@ -757,8 +776,8 @@ RegionStat::RegionStat(const RegionStat& from)
_this->GetArenaForAllocation());
}
::memcpy(&_impl_.region_id_, &from._impl_.region_id_,
static_cast<size_t>(reinterpret_cast<char*>(&_impl_.approximate_rows_) -
reinterpret_cast<char*>(&_impl_.region_id_)) + sizeof(_impl_.approximate_rows_));
static_cast<size_t>(reinterpret_cast<char*>(&_impl_.role_) -
reinterpret_cast<char*>(&_impl_.region_id_)) + sizeof(_impl_.role_));
// @@protoc_insertion_point(copy_constructor:greptime.v1.meta.RegionStat)
}
@@ -773,6 +792,7 @@ inline void RegionStat::SharedCtor(
, decltype(_impl_.wcus_){int64_t{0}}
, decltype(_impl_.approximate_bytes_){int64_t{0}}
, decltype(_impl_.approximate_rows_){int64_t{0}}
, decltype(_impl_.role_){0}
, /*decltype(_impl_._cached_size_)*/{}
};
_impl_.engine_.InitDefault();
@@ -807,8 +827,8 @@ void RegionStat::Clear() {
_impl_.engine_.ClearToEmpty();
::memset(&_impl_.region_id_, 0, static_cast<size_t>(
reinterpret_cast<char*>(&_impl_.approximate_rows_) -
reinterpret_cast<char*>(&_impl_.region_id_)) + sizeof(_impl_.approximate_rows_));
reinterpret_cast<char*>(&_impl_.role_) -
reinterpret_cast<char*>(&_impl_.region_id_)) + sizeof(_impl_.role_));
_internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}
@@ -868,6 +888,15 @@ const char* RegionStat::_InternalParse(const char* ptr, ::_pbi::ParseContext* ct
} else
goto handle_unusual;
continue;
// .greptime.v1.meta.RegionRole role = 7;
case 7:
if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 56)) {
uint64_t val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
CHK_(ptr);
_internal_set_role(static_cast<::greptime::v1::meta::RegionRole>(val));
} else
goto handle_unusual;
continue;
default:
goto handle_unusual;
} // switch
@@ -937,6 +966,13 @@ uint8_t* RegionStat::_InternalSerialize(
6, this->_internal_engine(), target);
}
// .greptime.v1.meta.RegionRole role = 7;
if (this->_internal_role() != 0) {
target = stream->EnsureSpace(target);
target = ::_pbi::WireFormatLite::WriteEnumToArray(
7, this->_internal_role(), target);
}
if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
_internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
@@ -985,6 +1021,12 @@ size_t RegionStat::ByteSizeLong() const {
total_size += ::_pbi::WireFormatLite::Int64SizePlusOne(this->_internal_approximate_rows());
}
// .greptime.v1.meta.RegionRole role = 7;
if (this->_internal_role() != 0) {
total_size += 1 +
::_pbi::WireFormatLite::EnumSize(this->_internal_role());
}
return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_);
}
@@ -1021,6 +1063,9 @@ void RegionStat::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PRO
if (from._internal_approximate_rows() != 0) {
_this->_internal_set_approximate_rows(from._internal_approximate_rows());
}
if (from._internal_role() != 0) {
_this->_internal_set_role(from._internal_role());
}
_this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}
@@ -1045,8 +1090,8 @@ void RegionStat::InternalSwap(RegionStat* other) {
&other->_impl_.engine_, rhs_arena
);
::PROTOBUF_NAMESPACE_ID::internal::memswap<
PROTOBUF_FIELD_OFFSET(RegionStat, _impl_.approximate_rows_)
+ sizeof(RegionStat::_impl_.approximate_rows_)
PROTOBUF_FIELD_OFFSET(RegionStat, _impl_.role_)
+ sizeof(RegionStat::_impl_.role_)
- PROTOBUF_FIELD_OFFSET(RegionStat, _impl_.region_id_)>(
reinterpret_cast<char*>(&_impl_.region_id_),
reinterpret_cast<char*>(&other->_impl_.region_id_));
+67
View File
@@ -29,6 +29,7 @@
#include <google/protobuf/message.h>
#include <google/protobuf/repeated_field.h> // IWYU pragma: export
#include <google/protobuf/extension_set.h> // IWYU pragma: export
#include <google/protobuf/generated_enum_reflection.h>
#include <google/protobuf/unknown_field_set.h>
#include "greptime/v1/meta/common.pb.h"
// @@protoc_insertion_point(includes)
@@ -85,6 +86,31 @@ namespace greptime {
namespace v1 {
namespace meta {
enum RegionRole : int {
Leader = 0,
Follower = 1,
RegionRole_INT_MIN_SENTINEL_DO_NOT_USE_ = std::numeric_limits<int32_t>::min(),
RegionRole_INT_MAX_SENTINEL_DO_NOT_USE_ = std::numeric_limits<int32_t>::max()
};
bool RegionRole_IsValid(int value);
constexpr RegionRole RegionRole_MIN = Leader;
constexpr RegionRole RegionRole_MAX = Follower;
constexpr int RegionRole_ARRAYSIZE = RegionRole_MAX + 1;
const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* RegionRole_descriptor();
template<typename T>
inline const std::string& RegionRole_Name(T enum_t_value) {
static_assert(::std::is_same<T, RegionRole>::value ||
::std::is_integral<T>::value,
"Incorrect type passed to function RegionRole_Name.");
return ::PROTOBUF_NAMESPACE_ID::internal::NameOfEnum(
RegionRole_descriptor(), enum_t_value);
}
inline bool RegionRole_Parse(
::PROTOBUF_NAMESPACE_ID::ConstStringParam name, RegionRole* value) {
return ::PROTOBUF_NAMESPACE_ID::internal::ParseNamedEnum<RegionRole>(
RegionRole_descriptor(), name, value);
}
// ===================================================================
class HeartbeatRequest final :
@@ -473,6 +499,7 @@ class RegionStat final :
kWcusFieldNumber = 3,
kApproximateBytesFieldNumber = 4,
kApproximateRowsFieldNumber = 5,
kRoleFieldNumber = 7,
};
// string engine = 6;
void clear_engine();
@@ -533,6 +560,15 @@ class RegionStat final :
void _internal_set_approximate_rows(int64_t value);
public:
// .greptime.v1.meta.RegionRole role = 7;
void clear_role();
::greptime::v1::meta::RegionRole role() const;
void set_role(::greptime::v1::meta::RegionRole value);
private:
::greptime::v1::meta::RegionRole _internal_role() const;
void _internal_set_role(::greptime::v1::meta::RegionRole value);
public:
// @@protoc_insertion_point(class_scope:greptime.v1.meta.RegionStat)
private:
class _Internal;
@@ -547,6 +583,7 @@ class RegionStat final :
int64_t wcus_;
int64_t approximate_bytes_;
int64_t approximate_rows_;
int role_;
mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
};
union { Impl_ _impl_; };
@@ -2101,6 +2138,26 @@ inline void RegionStat::set_allocated_engine(std::string* engine) {
// @@protoc_insertion_point(field_set_allocated:greptime.v1.meta.RegionStat.engine)
}
// .greptime.v1.meta.RegionRole role = 7;
inline void RegionStat::clear_role() {
_impl_.role_ = 0;
}
inline ::greptime::v1::meta::RegionRole RegionStat::_internal_role() const {
return static_cast< ::greptime::v1::meta::RegionRole >(_impl_.role_);
}
inline ::greptime::v1::meta::RegionRole RegionStat::role() const {
// @@protoc_insertion_point(field_get:greptime.v1.meta.RegionStat.role)
return _internal_role();
}
inline void RegionStat::_internal_set_role(::greptime::v1::meta::RegionRole value) {
_impl_.role_ = value;
}
inline void RegionStat::set_role(::greptime::v1::meta::RegionRole value) {
_internal_set_role(value);
// @@protoc_insertion_point(field_set:greptime.v1.meta.RegionStat.role)
}
// -------------------------------------------------------------------
// HeartbeatResponse
@@ -3026,6 +3083,16 @@ inline MailboxMessage::PayloadCase MailboxMessage::payload_case() const {
} // namespace v1
} // namespace greptime
PROTOBUF_NAMESPACE_OPEN
template <> struct is_proto_enum< ::greptime::v1::meta::RegionRole> : ::std::true_type {};
template <>
inline const EnumDescriptor* GetEnumDescriptor< ::greptime::v1::meta::RegionRole>() {
return ::greptime::v1::meta::RegionRole_descriptor();
}
PROTOBUF_NAMESPACE_CLOSE
// @@protoc_insertion_point(global_scope)
#include <google/protobuf/port_undef.inc>