mirror of
https://github.com/scylladb/scylladb.git
synced 2026-06-01 20:46:56 +00:00
Merge branch 'dev/issue-845-set-incremental-backup-config-v1' from seastar-dev.git
From Vlad: This series modifies the 'database' class to use the internal _enable_incremental_backups value (initialized with 'incremental_backups' configuration value) instead of using the 'incremental_backups' configuration value directly. Then we update this internal value in runtime from 'nodetool enable/disablebackup' API callback so that newly created keyspaces and column families use the newly configured incremental backup configuration.
This commit is contained in:
@@ -588,6 +588,8 @@ void set_storage_service(http_context& ctx, routes& r) {
|
||||
auto val_str = req->get_query_param("value");
|
||||
bool value = (val_str == "True") || (val_str == "true") || (val_str == "1");
|
||||
return service::get_local_storage_service().db().invoke_on_all([value] (database& db) {
|
||||
db.set_enable_incremental_backups(value);
|
||||
|
||||
// Change both KS and CF, so they are in sync
|
||||
for (auto& pair: db.get_keyspaces()) {
|
||||
auto& ks = pair.second;
|
||||
|
||||
@@ -1028,6 +1028,7 @@ database::database() : database(db::config())
|
||||
database::database(const db::config& cfg)
|
||||
: _cfg(std::make_unique<db::config>(cfg))
|
||||
, _version(empty_version)
|
||||
, _enable_incremental_backups(cfg.incremental_backups())
|
||||
{
|
||||
_memtable_total_space = size_t(_cfg->memtable_total_space_in_mb()) << 20;
|
||||
if (!_memtable_total_space) {
|
||||
@@ -1834,7 +1835,7 @@ database::make_keyspace_config(const keyspace_metadata& ksm) {
|
||||
}
|
||||
cfg.dirty_memory_region_group = &_dirty_memory_region_group;
|
||||
cfg.cf_stats = &_cf_stats;
|
||||
cfg.enable_incremental_backups = _cfg->incremental_backups();
|
||||
cfg.enable_incremental_backups = _enable_incremental_backups;
|
||||
return cfg;
|
||||
}
|
||||
|
||||
|
||||
@@ -570,6 +570,7 @@ class database {
|
||||
std::vector<scollectd::registration> _collectd;
|
||||
timer<> _throttling_timer{[this] { unthrottle(); }};
|
||||
circular_buffer<promise<>> _throttled_requests;
|
||||
bool _enable_incremental_backups = false;
|
||||
|
||||
future<> init_commitlog();
|
||||
future<> apply_in_memory(const frozen_mutation& m, const schema_ptr& m_schema, const db::replay_position&);
|
||||
@@ -589,6 +590,8 @@ private:
|
||||
public:
|
||||
static utils::UUID empty_version;
|
||||
|
||||
void set_enable_incremental_backups(bool val) { _enable_incremental_backups = val; }
|
||||
|
||||
future<> parse_system_tables(distributed<service::storage_proxy>&);
|
||||
database();
|
||||
database(const db::config&);
|
||||
|
||||
Reference in New Issue
Block a user