From: Matt Benjamin Date: Wed, 17 Aug 2016 15:24:01 +0000 (-0400) Subject: rgw file: allow RGWLibFS::write_completion_interval_s to be set in conf X-Git-Tag: v11.0.1~354^2~3 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=70dad0fba561edaf0bb4e746e29b92a4e9b014b2;p=ceph.git rgw file: allow RGWLibFS::write_completion_interval_s to be set in conf Signed-off-by: Matt Benjamin --- diff --git a/src/common/config_opts.h b/src/common/config_opts.h index cf70130283ec..47cb94305748 100644 --- a/src/common/config_opts.h +++ b/src/common/config_opts.h @@ -1366,6 +1366,9 @@ OPTION(rgw_nfs_lru_lanes, OPT_INT, 5) OPTION(rgw_nfs_lru_lane_hiwat, OPT_INT, 911) OPTION(rgw_nfs_fhcache_partitions, OPT_INT, 3) OPTION(rgw_nfs_fhcache_size, OPT_INT, 2017) /* 3*2017=6051 */ +OPTION(rgw_nfs_write_completion_interval_s, OPT_INT, 10) /* stateless (V3) + * commit + * delay */ OPTION(rgw_zone, OPT_STR, "") // zone name OPTION(rgw_zone_root_pool, OPT_STR, ".rgw.root") // pool where zone specific info is stored diff --git a/src/rgw/librgw.cc b/src/rgw/librgw.cc index 79a302dc3719..7cb365cfc55b 100644 --- a/src/rgw/librgw.cc +++ b/src/rgw/librgw.cc @@ -82,6 +82,10 @@ namespace rgw { void RGWLibProcess::run() { + /* write completion interval */ + RGWLibFS::write_completion_interval_s = + cct->_conf->rgw_nfs_write_completion_interval_s; + /* start write timer */ RGWLibFS::write_timer.resume(); diff --git a/src/rgw/rgw_file.cc b/src/rgw/rgw_file.cc index e58dd0653945..2741d838cd65 100644 --- a/src/rgw/rgw_file.cc +++ b/src/rgw/rgw_file.cc @@ -38,6 +38,8 @@ namespace rgw { atomic RGWLibFS::fs_inst; + uint32_t RGWLibFS::write_completion_interval_s = 10; + ceph::timer RGWLibFS::write_timer{ ceph::construct_suspended}; @@ -815,7 +817,8 @@ namespace rgw { /* start write timer */ f->write_req->timer_id = RGWLibFS::write_timer.add_event( - std::chrono::seconds(10), WriteCompletion(*this)); + std::chrono::seconds(RGWLibFS::write_completion_interval_s), + WriteCompletion(*this)); } } } diff --git a/src/rgw/rgw_file.h b/src/rgw/rgw_file.h index 3552e9134c49..d5ccc3a3ecb4 100644 --- a/src/rgw/rgw_file.h +++ b/src/rgw/rgw_file.h @@ -712,6 +712,7 @@ namespace rgw { RGWAccessKey key; // XXXX acc_key static atomic fs_inst; + static uint32_t write_completion_interval_s; std::string fsid; using lock_guard = std::lock_guard;