]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
osd: bound generate_past_intervals() by oldest map
authorSage Weil <sage.weil@dreamhost.com>
Thu, 13 Oct 2011 16:53:41 +0000 (09:53 -0700)
committerSage Weil <sage.weil@dreamhost.com>
Thu, 13 Oct 2011 16:53:41 +0000 (09:53 -0700)
The oldest osdmap we maintain is a lower bound on last_epoch_clean for the
entire system (assuming the monitor is doing it's job right).  We can stop
generating past intervals when we hit it.

Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
src/osd/PG.cc

index b81079cfc902d73559cee2527d052e0a995d2316..0a91c53ad50cba847d6abd165b5e91b50a58ce09 100644 (file)
@@ -921,6 +921,8 @@ void PG::generate_past_intervals()
 
   epoch_t first_epoch = 0;
   epoch_t stop = MAX(info.history.epoch_created, info.history.last_epoch_clean);
+  if (stop < osd->superblock.oldest_map)
+    stop = osd->superblock.oldest_map;   // this is a lower bound on last_epoch_clean cluster-wide.     
   epoch_t last_epoch = info.history.same_interval_since - 1;
   dout(10) << __func__ << " over epochs " << stop << "-" << last_epoch << dendl;