OPTION(osd_agent_max_ops, OPT_INT, 4)
OPTION(osd_agent_min_evict_effort, OPT_FLOAT, .05)
+// decay atime and hist histograms after how many objects go by
+OPTION(osd_agent_hist_halflife, OPT_INT, 1000)
+
OPTION(osd_uuid, OPT_UUID, uuid_d())
OPTION(osd_data, OPT_STR, "/var/lib/ceph/osd/$cluster-$id")
OPTION(osd_journal, OPT_STR, "/var/lib/ceph/osd/$cluster-$id/journal")
break;
}
+ if (++agent_state->hist_age > g_conf->osd_agent_hist_halflife) {
+ dout(20) << __func__ << " resetting atime and temp histograms" << dendl;
+ agent_state->hist_age = 0;
+ agent_state->atime_hist.decay();
+ agent_state->temp_hist.decay();
+ }
+
if (next.is_max())
agent_state->position = hobject_t();
else
/// histogram of ages we've encountered
pow2_hist_t atime_hist;
pow2_hist_t temp_hist;
+ int hist_age;
/// past HitSet(s) (not current)
map<time_t,HitSetRef> hit_set_map;
unsigned evict_effort;
TierAgentState()
- : flush_mode(FLUSH_MODE_IDLE),
+ : hist_age(0),
+ flush_mode(FLUSH_MODE_IDLE),
evict_mode(EVICT_MODE_IDLE),
evict_effort(0)
{}