mirror of
https://github.com/scylladb/scylladb.git
synced 2026-05-12 19:02:12 +00:00
database: Use nop_large_partition_handler to avoid self-reporting
Currently nop_large_partition_handler is only used in tests, but it can also be used avoid self-reporting. Tests: unit(Release) I also tested starting scylla with --compaction-large-partition-warning-threshold-mb=0. Signed-off-by: Rafael Ávila de Espíndola <espindola@scylladb.com> Message-Id: <20190123205059.39573-1-espindola@scylladb.com>
This commit is contained in:
committed by
Duarte Nunes
parent
4882f29f82
commit
f7d1dc16d4
10
database.cc
10
database.cc
@@ -162,6 +162,7 @@ database::database(const db::config& cfg, database_config dbcfg)
|
||||
, _enable_incremental_backups(cfg.incremental_backups())
|
||||
, _querier_cache(_read_concurrency_sem, dbcfg.available_memory * 0.04)
|
||||
, _large_partition_handler(std::make_unique<db::cql_table_large_partition_handler>(_cfg->compaction_large_partition_warning_threshold_mb()*1024*1024))
|
||||
, _nop_large_partition_handler(std::make_unique<db::nop_large_partition_handler>())
|
||||
, _result_memory_limiter(dbcfg.available_memory / 10)
|
||||
, _data_listeners(std::make_unique<db::data_listeners>(*this))
|
||||
{
|
||||
@@ -817,7 +818,14 @@ keyspace::make_column_family_config(const schema& s, const database& db) const {
|
||||
cfg.streaming_scheduling_group = _config.streaming_scheduling_group;
|
||||
cfg.statement_scheduling_group = _config.statement_scheduling_group;
|
||||
cfg.enable_metrics_reporting = db_config.enable_keyspace_column_family_metrics();
|
||||
cfg.large_partition_handler = db.get_large_partition_handler();
|
||||
|
||||
// avoid self-reporting
|
||||
if (s.ks_name() == "system" && s.cf_name() == db::system_keyspace::LARGE_PARTITIONS) {
|
||||
cfg.large_partition_handler = db.get_nop_large_partition_handler();
|
||||
} else {
|
||||
cfg.large_partition_handler = db.get_large_partition_handler();
|
||||
}
|
||||
|
||||
cfg.view_update_concurrency_semaphore = _config.view_update_concurrency_semaphore;
|
||||
cfg.view_update_concurrency_semaphore_limit = _config.view_update_concurrency_semaphore_limit;
|
||||
cfg.data_listeners = &db.data_listeners();
|
||||
|
||||
@@ -1272,6 +1272,7 @@ private:
|
||||
query::querier_cache _querier_cache;
|
||||
|
||||
std::unique_ptr<db::large_partition_handler> _large_partition_handler;
|
||||
std::unique_ptr<db::large_partition_handler> _nop_large_partition_handler;
|
||||
|
||||
query::result_memory_limiter _result_memory_limiter;
|
||||
|
||||
@@ -1423,6 +1424,10 @@ public:
|
||||
return _large_partition_handler.get();
|
||||
}
|
||||
|
||||
db::large_partition_handler* get_nop_large_partition_handler() const {
|
||||
return _nop_large_partition_handler.get();
|
||||
}
|
||||
|
||||
future<> flush_all_memtables();
|
||||
|
||||
// See #937. Truncation now requires a callback to get a time stamp
|
||||
|
||||
@@ -55,10 +55,6 @@ logging::logger cql_table_large_partition_handler::large_partition_logger("large
|
||||
future<> cql_table_large_partition_handler::update_large_partitions(const schema& s, const sstring& sstable_name, const sstables::key& key, uint64_t partition_size) const {
|
||||
static const sstring req = format("INSERT INTO system.{} (keyspace_name, table_name, sstable_name, partition_size, partition_key, compaction_time) VALUES (?, ?, ?, ?, ?, ?) USING TTL 2592000",
|
||||
db::system_keyspace::LARGE_PARTITIONS);
|
||||
// avoid self-reporting
|
||||
if (s.ks_name() == "system" && s.cf_name() == db::system_keyspace::LARGE_PARTITIONS) {
|
||||
return make_ready_future<>();
|
||||
}
|
||||
auto ks_name = s.ks_name();
|
||||
auto cf_name = s.cf_name();
|
||||
std::ostringstream oss;
|
||||
|
||||
Reference in New Issue
Block a user