submit_thread(this)
{
debug_subtrees = g_conf().get_val<bool>("mds_debug_subtrees");
+ event_large_threshold = g_conf().get_val<uint64_t>("mds_log_event_large_threshold");
events_per_segment = g_conf().get_val<uint64_t>("mds_log_events_per_segment");
pause = g_conf().get_val<bool>("mds_log_pause");
major_segment_event_ratio = g_conf().get_val<uint64_t>("mds_log_major_segment_event_ratio");
PerfCountersBuilder::PRIO_INTERESTING);
plb.set_prio_default(PerfCountersBuilder::PRIO_USEFUL);
+ plb.add_u64(l_mdl_evlrg, "evlrg", "Large events");
plb.add_u64(l_mdl_evexg, "evexg", "Expiring events");
plb.add_u64(l_mdl_evexd, "evexd", "Current expired events");
plb.add_u64(l_mdl_segexg, "segexg", "Expiring segments");
ls->offset = write_pos;
}
+ if (bl.length() >= event_large_threshold.load()) {
+ dout(5) << "large event detected!" << dendl;
+ logger->inc(l_mdl_evlrg);
+ }
+
dout(5) << "_submit_thread " << write_pos << "~" << bl.length()
<< " : " << *le << dendl;
if (changed.count("mds_debug_subtrees")) {
debug_subtrees = g_conf().get_val<bool>("mds_debug_subtrees");
}
+ if (changed.count("mds_log_event_large_threshold")) {
+ event_large_threshold = g_conf().get_val<uint64_t>("mds_log_event_large_threshold");
+ }
if (changed.count("mds_log_events_per_segment")) {
events_per_segment = g_conf().get_val<uint64_t>("mds_log_events_per_segment");
}
"mds_inject_journal_corrupt_dentry_first",
"mds_inject_migrator_session_race",
"mds_inject_rename_corrupt_dentry_first",
+ "mds_log_event_large_threshold",
"mds_log_events_per_segment",
"mds_log_major_segment_event_ratio",
"mds_log_max_events",