From 8c8ec44de11a67282d215a24decdc2fe9bd9708d Mon Sep 17 00:00:00 2001 From: Yanhu Cao Date: Fri, 11 Dec 2020 15:07:48 +0800 Subject: [PATCH] client: support client oc's options can update at runtime Signed-off-by: Yanhu Cao --- src/client/Client.cc | 20 ++++++++++++++++++++ src/common/options.cc | 5 +++++ 2 files changed, 25 insertions(+) diff --git a/src/client/Client.cc b/src/client/Client.cc index 9f9296fd9e0b..54049df47032 100644 --- a/src/client/Client.cc +++ b/src/client/Client.cc @@ -15112,6 +15112,11 @@ const char** Client::get_tracked_conf_keys() const "client_acl_type", "client_deleg_timeout", "client_deleg_break_on_open", + "client_oc_size", + "client_oc_max_objects", + "client_oc_max_dirty", + "client_oc_target_dirty", + "client_oc_max_dirty_age", NULL }; return keys; @@ -15130,6 +15135,21 @@ void Client::handle_conf_change(const ConfigProxy& conf, if (cct->_conf->client_acl_type == "posix_acl") acl_type = POSIX_ACL; } + if (changed.count("client_oc_size")) { + objectcacher->set_max_size(cct->_conf->client_oc_size); + } + if (changed.count("client_oc_max_objects")) { + objectcacher->set_max_objects(cct->_conf->client_oc_max_objects); + } + if (changed.count("client_oc_max_dirty")) { + objectcacher->set_max_dirty(cct->_conf->client_oc_max_dirty); + } + if (changed.count("client_oc_target_dirty")) { + objectcacher->set_target_dirty(cct->_conf->client_oc_target_dirty); + } + if (changed.count("client_oc_max_dirty_age")) { + objectcacher->set_max_dirty_age(cct->_conf->client_oc_max_dirty_age); + } } void intrusive_ptr_add_ref(Inode *in) diff --git a/src/common/options.cc b/src/common/options.cc index 367e52ee0dba..19ce7d93d6c1 100644 --- a/src/common/options.cc +++ b/src/common/options.cc @@ -8642,22 +8642,27 @@ std::vector