]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
Revert "osd: make calc_trim_to() independent of min_last_complete_ondisk"
authorNeha Ojha <nojha@redhat.com>
Fri, 2 Nov 2018 23:51:03 +0000 (19:51 -0400)
committerNeha Ojha <nojha@redhat.com>
Fri, 2 Nov 2018 23:51:03 +0000 (19:51 -0400)
This reverts commit 3ecbf2a41fef3591ff247a212338b9a2d02a3468.

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

index f1143979fcf98568e6e3f46816caff58e7210c42..a4a4f8ffb1dbe864ab37af155eb93ff70e86b62e 100644 (file)
@@ -1575,18 +1575,15 @@ void PrimaryLogPG::calc_trim_to()
                 PG_STATE_BACKFILL_TOOFULL)) {
     target = cct->_conf->osd_max_pg_log_entries;
   }
-  // limit pg log trimming up to the head of the log
-  eversion_t limit = pg_log.get_head();
-  dout(10) << __func__ << " limit = " << limit << dendl;
 
+  eversion_t limit = MIN(
+    min_last_complete_ondisk,
+    pg_log.get_can_rollback_to());
   if (limit != eversion_t() &&
       limit != pg_trim_to &&
       pg_log.get_log().approx_size() > target) {
-    dout(10) << __func__ << " approx pg log length =  "
-             << pg_log.get_log().approx_size() << dendl;
-    size_t num_to_trim = std::min(pg_log.get_log().approx_size() - target,
-                                 cct->_conf->osd_pg_log_trim_max);
-    dout(10) << __func__ << " num_to_trim =  " << num_to_trim << dendl;
+    size_t num_to_trim = MIN(pg_log.get_log().approx_size() - target,
+                            cct->_conf->osd_pg_log_trim_max);
     if (num_to_trim < cct->_conf->osd_pg_log_trim_min &&
        cct->_conf->osd_pg_log_trim_max >= cct->_conf->osd_pg_log_trim_min) {
       return;
@@ -1596,15 +1593,16 @@ void PrimaryLogPG::calc_trim_to()
     for (size_t i = 0; i < num_to_trim; ++i) {
       new_trim_to = it->version;
       ++it;
-      if (new_trim_to >= limit) {
+      if (new_trim_to > limit) {
        new_trim_to = limit;
-        dout(10) << "calc_trim_to trimming to limit: " << limit << dendl;
+       dout(10) << "calc_trim_to trimming to min_last_complete_ondisk" << dendl;
        break;
       }
     }
     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());
+    assert(pg_trim_to <= min_last_complete_ondisk);
   }
 }