osdc: make op count in Filer::purge configurable

Previously this was simply hardcoded to do up to
10 RADOS delete ops at a time.  Make this a config
option so that Filer consumers (like the MDS) can
know how many concurrent operations will be done
on their behalf.

Signed-off-by: John Spray <john.spray@redhat.com>
This commit is contained in:
John Spray 2015-01-20 11:12:45 +00:00
parent 763e26c41e
commit f180b64c59
2 changed files with 4 additions and 1 deletions

View File

@ -340,6 +340,9 @@ OPTION(objecter_inflight_ops, OPT_U64, 1024) // max in-flight ios
OPTION(objecter_completion_locks_per_session, OPT_U64, 32) // num of completion locks per each session, for serializing same object responses OPTION(objecter_completion_locks_per_session, OPT_U64, 32) // num of completion locks per each session, for serializing same object responses
OPTION(objecter_inject_no_watch_ping, OPT_BOOL, false) // suppress watch pings OPTION(objecter_inject_no_watch_ping, OPT_BOOL, false) // suppress watch pings
// Max number of deletes at once in a single Filer::purge call
OPTION(filer_max_purge_ops, OPT_U32, 10)
OPTION(journaler_allow_split_entries, OPT_BOOL, true) OPTION(journaler_allow_split_entries, OPT_BOOL, true)
OPTION(journaler_write_head_interval, OPT_INT, 15) OPTION(journaler_write_head_interval, OPT_INT, 15)
OPTION(journaler_prefetch_periods, OPT_INT, 10) // * journal object size OPTION(journaler_prefetch_periods, OPT_INT, 10) // * journal object size

View File

@ -324,7 +324,7 @@ void Filer::_do_purge_range(PurgeRange *pr, int fin)
std::vector<object_t> remove_oids; std::vector<object_t> remove_oids;
int max = 10 - pr->uncommitted; int max = cct->_conf->filer_max_purge_ops - pr->uncommitted;
while (pr->num > 0 && max > 0) { while (pr->num > 0 && max > 0) {
remove_oids.push_back(file_object_t(pr->ino, pr->first)); remove_oids.push_back(file_object_t(pr->ino, pr->first));
pr->uncommitted++; pr->uncommitted++;