OPTION(osd_backfill_scan_min, OPT_INT, 64)
OPTION(osd_backfill_scan_max, OPT_INT, 512)
OPTION(osd_op_thread_timeout, OPT_INT, 15)
+OPTION(osd_op_thread_suicide_timeout, OPT_INT, 150)
OPTION(osd_recovery_thread_timeout, OPT_INT, 30)
OPTION(osd_recovery_thread_suicide_timeout, OPT_INT, 300)
OPTION(osd_snap_trim_thread_timeout, OPT_INT, 60*60*1)
finished_lock("OSD::finished_lock"),
op_tracker(cct, cct->_conf->osd_enable_op_tracker),
test_ops_hook(NULL),
- op_wq(this, cct->_conf->osd_op_thread_timeout, &op_tp),
- peering_wq(this, cct->_conf->osd_op_thread_timeout, &op_tp),
+ op_wq(
+ this,
+ cct->_conf->osd_op_thread_timeout,
+ cct->_conf->osd_op_thread_suicide_timeout,
+ &op_tp),
+ peering_wq(
+ this,
+ cct->_conf->osd_op_thread_timeout,
+ cct->_conf->osd_op_thread_suicide_timeout,
+ &op_tp),
map_lock("OSD::map_lock"),
peer_map_epoch_lock("OSD::peer_map_epoch_lock"),
debug_drop_pg_create_probability(cct->_conf->osd_debug_drop_pg_create_probability),
map<PG*, list<OpRequestRef> > pg_for_processing;
OSD *osd;
PrioritizedQueue<pair<PGRef, OpRequestRef>, entity_inst_t > pqueue;
- OpWQ(OSD *o, time_t ti, ThreadPool *tp)
+ OpWQ(OSD *o, time_t ti, time_t si, ThreadPool *tp)
: ThreadPool::WorkQueueVal<pair<PGRef, OpRequestRef>, PGRef >(
- "OSD::OpWQ", ti, ti*10, tp),
+ "OSD::OpWQ", ti, si, tp),
qlock("OpWQ::qlock"),
osd(o),
pqueue(o->cct->_conf->osd_op_pq_max_tokens_per_priority,
list<PG*> peering_queue;
OSD *osd;
set<PG*> in_use;
- PeeringWQ(OSD *o, time_t ti, ThreadPool *tp)
+ PeeringWQ(OSD *o, time_t ti, time_t si, ThreadPool *tp)
: ThreadPool::BatchWorkQueue<PG>(
- "OSD::PeeringWQ", ti, ti*10, tp), osd(o) {}
+ "OSD::PeeringWQ", ti, si, tp), osd(o) {}
void _dequeue(PG *pg) {
for (list<PG*>::iterator i = peering_queue.begin();