From: Matt Benjamin Date: Sun, 26 Jan 2020 16:45:26 +0000 (-0500) Subject: rgwlc: enable thread-parallelism in RGWLC X-Git-Tag: v15.2.4~57^2~1 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=fce0e8c79751a4767f43cf99cfe2d63ff370ab62;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 (cherry picked from commit f31047be46fbe083ffc8954351fe94764a958a3c) --- diff --git a/src/common/legacy_config_opts.h b/src/common/legacy_config_opts.h index bee70445daa..3d84f1d6d15 100644 --- a/src/common/legacy_config_opts.h +++ b/src/common/legacy_config_opts.h @@ -1290,6 +1290,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 bb3b3ef393b..433729386b1 100644 --- a/src/common/options.cc +++ b/src/common/options.cc @@ -5539,6 +5539,13 @@ std::vector