Files
scylladb/db/tablet_options.hh
Avi Kivity 0ae22a09d4 LICENSE: Update to version 1.1
Updated terms of non-commercial use (must be a never-customer).
2026-04-12 19:46:33 +03:00

49 lines
1.1 KiB
C++

/*
* Copyright 2025-present ScyllaDB
*/
/*
* SPDX-License-Identifier: LicenseRef-ScyllaDB-Source-Available-1.1
*/
#pragma once
#include <map>
#include <seastar/core/sstring.hh>
using namespace seastar;
namespace db {
// Per-table tablet options
enum class tablet_option_type {
min_tablet_count,
max_tablet_count,
min_per_shard_tablet_count,
expected_data_size_in_gb,
};
struct tablet_options {
using map_type = std::map<sstring, sstring>;
std::optional<ssize_t> min_tablet_count;
std::optional<ssize_t> max_tablet_count;
std::optional<double> min_per_shard_tablet_count;
std::optional<ssize_t> expected_data_size_in_gb;
tablet_options() = default;
explicit tablet_options(const map_type& map);
operator bool() const noexcept {
return min_tablet_count || max_tablet_count || min_per_shard_tablet_count || expected_data_size_in_gb;
}
map_type to_map() const;
static sstring to_string(tablet_option_type hint);
static tablet_option_type from_string(sstring hint_desc);
static void validate(const map_type& map);
};
} // namespace db