From: Matt Benjamin Date: Sun, 26 Jan 2020 16:45:26 +0000 (-0500) Subject: rgwlc: enable thread-parallelism in RGWLC X-Git-Tag: v16.1.0~2298^2~12 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=f31047be46fbe083ffc8954351fe94764a958a3c;p=ceph.git rgwlc: enable thread-parallelism in RGWLC Allow RGWLC to spawn >1 LCWorker threads, controlled by option rgw_lc_max_worker (default to 3). LCWorker parallelism exactly resembles previous cross-instance parallelism (and extends it), with no new locking. Replace in-order index shard enumeration (w/random start) with a number sequence to avoid convoying. Fixes: https://tracker.ceph.com/issues/43841 Signed-off-by: Matt Benjamin --- diff --git a/src/common/legacy_config_opts.h b/src/common/legacy_config_opts.h index bfbf4f293ff..b344dd5b8d4 100644 --- a/src/common/legacy_config_opts.h +++ b/src/common/legacy_config_opts.h @@ -1289,6 +1289,7 @@ OPTION(rgw_service_provider_name, OPT_STR) //service provider name which is cont OPTION(rgw_content_length_compat, OPT_BOOL) // Check both HTTP_CONTENT_LENGTH and CONTENT_LENGTH in fcgi env OPTION(rgw_lifecycle_work_time, OPT_STR) //job process lc at 00:00-06:00s OPTION(rgw_lc_lock_max_time, OPT_INT) // total run time for a single lc processor work +OPTION(rgw_lc_max_worker, OPT_INT)// number of (parellized) LCWorker threads OPTION(rgw_lc_max_objs, OPT_INT) OPTION(rgw_lc_max_rules, OPT_U32) // Max rules set on one bucket OPTION(rgw_lc_debug_interval, OPT_INT) // Debug run interval, in seconds diff --git a/src/common/options.cc b/src/common/options.cc index 330f1653284..b586d495c5b 100644 --- a/src/common/options.cc +++ b/src/common/options.cc @@ -5555,6 +5555,13 @@ std::vector