From bd20c24011f7f15bc4784fb15463dd3415184a7b Mon Sep 17 00:00:00 2001 From: Sage Weil Date: Thu, 16 Jan 2020 16:10:33 -0600 Subject: [PATCH] osd/PeeringState: always use target pg log length Previously, the min and max log length was the same, so we didn't adjust our log length based on whether we were degraded. Preserve that behavior by removing the degraded check entirely. This keeps memory usage consistent when recovery happens. Signed-off-by: Sage Weil --- src/osd/PeeringState.cc | 21 +++------------------ 1 file changed, 3 insertions(+), 18 deletions(-) diff --git a/src/osd/PeeringState.cc b/src/osd/PeeringState.cc index 41c38359b850..8f0371e531e8 100644 --- a/src/osd/PeeringState.cc +++ b/src/osd/PeeringState.cc @@ -4043,15 +4043,7 @@ void PeeringState::complete_write(eversion_t v, eversion_t lc) void PeeringState::calc_trim_to() { - size_t target = cct->_conf->osd_min_pg_log_entries; - if (is_degraded() || - state_test(PG_STATE_RECOVERING | - PG_STATE_RECOVERY_WAIT | - PG_STATE_BACKFILLING | - PG_STATE_BACKFILL_WAIT | - PG_STATE_BACKFILL_TOOFULL)) { - target = pl->get_target_pg_log_entries(); - } + size_t target = pl->get_target_pg_log_entries(); eversion_t limit = std::min( min_last_complete_ondisk, @@ -4085,15 +4077,8 @@ void PeeringState::calc_trim_to() void PeeringState::calc_trim_to_aggressive() { - size_t target = cct->_conf->osd_min_pg_log_entries; - if (is_degraded() || - state_test(PG_STATE_RECOVERING | - PG_STATE_RECOVERY_WAIT | - PG_STATE_BACKFILLING | - PG_STATE_BACKFILL_WAIT | - PG_STATE_BACKFILL_TOOFULL)) { - target = pl->get_target_pg_log_entries(); - } + size_t target = pl->get_target_pg_log_entries(); + // limit pg log trimming up to the can_rollback_to value eversion_t limit = std::min( pg_log.get_head(), -- 2.47.3