feat: add closeable_region_ids in RegionLease (#125)

* feat: add closeable_region_ids in RegionLease

* fix: use repeated uint64
This commit is contained in:
Weny Xu
2023-12-04 18:42:07 +09:00
committed by GitHub
parent 2aaee38de8
commit 4377b4377c
5 changed files with 423 additions and 98 deletions
+69 -23
View File
@@ -93,6 +93,8 @@ PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORIT
PROTOBUF_CONSTEXPR RegionLease::RegionLease(
::_pbi::ConstantInitialized): _impl_{
/*decltype(_impl_.regions_)*/{}
, /*decltype(_impl_.closeable_region_ids_)*/{}
, /*decltype(_impl_._closeable_region_ids_cached_byte_size_)*/{0}
, /*decltype(_impl_.duration_since_epoch_)*/uint64_t{0u}
, /*decltype(_impl_.lease_seconds_)*/uint64_t{0u}
, /*decltype(_impl_._cached_size_)*/{}} {}
@@ -211,6 +213,7 @@ const uint32_t TableStruct_greptime_2fv1_2fmeta_2fheartbeat_2eproto::offsets[] P
PROTOBUF_FIELD_OFFSET(::greptime::v1::meta::RegionLease, _impl_.regions_),
PROTOBUF_FIELD_OFFSET(::greptime::v1::meta::RegionLease, _impl_.duration_since_epoch_),
PROTOBUF_FIELD_OFFSET(::greptime::v1::meta::RegionLease, _impl_.lease_seconds_),
PROTOBUF_FIELD_OFFSET(::greptime::v1::meta::RegionLease, _impl_.closeable_region_ids_),
~0u, // no _has_bits_
PROTOBUF_FIELD_OFFSET(::greptime::v1::meta::AskLeaderRequest, _internal_metadata_),
~0u, // no _extensions_
@@ -246,9 +249,9 @@ static const ::_pbi::MigrationSchema schemas[] PROTOBUF_SECTION_VARIABLE(protode
{ 26, -1, -1, sizeof(::greptime::v1::meta::HeartbeatResponse)},
{ 35, -1, -1, sizeof(::greptime::v1::meta::GrantedRegion)},
{ 43, -1, -1, sizeof(::greptime::v1::meta::RegionLease)},
{ 52, -1, -1, sizeof(::greptime::v1::meta::AskLeaderRequest)},
{ 59, -1, -1, sizeof(::greptime::v1::meta::AskLeaderResponse)},
{ 67, -1, -1, sizeof(::greptime::v1::meta::MailboxMessage)},
{ 53, -1, -1, sizeof(::greptime::v1::meta::AskLeaderRequest)},
{ 60, -1, -1, sizeof(::greptime::v1::meta::AskLeaderResponse)},
{ 68, -1, -1, sizeof(::greptime::v1::meta::MailboxMessage)},
};
static const ::_pb::Message* const file_default_instances[] = {
@@ -284,32 +287,33 @@ const char descriptor_table_protodef_greptime_2fv1_2fmeta_2fheartbeat_2eproto[]
"egion_lease\030\003 \001(\0132\035.greptime.v1.meta.Reg"
"ionLease\"N\n\rGrantedRegion\022\021\n\tregion_id\030\001"
" \001(\004\022*\n\004role\030\002 \001(\0162\034.greptime.v1.meta.Re"
"gionRole\"t\n\013RegionLease\0220\n\007regions\030\001 \003(\013"
"2\037.greptime.v1.meta.GrantedRegion\022\034\n\024dur"
"ation_since_epoch\030\002 \001(\004\022\025\n\rlease_seconds"
"\030\003 \001(\004\"C\n\020AskLeaderRequest\022/\n\006header\030\001 \001"
"(\0132\037.greptime.v1.meta.RequestHeader\"m\n\021A"
"skLeaderResponse\0220\n\006header\030\001 \001(\0132 .grept"
"ime.v1.meta.ResponseHeader\022&\n\006leader\030\002 \001"
"(\0132\026.greptime.v1.meta.Peer\"|\n\016MailboxMes"
"sage\022\n\n\002id\030\001 \001(\004\022\017\n\007subject\030\002 \001(\t\022\014\n\004fro"
"m\030\003 \001(\t\022\n\n\002to\030\004 \001(\t\022\030\n\020timestamp_millis\030"
"\005 \001(\003\022\016\n\004json\030\006 \001(\tH\000B\t\n\007payload*&\n\nRegi"
"onRole\022\n\n\006Leader\020\000\022\014\n\010Follower\020\0012\277\001\n\tHea"
"rtbeat\022Z\n\tHeartbeat\022\".greptime.v1.meta.H"
"eartbeatRequest\032#.greptime.v1.meta.Heart"
"beatResponse\"\000(\0010\001\022V\n\tAskLeader\022\".grepti"
"me.v1.meta.AskLeaderRequest\032#.greptime.v"
"1.meta.AskLeaderResponse\"\000B<Z:github.com"
"/GreptimeTeam/greptime-proto/go/greptime"
"/v1/metab\006proto3"
"gionRole\"\222\001\n\013RegionLease\0220\n\007regions\030\001 \003("
"\0132\037.greptime.v1.meta.GrantedRegion\022\034\n\024du"
"ration_since_epoch\030\002 \001(\004\022\025\n\rlease_second"
"s\030\003 \001(\004\022\034\n\024closeable_region_ids\030\004 \003(\004\"C\n"
"\020AskLeaderRequest\022/\n\006header\030\001 \001(\0132\037.grep"
"time.v1.meta.RequestHeader\"m\n\021AskLeaderR"
"esponse\0220\n\006header\030\001 \001(\0132 .greptime.v1.me"
"ta.ResponseHeader\022&\n\006leader\030\002 \001(\0132\026.grep"
"time.v1.meta.Peer\"|\n\016MailboxMessage\022\n\n\002i"
"d\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_millis\030\005 \001(\003\022\016\n\004"
"json\030\006 \001(\tH\000B\t\n\007payload*&\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.HeartbeatR"
"equest\032#.greptime.v1.meta.HeartbeatRespo"
"nse\"\000(\0010\001\022V\n\tAskLeader\022\".greptime.v1.met"
"a.AskLeaderRequest\032#.greptime.v1.meta.As"
"kLeaderResponse\"\000B<Z:github.com/Greptime"
"Team/greptime-proto/go/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, 1576, descriptor_table_protodef_greptime_2fv1_2fmeta_2fheartbeat_2eproto,
false, false, 1607, 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, 8,
schemas, file_default_instances, TableStruct_greptime_2fv1_2fmeta_2fheartbeat_2eproto::offsets,
@@ -1646,6 +1650,8 @@ RegionLease::RegionLease(const RegionLease& from)
RegionLease* const _this = this; (void)_this;
new (&_impl_) Impl_{
decltype(_impl_.regions_){from._impl_.regions_}
, decltype(_impl_.closeable_region_ids_){from._impl_.closeable_region_ids_}
, /*decltype(_impl_._closeable_region_ids_cached_byte_size_)*/{0}
, decltype(_impl_.duration_since_epoch_){}
, decltype(_impl_.lease_seconds_){}
, /*decltype(_impl_._cached_size_)*/{}};
@@ -1663,6 +1669,8 @@ inline void RegionLease::SharedCtor(
(void)is_message_owned;
new (&_impl_) Impl_{
decltype(_impl_.regions_){arena}
, decltype(_impl_.closeable_region_ids_){arena}
, /*decltype(_impl_._closeable_region_ids_cached_byte_size_)*/{0}
, decltype(_impl_.duration_since_epoch_){uint64_t{0u}}
, decltype(_impl_.lease_seconds_){uint64_t{0u}}
, /*decltype(_impl_._cached_size_)*/{}
@@ -1681,6 +1689,7 @@ RegionLease::~RegionLease() {
inline void RegionLease::SharedDtor() {
GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
_impl_.regions_.~RepeatedPtrField();
_impl_.closeable_region_ids_.~RepeatedField();
}
void RegionLease::SetCachedSize(int size) const {
@@ -1694,6 +1703,7 @@ void RegionLease::Clear() {
(void) cached_has_bits;
_impl_.regions_.Clear();
_impl_.closeable_region_ids_.Clear();
::memset(&_impl_.duration_since_epoch_, 0, static_cast<size_t>(
reinterpret_cast<char*>(&_impl_.lease_seconds_) -
reinterpret_cast<char*>(&_impl_.duration_since_epoch_)) + sizeof(_impl_.lease_seconds_));
@@ -1735,6 +1745,17 @@ const char* RegionLease::_InternalParse(const char* ptr, ::_pbi::ParseContext* c
} else
goto handle_unusual;
continue;
// repeated uint64 closeable_region_ids = 4;
case 4:
if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 34)) {
ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedUInt64Parser(_internal_mutable_closeable_region_ids(), ptr, ctx);
CHK_(ptr);
} else if (static_cast<uint8_t>(tag) == 32) {
_internal_add_closeable_region_ids(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
CHK_(ptr);
} else
goto handle_unusual;
continue;
default:
goto handle_unusual;
} // switch
@@ -1784,6 +1805,15 @@ uint8_t* RegionLease::_InternalSerialize(
target = ::_pbi::WireFormatLite::WriteUInt64ToArray(3, this->_internal_lease_seconds(), target);
}
// repeated uint64 closeable_region_ids = 4;
{
int byte_size = _impl_._closeable_region_ids_cached_byte_size_.load(std::memory_order_relaxed);
if (byte_size > 0) {
target = stream->WriteUInt64Packed(
4, _internal_closeable_region_ids(), byte_size, 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);
@@ -1807,6 +1837,20 @@ size_t RegionLease::ByteSizeLong() const {
::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg);
}
// repeated uint64 closeable_region_ids = 4;
{
size_t data_size = ::_pbi::WireFormatLite::
UInt64Size(this->_impl_.closeable_region_ids_);
if (data_size > 0) {
total_size += 1 +
::_pbi::WireFormatLite::Int32Size(static_cast<int32_t>(data_size));
}
int cached_size = ::_pbi::ToCachedSize(data_size);
_impl_._closeable_region_ids_cached_byte_size_.store(cached_size,
std::memory_order_relaxed);
total_size += data_size;
}
// uint64 duration_since_epoch = 2;
if (this->_internal_duration_since_epoch() != 0) {
total_size += ::_pbi::WireFormatLite::UInt64SizePlusOne(this->_internal_duration_since_epoch());
@@ -1836,6 +1880,7 @@ void RegionLease::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PR
(void) cached_has_bits;
_this->_impl_.regions_.MergeFrom(from._impl_.regions_);
_this->_impl_.closeable_region_ids_.MergeFrom(from._impl_.closeable_region_ids_);
if (from._internal_duration_since_epoch() != 0) {
_this->_internal_set_duration_since_epoch(from._internal_duration_since_epoch());
}
@@ -1860,6 +1905,7 @@ void RegionLease::InternalSwap(RegionLease* other) {
using std::swap;
_internal_metadata_.InternalSwap(&other->_internal_metadata_);
_impl_.regions_.InternalSwap(&other->_impl_.regions_);
_impl_.closeable_region_ids_.InternalSwap(&other->_impl_.closeable_region_ids_);
::PROTOBUF_NAMESPACE_ID::internal::memswap<
PROTOBUF_FIELD_OFFSET(RegionLease, _impl_.lease_seconds_)
+ sizeof(RegionLease::_impl_.lease_seconds_)
+72
View File
@@ -1073,6 +1073,7 @@ class RegionLease final :
enum : int {
kRegionsFieldNumber = 1,
kCloseableRegionIdsFieldNumber = 4,
kDurationSinceEpochFieldNumber = 2,
kLeaseSecondsFieldNumber = 3,
};
@@ -1094,6 +1095,28 @@ class RegionLease final :
const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::greptime::v1::meta::GrantedRegion >&
regions() const;
// repeated uint64 closeable_region_ids = 4;
int closeable_region_ids_size() const;
private:
int _internal_closeable_region_ids_size() const;
public:
void clear_closeable_region_ids();
private:
uint64_t _internal_closeable_region_ids(int index) const;
const ::PROTOBUF_NAMESPACE_ID::RepeatedField< uint64_t >&
_internal_closeable_region_ids() const;
void _internal_add_closeable_region_ids(uint64_t value);
::PROTOBUF_NAMESPACE_ID::RepeatedField< uint64_t >*
_internal_mutable_closeable_region_ids();
public:
uint64_t closeable_region_ids(int index) const;
void set_closeable_region_ids(int index, uint64_t value);
void add_closeable_region_ids(uint64_t value);
const ::PROTOBUF_NAMESPACE_ID::RepeatedField< uint64_t >&
closeable_region_ids() const;
::PROTOBUF_NAMESPACE_ID::RepeatedField< uint64_t >*
mutable_closeable_region_ids();
// uint64 duration_since_epoch = 2;
void clear_duration_since_epoch();
uint64_t duration_since_epoch() const;
@@ -1121,6 +1144,8 @@ class RegionLease final :
typedef void DestructorSkippable_;
struct Impl_ {
::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::greptime::v1::meta::GrantedRegion > regions_;
::PROTOBUF_NAMESPACE_ID::RepeatedField< uint64_t > closeable_region_ids_;
mutable std::atomic<int> _closeable_region_ids_cached_byte_size_;
uint64_t duration_since_epoch_;
uint64_t lease_seconds_;
mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
@@ -2713,6 +2738,53 @@ inline void RegionLease::set_lease_seconds(uint64_t value) {
// @@protoc_insertion_point(field_set:greptime.v1.meta.RegionLease.lease_seconds)
}
// repeated uint64 closeable_region_ids = 4;
inline int RegionLease::_internal_closeable_region_ids_size() const {
return _impl_.closeable_region_ids_.size();
}
inline int RegionLease::closeable_region_ids_size() const {
return _internal_closeable_region_ids_size();
}
inline void RegionLease::clear_closeable_region_ids() {
_impl_.closeable_region_ids_.Clear();
}
inline uint64_t RegionLease::_internal_closeable_region_ids(int index) const {
return _impl_.closeable_region_ids_.Get(index);
}
inline uint64_t RegionLease::closeable_region_ids(int index) const {
// @@protoc_insertion_point(field_get:greptime.v1.meta.RegionLease.closeable_region_ids)
return _internal_closeable_region_ids(index);
}
inline void RegionLease::set_closeable_region_ids(int index, uint64_t value) {
_impl_.closeable_region_ids_.Set(index, value);
// @@protoc_insertion_point(field_set:greptime.v1.meta.RegionLease.closeable_region_ids)
}
inline void RegionLease::_internal_add_closeable_region_ids(uint64_t value) {
_impl_.closeable_region_ids_.Add(value);
}
inline void RegionLease::add_closeable_region_ids(uint64_t value) {
_internal_add_closeable_region_ids(value);
// @@protoc_insertion_point(field_add:greptime.v1.meta.RegionLease.closeable_region_ids)
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedField< uint64_t >&
RegionLease::_internal_closeable_region_ids() const {
return _impl_.closeable_region_ids_;
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedField< uint64_t >&
RegionLease::closeable_region_ids() const {
// @@protoc_insertion_point(field_list:greptime.v1.meta.RegionLease.closeable_region_ids)
return _internal_closeable_region_ids();
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedField< uint64_t >*
RegionLease::_internal_mutable_closeable_region_ids() {
return &_impl_.closeable_region_ids_;
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedField< uint64_t >*
RegionLease::mutable_closeable_region_ids() {
// @@protoc_insertion_point(field_mutable_list:greptime.v1.meta.RegionLease.closeable_region_ids)
return _internal_mutable_closeable_region_ids();
}
// -------------------------------------------------------------------
// AskLeaderRequest