OPTION(osd_snap_trim_thread_suicide_timeout, OPT_INT, 60*60*10)
OPTION(osd_snap_trim_sleep, OPT_FLOAT, 0)
OPTION(osd_scrub_thread_timeout, OPT_INT, 60)
+OPTION(osd_scrub_thread_suicide_timeout, OPT_INT, 60)
OPTION(osd_scrub_finalize_thread_timeout, OPT_INT, 60*10)
OPTION(osd_scrub_invalid_stats, OPT_BOOL, true)
OPTION(osd_remove_thread_timeout, OPT_INT, 60*60)
cct->_conf->osd_snap_trim_thread_timeout,
cct->_conf->osd_snap_trim_thread_suicide_timeout,
&disk_tp),
- scrub_wq(this, cct->_conf->osd_scrub_thread_timeout, &disk_tp),
- rep_scrub_wq(this, cct->_conf->osd_scrub_thread_timeout, &disk_tp),
+ scrub_wq(
+ this,
+ cct->_conf->osd_scrub_thread_timeout,
+ cct->_conf->osd_scrub_thread_suicide_timeout,
+ &disk_tp),
+ rep_scrub_wq(
+ this,
+ cct->_conf->osd_scrub_thread_timeout,
+ cct->_conf->osd_scrub_thread_suicide_timeout,
+ &disk_tp),
remove_wq(store, cct->_conf->osd_remove_thread_timeout, &disk_tp),
service(this)
{
struct ScrubWQ : public ThreadPool::WorkQueue<PG> {
OSD *osd;
- ScrubWQ(OSD *o, time_t ti, ThreadPool *tp)
- : ThreadPool::WorkQueue<PG>("OSD::ScrubWQ", ti, 0, tp), osd(o) {}
+ ScrubWQ(OSD *o, time_t ti, time_t si, ThreadPool *tp)
+ : ThreadPool::WorkQueue<PG>("OSD::ScrubWQ", ti, si, tp), osd(o) {}
bool _empty() {
return osd->scrub_queue.empty();
list<MOSDRepScrub*> rep_scrub_queue;
public:
- RepScrubWQ(OSD *o, time_t ti, ThreadPool *tp)
- : ThreadPool::WorkQueue<MOSDRepScrub>("OSD::RepScrubWQ", ti, 0, tp), osd(o) {}
+ RepScrubWQ(OSD *o, time_t ti, time_t si, ThreadPool *tp)
+ : ThreadPool::WorkQueue<MOSDRepScrub>("OSD::RepScrubWQ", ti, si, tp), osd(o) {}
bool _empty() {
return rep_scrub_queue.empty();