]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
Revert "osd/PrimaryLogPG: fix potential pg-log overtrimming"
authorNeha Ojha <nojha@redhat.com>
Fri, 2 Nov 2018 23:34:18 +0000 (19:34 -0400)
committerNeha Ojha <nojha@redhat.com>
Fri, 2 Nov 2018 23:44:38 +0000 (19:44 -0400)
This reverts commit 85a029a7242a1c6eef4e90ae246541e08207302a.

Signed-off-by: Neha Ojha <nojha@redhat.com>
src/osd/PrimaryLogPG.cc

index 07a0c9ddb4914d85b9a29c25f25244087378998e..0a7841db318ed1bc601f0d1648f6a87c2531fafe 100644 (file)
@@ -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<pg_log_entry_t>::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());
   }
 }