bool need_write_epoch,
ceph::os::Transaction &t) final;
- void on_info_history_change() final {
- // Not needed yet -- mainly for scrub scheduling
- }
-
/// Need to reschedule next scrub. Assuming no change in role
void reschedule_scrub() final {
}
double old_max_interval = 0, new_max_interval = 0;
oldpool->second.opts.get(pool_opts_t::SCRUB_MAX_INTERVAL, &old_max_interval);
newpool->second.opts.get(pool_opts_t::SCRUB_MAX_INTERVAL, &new_max_interval);
-
- // Assume if an interval is change from set to unset or vice versa the actual config
- // is different. Keep it simple even if it is possible to call resched_all_scrub()
- // unnecessarily.
- if (old_min_interval != new_min_interval || old_max_interval != new_max_interval) {
- pg->on_info_history_change();
- }
}
if (new_pg_num && old_pg_num != new_pg_num) {
return upd_flags;
}
-/*
- * Note: on_info_history_change() is used in those two cases where we're not sure
- * whether the role of the PG was changed, and if so - was this change relayed to the
- * scrub-queue.
- */
-void PG::on_info_history_change()
-{
- ceph_assert(m_scrubber);
- dout(20) << fmt::format(
- "{} for a {}", __func__,
- (is_primary() ? "Primary" : "non-primary"))
- << dendl;
- reschedule_scrub();
-}
-
void PG::reschedule_scrub()
{
dout(20) << fmt::format(
void on_pool_change() override;
virtual void plpg_on_pool_change() = 0;
- void on_info_history_change() override;
-
void reschedule_scrub() override;
void scrub_requested(scrub_level_t scrub_level, scrub_type_t scrub_type) override;
<< info.history.prior_readable_until_ub << ")" << dendl;
}
}
- pl->on_info_history_change();
}
hobject_t PeeringState::earliest_backfill() const
}
on_new_interval();
- pl->on_info_history_change();
psdout(1) << "up " << oldup << " -> " << up
<< ", acting " << oldacting << " -> " << acting
if (msg->info.last_backfill == hobject_t()) {
// restart backfill
ps->info = msg->info;
- pl->on_info_history_change();
ps->dirty_info = true;
ps->dirty_big_info = true; // maybe.
bool need_write_epoch,
ObjectStore::Transaction &t) = 0;
- /// Notify that info/history changed (generally to update scrub registration)
- virtual void on_info_history_change() = 0;
-
/// Need to reschedule next scrub. Assuming no change in role
virtual void reschedule_scrub() = 0;