From: xinxin shu Date: Wed, 29 Jul 2015 22:49:13 +0000 (+0800) Subject: reset max if runtime configure change X-Git-Tag: v9.1.0~375^2 X-Git-Url: http://git.apps.os.sepia.ceph.com/?a=commitdiff_plain;h=692289a402ef429fa6f298bd0392b0eebcf02b5e;p=ceph.git reset max if runtime configure change Signed-off-by: xinxin shu --- diff --git a/src/common/Throttle.h b/src/common/Throttle.h index ae09a04fe6f0a..2faea594d96ed 100644 --- a/src/common/Throttle.h +++ b/src/common/Throttle.h @@ -103,6 +103,10 @@ public: bool should_wait(int64_t c) const { return _should_wait(c); } + void reset_max(int64_t m) { + Mutex::Locker l(lock); + _reset_max(m); + } }; diff --git a/src/os/FileStore.cc b/src/os/FileStore.cc index 0e771747b6093..560f7c6127526 100644 --- a/src/os/FileStore.cc +++ b/src/os/FileStore.cc @@ -5524,6 +5524,8 @@ void FileStore::handle_conf_change(const struct md_config_t *conf, m_filestore_sloppy_crc = conf->filestore_sloppy_crc; m_filestore_sloppy_crc_block_size = conf->filestore_sloppy_crc_block_size; m_filestore_max_alloc_hint_size = conf->filestore_max_alloc_hint_size; + throttle_ops.reset_max(conf->filestore_queue_max_ops); + throttle_bytes.reset_max(conf->filestore_queue_max_bytes); } if (changed.count("filestore_commit_timeout")) { Mutex::Locker l(sync_entry_timeo_lock); diff --git a/src/os/KeyValueStore.cc b/src/os/KeyValueStore.cc index 5abe3186c8102..5b429a09f3f23 100644 --- a/src/os/KeyValueStore.cc +++ b/src/os/KeyValueStore.cc @@ -2939,6 +2939,8 @@ void KeyValueStore::handle_conf_change(const struct md_config_t *conf, m_keyvaluestore_queue_max_ops = conf->keyvaluestore_queue_max_ops; m_keyvaluestore_queue_max_bytes = conf->keyvaluestore_queue_max_bytes; m_keyvaluestore_max_expected_write_size = conf->keyvaluestore_max_expected_write_size; + throttle_ops.reset_max(conf->keyvaluestore_queue_max_ops); + throttle_bytes.reset_max(conf->keyvaluestore_queue_max_bytes); } if (changed.count("keyvaluestore_default_strip_size")) { m_keyvaluestore_strip_size = conf->keyvaluestore_default_strip_size;