From: Neha Ojha Date: Fri, 2 Nov 2018 23:34:18 +0000 (-0400) Subject: Revert "osd/PrimaryLogPG: fix potential pg-log overtrimming" X-Git-Tag: v12.2.10~18^2~12 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=aa42c7151a3c7cd1b53c74d95bb36c9471d51cdb;p=ceph.git Revert "osd/PrimaryLogPG: fix potential pg-log overtrimming" This reverts commit 85a029a7242a1c6eef4e90ae246541e08207302a. Signed-off-by: Neha Ojha --- diff --git a/src/osd/PrimaryLogPG.cc b/src/osd/PrimaryLogPG.cc index 07a0c9ddb491..0a7841db318e 100644 --- a/src/osd/PrimaryLogPG.cc +++ b/src/osd/PrimaryLogPG.cc @@ -1593,30 +1593,19 @@ void PrimaryLogPG::calc_trim_to() cct->_conf->osd_pg_log_trim_max >= cct->_conf->osd_pg_log_trim_min) { return; } - auto it = pg_log.get_log().log.begin(); // oldest log entry - auto rit = pg_log.get_log().log.rbegin(); - eversion_t by_n_to_keep; // start from tail - eversion_t by_n_to_trim = eversion_t::max(); // start from head - for (size_t i = 0; it != pg_log.get_log().log.end(); ++it, ++rit) { - i++; - if (i > target && by_n_to_keep == eversion_t()) { - by_n_to_keep = rit->version; - } - if (i >= num_to_trim && by_n_to_trim == eversion_t::max()) { - by_n_to_trim = it->version; - } - if (by_n_to_keep != eversion_t() && - by_n_to_trim != eversion_t::max()) { - break; + list::const_iterator it = pg_log.get_log().log.begin(); + eversion_t new_trim_to; + for (size_t i = 0; i < num_to_trim; ++i) { + new_trim_to = it->version; + ++it; + if (new_trim_to >= limit) { + new_trim_to = limit; + dout(10) << "calc_trim_to trimming to limit: " << limit << dendl; + break; } } - - if (by_n_to_keep == eversion_t()) { - return; - } - - pg_trim_to = std::min({by_n_to_keep, by_n_to_trim, limit}); - dout(10) << __func__ << " pg_trim_to now " << pg_trim_to << dendl; + dout(10) << "calc_trim_to " << pg_trim_to << " -> " << new_trim_to << dendl; + pg_trim_to = new_trim_to; assert(pg_trim_to <= pg_log.get_head()); } }