"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;
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)
.set_description("enable object caching"),
Option("client_oc_size", Option::TYPE_SIZE, Option::LEVEL_ADVANCED)
+ .set_flag(Option::FLAG_RUNTIME)
.set_default(200_M)
.set_description("maximum size of object cache"),
Option("client_oc_max_dirty", Option::TYPE_SIZE, Option::LEVEL_ADVANCED)
+ .set_flag(Option::FLAG_RUNTIME)
.set_default(100_M)
.set_description("maximum size of dirty pages in object cache"),
Option("client_oc_target_dirty", Option::TYPE_SIZE, Option::LEVEL_ADVANCED)
+ .set_flag(Option::FLAG_RUNTIME)
.set_default(8_M)
.set_description("target size of dirty pages object cache"),
Option("client_oc_max_dirty_age", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)
+ .set_flag(Option::FLAG_RUNTIME)
.set_default(5.0)
.set_description("maximum age of dirty pages in object cache (seconds)"),
Option("client_oc_max_objects", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+ .set_flag(Option::FLAG_RUNTIME)
.set_default(1000)
.set_description("maximum number of objects in cache"),