treewide: replace generation_type::value() with generation_type::as_int()
* replace generation_type::value() with generation_type::as_int() * drop generation_value() because we will switch over to UUID based generation identifier, the member function or the free function generation_value() cannot fulfill the needs anymore. so, in this change, they are consolidated and are replaced by "as_int()", whose name is more specific, and will also work and won't be misleading even after switching to UUID based generation identifier. as `value()` would be confusing by then: it could be an integer or a UUID. Signed-off-by: Kefu Chai <kefu.chai@scylladb.com>
This commit is contained in:
@@ -1257,7 +1257,7 @@ void set_storage_service(http_context& ctx, routes& r, sharded<service::storage_
|
||||
ss::sstable info;
|
||||
|
||||
info.timestamp = t;
|
||||
info.generation = sstables::generation_value(sstable->generation());
|
||||
info.generation = sstable->generation().as_int();
|
||||
info.level = sstable->get_sstable_level();
|
||||
info.size = sstable->bytes_on_disk();
|
||||
info.data_size = sstable->ondisk_data_size();
|
||||
|
||||
@@ -474,7 +474,7 @@ distributed_loader::process_upload_dir(distributed<replica::database>& db, distr
|
||||
sharded<sstables::sstable_generation_generator> sharded_gen;
|
||||
auto highest_generation = highest_generation_seen(directory).get0().value_or(
|
||||
sstables::generation_type{0});
|
||||
sharded_gen.start(highest_generation.value()).get();
|
||||
sharded_gen.start(highest_generation.as_int()).get();
|
||||
auto stop_generator = deferred_stop(sharded_gen);
|
||||
|
||||
auto make_sstable = [&] (shard_id shard) {
|
||||
|
||||
@@ -67,7 +67,7 @@ static seastar::metrics::label keyspace_label("ks");
|
||||
using namespace std::chrono_literals;
|
||||
|
||||
void table::update_sstables_known_generation(std::optional<sstables::generation_type> generation) {
|
||||
auto gen = generation.value_or(sstables::generation_type(0)).value();
|
||||
auto gen = generation.value_or(sstables::generation_type(0)).as_int();
|
||||
if (_sstable_generation_generator) {
|
||||
_sstable_generation_generator->update_known_generation(gen);
|
||||
} else {
|
||||
|
||||
@@ -34,8 +34,9 @@ public:
|
||||
generation_type() = delete;
|
||||
|
||||
explicit constexpr generation_type(int_t value) noexcept: _value(value) {}
|
||||
constexpr int_t value() const noexcept { return _value; }
|
||||
|
||||
constexpr int_t as_int() const noexcept {
|
||||
return _value;
|
||||
}
|
||||
// convert to data_value
|
||||
//
|
||||
// this function is used when performing queries to SSTABLES_REGISTRY in
|
||||
@@ -71,9 +72,6 @@ public:
|
||||
constexpr generation_type generation_from_value(generation_type::int_t value) {
|
||||
return generation_type{value};
|
||||
}
|
||||
constexpr generation_type::int_t generation_value(generation_type generation) {
|
||||
return generation.value();
|
||||
}
|
||||
|
||||
template <std::ranges::range Range, typename Target = std::vector<sstables::generation_type>>
|
||||
Target generations_from_values(const Range& values) {
|
||||
@@ -124,7 +122,7 @@ namespace std {
|
||||
template <>
|
||||
struct hash<sstables::generation_type> {
|
||||
size_t operator()(const sstables::generation_type& generation) const noexcept {
|
||||
return hash<sstables::generation_type::int_t>{}(generation.value());
|
||||
return hash<sstables::generation_type::int_t>{}(generation.as_int());
|
||||
}
|
||||
};
|
||||
|
||||
@@ -144,6 +142,6 @@ template <>
|
||||
struct fmt::formatter<sstables::generation_type> : fmt::formatter<std::string_view> {
|
||||
template <typename FormatContext>
|
||||
auto format(const sstables::generation_type& generation, FormatContext& ctx) const {
|
||||
return fmt::format_to(ctx.out(), "{}", generation.value());
|
||||
return fmt::format_to(ctx.out(), "{}", generation.as_int());
|
||||
}
|
||||
};
|
||||
|
||||
@@ -73,7 +73,7 @@ sstable_directory::sstable_directory(sstables_manager& manager,
|
||||
{}
|
||||
|
||||
void sstable_directory::filesystem_components_lister::handle(sstables::entry_descriptor desc, fs::path filename) {
|
||||
if ((generation_value(desc.generation) % smp::count) != this_shard_id()) {
|
||||
if ((desc.generation.as_int() % smp::count) != this_shard_id()) {
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -293,7 +293,7 @@ future<> sstable_directory::system_keyspace_components_lister::process(sstable_d
|
||||
// FIXME -- handle
|
||||
return make_ready_future<>();
|
||||
}
|
||||
if ((generation_value(desc.generation) % smp::count) != this_shard_id()) {
|
||||
if ((desc.generation.as_int() % smp::count) != this_shard_id()) {
|
||||
return make_ready_future<>();
|
||||
}
|
||||
|
||||
@@ -573,7 +573,7 @@ highest_generation_seen(sharded<sstables::sstable_directory>& directory) {
|
||||
return sstables::generation_type(0);
|
||||
}
|
||||
});
|
||||
co_return highest.value() ? std::make_optional(highest): std::nullopt;
|
||||
co_return highest.as_int() ? std::make_optional(highest) : std::nullopt;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -64,7 +64,7 @@ public:
|
||||
{ }
|
||||
|
||||
sstable_assertions(test_env& env, shared_sstable sst)
|
||||
: sstable_assertions(env, sst->get_schema(), env.tempdir().path().native(), sst->get_version(), sst->generation().value())
|
||||
: sstable_assertions(env, sst->get_schema(), env.tempdir().path().native(), sst->get_version(), sst->generation().as_int())
|
||||
{}
|
||||
|
||||
test_env& get_env() {
|
||||
|
||||
@@ -2894,7 +2894,7 @@ SEASTAR_TEST_CASE(sstable_run_based_compaction_test) {
|
||||
BOOST_REQUIRE(*expected_sst == old_sstables.front()->generation());
|
||||
expected_sst++;
|
||||
// check that previously released sstables were already closed
|
||||
if (generation_value(old_sstables.front()->generation()) % 4 == 0) {
|
||||
if (auto v = old_sstables.front()->generation().as_int(); v % 4 == 0) {
|
||||
// Due to performance reasons, sstables are not released immediately, but in batches.
|
||||
// At the time of writing, mutation_reader_merger releases it's sstable references
|
||||
// in batches of 4. That's why we only perform this check every 4th sstable.
|
||||
|
||||
@@ -2822,7 +2822,7 @@ SEASTAR_TEST_CASE(compound_sstable_set_basic_test) {
|
||||
set2->insert(sstable_for_overlapping_test(env, s, keys[0].key(), keys[1].key(), 0));
|
||||
set2->insert(sstable_for_overlapping_test(env, s, keys[0].key(), keys[1].key(), 0));
|
||||
|
||||
BOOST_REQUIRE(boost::accumulate(*compound->all() | boost::adaptors::transformed([] (const sstables::shared_sstable& sst) { return generation_value(sst->generation()); }), unsigned(0)) == 6);
|
||||
BOOST_REQUIRE(boost::accumulate(*compound->all() | boost::adaptors::transformed([] (const sstables::shared_sstable& sst) { return sst->generation().as_int(); }), unsigned(0)) == 6);
|
||||
{
|
||||
unsigned found = 0;
|
||||
for (auto sstables = compound->all(); [[maybe_unused]] auto& sst : *sstables) {
|
||||
|
||||
@@ -491,7 +491,7 @@ SEASTAR_TEST_CASE(sstable_directory_shared_sstables_reshard_correctly) {
|
||||
|
||||
auto max_generation_seen = highest_generation_seen(sstdir).get0();
|
||||
std::atomic<sstables::generation_type::int_t> generation_for_test = {};
|
||||
generation_for_test.store(max_generation_seen->value() + 1, std::memory_order_relaxed);
|
||||
generation_for_test.store(max_generation_seen->as_int() + 1, std::memory_order_relaxed);
|
||||
|
||||
distributed_loader_for_tests::reshard(sstdir, e.db(), "ks", "cf", [&e, upload_path, &generation_for_test] (shard_id id) {
|
||||
auto generation = generation_for_test.fetch_add(1, std::memory_order_relaxed);
|
||||
@@ -532,7 +532,7 @@ SEASTAR_TEST_CASE(sstable_directory_shared_sstables_reshard_distributes_well_eve
|
||||
|
||||
auto max_generation_seen = highest_generation_seen(sstdir).get0();
|
||||
std::atomic<sstables::generation_type::int_t> generation_for_test = {};
|
||||
generation_for_test.store(max_generation_seen->value() + 1, std::memory_order_relaxed);
|
||||
generation_for_test.store(max_generation_seen->as_int() + 1, std::memory_order_relaxed);
|
||||
|
||||
distributed_loader_for_tests::reshard(sstdir, e.db(), "ks", "cf", [&e, upload_path, &generation_for_test] (shard_id id) {
|
||||
auto generation = generation_for_test.fetch_add(1, std::memory_order_relaxed);
|
||||
@@ -573,7 +573,7 @@ SEASTAR_TEST_CASE(sstable_directory_shared_sstables_reshard_respect_max_threshol
|
||||
|
||||
auto max_generation_seen = highest_generation_seen(sstdir).get0();
|
||||
std::atomic<sstables::generation_type::int_t> generation_for_test = {};
|
||||
generation_for_test.store(max_generation_seen->value() + 1, std::memory_order_relaxed);
|
||||
generation_for_test.store(max_generation_seen->as_int() + 1, std::memory_order_relaxed);
|
||||
|
||||
distributed_loader_for_tests::reshard(sstdir, e.db(), "ks", "cf", [&e, upload_path, &generation_for_test] (shard_id id) {
|
||||
auto generation = generation_for_test.fetch_add(1, std::memory_order_relaxed);
|
||||
|
||||
@@ -118,7 +118,7 @@ void run_sstable_resharding_test(sstables::test_env& env) {
|
||||
std::unordered_set<shard_id> processed_shards;
|
||||
|
||||
for (auto& sstable : new_sstables) {
|
||||
auto new_sst = env.reusable_sst(s, generation_value(sstable->generation()), version).get0();
|
||||
auto new_sst = env.reusable_sst(s, sstable->generation().as_int(), version).get0();
|
||||
bloom_filter_size_after += filter_size(new_sst);
|
||||
auto shards = new_sst->get_shards_for_this_sstable();
|
||||
BOOST_REQUIRE(shards.size() == 1); // check sstable is unshared.
|
||||
@@ -196,7 +196,7 @@ SEASTAR_TEST_CASE(sstable_is_shared_correctness) {
|
||||
BOOST_REQUIRE(!sst->is_shared());
|
||||
|
||||
auto all_shards_s = get_schema(smp::count, cfg->murmur3_partitioner_ignore_msb_bits());
|
||||
sst = env.reusable_sst(all_shards_s, generation_value(sst->generation()), version).get0();
|
||||
sst = env.reusable_sst(all_shards_s, sst->generation().as_int(), version).get0();
|
||||
BOOST_REQUIRE(smp::count == 1 || sst->is_shared());
|
||||
BOOST_REQUIRE(sst->get_shards_for_this_sstable().size() == smp::count);
|
||||
assert_sstable_computes_correct_owners(env, sst).get();
|
||||
|
||||
@@ -175,7 +175,7 @@ SEASTAR_TEST_CASE(missing_summary_first_last_sane) {
|
||||
|
||||
static future<sstable_ptr> do_write_sst(test_env& env, schema_ptr schema, sstring load_dir, sstring write_dir, sstables::generation_type generation) {
|
||||
return env.reusable_sst(std::move(schema), load_dir, generation).then([write_dir, generation] (sstable_ptr sst) mutable {
|
||||
sstable_generation_generator gen(generation.value());
|
||||
sstable_generation_generator gen{generation.as_int()};
|
||||
sstables::test(sst).change_generation_number(gen());
|
||||
sstables::test(sst).change_dir(write_dir);
|
||||
auto fut = sstables::test(sst).store();
|
||||
|
||||
Reference in New Issue
Block a user