mirror of
https://github.com/scylladb/scylladb.git
synced 2026-04-28 12:17:02 +00:00
Merge 'gms: define and use generation and version types' from Benny Halevy
This series cleans up the generation and value types used in gms / gossiper. Currently we use a blend of int, int32_t, and int64_t around messaging. This change defines gms::generation_type and gms::version_type as int32_t and add check in non-release modes that the respective int64 value passed over messaging do not overflow 32 bits. Closes #12966 * github.com:scylladb/scylladb: gossiper: version_generator: add {debug_,}validate_gossip_generation gms: gossip_digest: use generation_type and version_type gms: heart_beat_state: use generation_type and version_type gms: versioned_value: use version_type gms: version_generator: define version_type and generation_type strong types utils: move generation-number to gms utils: add tagged_integer gms: versioned_value: make members private scylla-gdb: add get_gms_versioned_value gms: versioned_value: delete unused compare_to function gms: gossip_digest: delete unused compare_to function
This commit is contained in:
@@ -98,7 +98,7 @@ int main(int ac, char ** av) {
|
||||
|
||||
using namespace std::chrono;
|
||||
auto now = high_resolution_clock::now().time_since_epoch();
|
||||
int generation_number = duration_cast<seconds>(now).count();
|
||||
auto generation_number = gms::generation_type(duration_cast<seconds>(now).count());
|
||||
gossiper.local().start_gossiping(generation_number, app_states).get();
|
||||
static double load = 0.5;
|
||||
for (;;) {
|
||||
|
||||
@@ -56,8 +56,8 @@ public:
|
||||
auto from = netw::messaging_service::get_source(cinfo);
|
||||
auto ep1 = inet_address("1.1.1.1");
|
||||
auto ep2 = inet_address("2.2.2.2");
|
||||
int32_t gen = 800;
|
||||
int32_t ver = 900;
|
||||
gms::generation_type gen(800);
|
||||
gms::version_type ver(900);
|
||||
utils::chunked_vector<gms::gossip_digest> digests;
|
||||
digests.push_back(gms::gossip_digest(ep1, gen++, ver++));
|
||||
digests.push_back(gms::gossip_digest(ep2, gen++, ver++));
|
||||
@@ -114,8 +114,8 @@ public:
|
||||
auto id = get_msg_addr();
|
||||
auto ep1 = inet_address("1.1.1.1");
|
||||
auto ep2 = inet_address("2.2.2.2");
|
||||
int32_t gen = 100;
|
||||
int32_t ver = 900;
|
||||
gms::generation_type gen(100);
|
||||
gms::version_type ver(900);
|
||||
utils::chunked_vector<gms::gossip_digest> digests;
|
||||
digests.push_back(gms::gossip_digest(ep1, gen++, ver++));
|
||||
digests.push_back(gms::gossip_digest(ep2, gen++, ver++));
|
||||
|
||||
@@ -893,7 +893,7 @@ class persistence {
|
||||
if (b == _stored_entries.end() || (*b)->idx >= idx) {
|
||||
return b;
|
||||
}
|
||||
return b + std::min((idx - (*b)->idx).get_value(), _stored_entries.size());
|
||||
return b + std::min(size_t(idx - (*b)->idx), _stored_entries.size());
|
||||
}
|
||||
|
||||
public:
|
||||
|
||||
Reference in New Issue
Block a user