mirror of
https://github.com/ceph/ceph
synced 2025-02-24 11:37:37 +00:00
mon: add debugging for trimming methods
Signed-off-by: Patrick Donnelly <pdonnell@redhat.com>
This commit is contained in:
parent
147c27c033
commit
9297690e9a
@ -299,8 +299,11 @@ version_t MDSMonitor::get_trim_to() const
|
||||
unsigned max = g_conf()->mon_max_mdsmap_epochs;
|
||||
version_t last = get_last_committed();
|
||||
|
||||
if (last - get_first_committed() > max && floor < last - max)
|
||||
return last - max;
|
||||
if (last - get_first_committed() > max && floor < last - max) {
|
||||
floor = last-max;
|
||||
}
|
||||
|
||||
dout(20) << __func__ << " = " << floor << dendl;
|
||||
return floor;
|
||||
}
|
||||
|
||||
|
@ -377,14 +377,17 @@ void PaxosService::maybe_trim()
|
||||
if (!is_writeable())
|
||||
return;
|
||||
|
||||
const version_t first_committed = get_first_committed();
|
||||
version_t trim_to = get_trim_to();
|
||||
if (trim_to < get_first_committed()) {
|
||||
dout(20) << __func__ << " " << first_committed << "~" << trim_to << dendl;
|
||||
|
||||
if (trim_to < first_committed) {
|
||||
dout(10) << __func__ << " trim_to " << trim_to << " < first_committed "
|
||||
<< get_first_committed() << dendl;
|
||||
<< first_committed << dendl;
|
||||
return;
|
||||
}
|
||||
|
||||
version_t to_remove = trim_to - get_first_committed();
|
||||
version_t to_remove = trim_to - first_committed;
|
||||
const version_t trim_min = g_conf().get_val<version_t>("paxos_service_trim_min");
|
||||
if (trim_min > 0 &&
|
||||
to_remove < trim_min) {
|
||||
@ -393,13 +396,13 @@ void PaxosService::maybe_trim()
|
||||
return;
|
||||
}
|
||||
|
||||
to_remove = [to_remove, this] {
|
||||
to_remove = [to_remove, trim_to, this] {
|
||||
const version_t trim_max = g_conf().get_val<version_t>("paxos_service_trim_max");
|
||||
if (trim_max == 0 || to_remove < trim_max) {
|
||||
return to_remove;
|
||||
}
|
||||
if (to_remove < trim_max * 1.5) {
|
||||
dout(10) << __func__ << " trim to " << get_trim_to() << " would only trim " << to_remove
|
||||
dout(10) << __func__ << " trim to " << trim_to << " would only trim " << to_remove
|
||||
<< " > paxos_service_trim_max, limiting to " << trim_max
|
||||
<< dendl;
|
||||
return trim_max;
|
||||
@ -412,11 +415,11 @@ void PaxosService::maybe_trim()
|
||||
return new_trim_max;
|
||||
}
|
||||
}();
|
||||
trim_to = get_first_committed() + to_remove;
|
||||
trim_to = first_committed + to_remove;
|
||||
|
||||
dout(10) << __func__ << " trimming to " << trim_to << ", " << to_remove << " states" << dendl;
|
||||
MonitorDBStore::TransactionRef t = paxos.get_pending_transaction();
|
||||
trim(t, get_first_committed(), trim_to);
|
||||
trim(t, first_committed, trim_to);
|
||||
put_first_committed(t, trim_to);
|
||||
cached_first_committed = trim_to;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user