From 70dad0fba561edaf0bb4e746e29b92a4e9b014b2 Mon Sep 17 00:00:00 2001 From: Matt Benjamin Date: Wed, 17 Aug 2016 11:24:01 -0400 Subject: [PATCH] rgw file: allow RGWLibFS::write_completion_interval_s to be set in conf Signed-off-by: Matt Benjamin --- src/common/config_opts.h | 3 +++ src/rgw/librgw.cc | 4 ++++ src/rgw/rgw_file.cc | 5 ++++- src/rgw/rgw_file.h | 1 + 4 files changed, 12 insertions(+), 1 deletion(-) diff --git a/src/common/config_opts.h b/src/common/config_opts.h index cf70130283e..47cb9430574 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 79a302dc371..7cb365cfc55 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 e58dd065394..2741d838cd6 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 3552e9134c4..d5ccc3a3ecb 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; -- 2.47.3