]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
mon/PGMap: remove min_last_epoch_clean
authorSage Weil <sage@redhat.com>
Mon, 28 Aug 2017 20:54:45 +0000 (16:54 -0400)
committerSage Weil <sage@redhat.com>
Wed, 6 Sep 2017 14:18:04 +0000 (10:18 -0400)
Signed-off-by: Sage Weil <sage@redhat.com>
src/mon/PGMap.cc
src/mon/PGMap.h
src/test/mon/PGMap.cc

index 939ba021f75bdecdf4a212ce89c71071e709a544..973c5a04bd9e5294085fd1002aa64eb49b82833f 100644 (file)
@@ -1186,8 +1186,6 @@ void PGMap::apply_incremental(CephContext *cct, const Incremental& inc)
     last_osdmap_epoch = inc.osdmap_epoch;
   if (inc.pg_scan)
     last_pg_scan = inc.pg_scan;
-
-  min_last_epoch_clean = 0;  // invalidate
 }
 
 void PGMap::calc_stats()
@@ -1213,41 +1211,25 @@ void PGMap::calc_stats()
        p != osd_stat.end();
        ++p)
     stat_osd_add(p->first, p->second);
-
-  min_last_epoch_clean = calc_min_last_epoch_clean();
 }
 
 void PGMap::update_pg(pg_t pgid, bufferlist& bl)
 {
   bufferlist::iterator p = bl.begin();
   auto s = pg_stat.find(pgid);
-  epoch_t old_lec = 0, lec;
   if (s != pg_stat.end()) {
-    old_lec = s->second.get_effective_last_epoch_clean();
     stat_pg_update(pgid, s->second, p);
-    lec = s->second.get_effective_last_epoch_clean();
   } else {
     pg_stat_t& r = pg_stat[pgid];
     ::decode(r, p);
     stat_pg_add(pgid, r);
-    lec = r.get_effective_last_epoch_clean();
   }
-
-  if (min_last_epoch_clean &&
-      (lec < min_last_epoch_clean ||  // we did
-       (lec > min_last_epoch_clean && // we might
-        old_lec == min_last_epoch_clean)
-      ))
-    min_last_epoch_clean = 0;
 }
 
 void PGMap::remove_pg(pg_t pgid)
 {
   auto s = pg_stat.find(pgid);
   if (s != pg_stat.end()) {
-    if (min_last_epoch_clean &&
-        s->second.get_effective_last_epoch_clean() == min_last_epoch_clean)
-      min_last_epoch_clean = 0;
     stat_pg_sub(pgid, s->second);
     pg_stat.erase(s);
   }
@@ -1269,18 +1251,8 @@ void PGMap::update_osd(int osd, bufferlist& bl)
   stat_osd_add(osd, r);
 
   // epoch?
-  if (!p.end()) {
-    epoch_t e;
-    ::decode(e, p);
-
-    if (e < min_last_epoch_clean ||
-        (e > min_last_epoch_clean &&
-         old_lec == min_last_epoch_clean))
-      min_last_epoch_clean = 0;
-  } else {
-    // WARNING: we are not refreshing min_last_epoch_clean!  must be old store
-    // or old mon running.
-  }
+  epoch_t e;
+  ::decode(e, p);
 }
 
 void PGMap::remove_osd(int osd)
@@ -1458,29 +1430,6 @@ void PGMap::stat_osd_sub(int osd, const osd_stat_t &s)
   osd_last_seq[osd] = 0;
 }
 
-epoch_t PGMap::calc_min_last_epoch_clean() const
-{
-  if (pg_stat.empty())
-    return 0;
-
-  auto p = pg_stat.begin();
-  epoch_t min = p->second.get_effective_last_epoch_clean();
-  for (++p; p != pg_stat.end(); ++p) {
-    epoch_t lec = p->second.get_effective_last_epoch_clean();
-    if (lec < min)
-      min = lec;
-  }
-  // also scan osd epochs
-  // don't trim past the oldest reported osd epoch
-  for (auto i = osd_epochs.begin();
-       i != osd_epochs.end();
-       ++i) {
-    if (i->second < min)
-      min = i->second;
-  }
-  return min;
-}
-
 void PGMap::encode_digest(const OSDMap& osdmap,
                          bufferlist& bl, uint64_t features) const
 {
@@ -1577,7 +1526,6 @@ void PGMap::dump_basic(Formatter *f) const
   f->dump_stream("stamp") << stamp;
   f->dump_unsigned("last_osdmap_epoch", last_osdmap_epoch);
   f->dump_unsigned("last_pg_scan", last_pg_scan);
-  f->dump_unsigned("min_last_epoch_clean", min_last_epoch_clean);
 
   f->open_object_section("pg_stats_sum");
   pg_sum.dump(f);
index 75b15eea36dcedeb12ffbb2e24239b38a159b4b3..f3304e1b38f62d97ddd693f9a7a0ed1a079cf3e7 100644 (file)
@@ -299,7 +299,6 @@ public:
 
 
   // aggregate stats (soft state), generated by calc_stats()
-  mutable epoch_t min_last_epoch_clean = 0;
   mempool::pgmap::unordered_map<int,set<pg_t> > pg_by_osd;
   mempool::pgmap::unordered_map<int,int> blocked_by_sum;
   mempool::pgmap::list< pair<pool_stat_t, utime_t> > pg_sum_deltas;
@@ -339,8 +338,6 @@ public:
                              const uint64_t pool,
                              const pool_stat_t& old_pool_sum);
 
-  epoch_t calc_min_last_epoch_clean() const;
-
  public:
 
   mempool::pgmap::set<pg_t> creating_pgs;
@@ -475,12 +472,6 @@ public:
   void get_filtered_pg_stats(uint32_t state, int64_t poolid, int64_t osdid,
                              bool primary, set<pg_t>& pgs) const;
 
-  epoch_t get_min_last_epoch_clean() const {
-    if (!min_last_epoch_clean)
-      min_last_epoch_clean = calc_min_last_epoch_clean();
-    return min_last_epoch_clean;
-  }
-
   void get_health_checks(
     CephContext *cct,
     const OSDMap& osdmap,
index 60de6b7ddae91d146682e9e252b59ba8ba40c9a2..293b7e05b57641cd57f336fb76e387f7b3b3a1ef 100644 (file)
 
 #include "include/stringify.h"
 
-TEST(pgmap, min_last_epoch_clean)
-{
-  PGMap pg_map;
-  PGMap::Incremental inc;
-  osd_stat_t os;
-  pg_stat_t ps;
-
-  ps.last_epoch_clean = 999;
-  inc.pg_stat_updates[pg_t(9,9)] = ps;
-  inc.version = 1;
-  inc.update_stat(0, 123, os);
-  pg_map.apply_incremental(g_ceph_context, inc);
-  ASSERT_EQ(123u, pg_map.get_min_last_epoch_clean());
-
-  inc = PGMap::Incremental();
-  inc.version = 2;
-  inc.update_stat(1, 222, os);
-  pg_map.apply_incremental(g_ceph_context, inc);
-  ASSERT_EQ(123u, pg_map.get_min_last_epoch_clean());
-
-  inc = PGMap::Incremental();
-  inc.version = 3;
-  inc.update_stat(0, 222, os);
-  pg_map.apply_incremental(g_ceph_context, inc);
-  ASSERT_EQ(222u, pg_map.get_min_last_epoch_clean());
-
-  inc = PGMap::Incremental();
-  inc.version = 4;
-  inc.update_stat(0, 333, os);
-  inc.update_stat(1, 333, os);
-  pg_map.apply_incremental(g_ceph_context, inc);
-  ASSERT_EQ(333u, pg_map.get_min_last_epoch_clean());
-
-  ps.last_epoch_clean = 222;
-  inc = PGMap::Incremental();
-  inc.version = 5;
-  inc.pg_stat_updates[pg_t(1,1)] = ps;
-  pg_map.apply_incremental(g_ceph_context, inc);
-  ASSERT_EQ(222u, pg_map.get_min_last_epoch_clean());
-
-  ps.last_epoch_clean = 223;
-  inc = PGMap::Incremental();
-  inc.version = 6;
-  inc.pg_stat_updates[pg_t(1,1)] = ps;
-  pg_map.apply_incremental(g_ceph_context, inc);
-  ASSERT_EQ(223u, pg_map.get_min_last_epoch_clean());
-
-  ps.last_epoch_clean = 224;
-  inc = PGMap::Incremental();
-  inc.version = 7;
-  inc.pg_stat_updates[pg_t(2,2)] = ps;
-  pg_map.apply_incremental(g_ceph_context, inc);
-  ASSERT_EQ(223u, pg_map.get_min_last_epoch_clean());
-
-  ps.last_epoch_clean = 225;
-  inc = PGMap::Incremental();
-  inc.version = 8;
-  inc.pg_stat_updates[pg_t(1,1)] = ps;
-  pg_map.apply_incremental(g_ceph_context, inc);
-  ASSERT_EQ(224u, pg_map.get_min_last_epoch_clean());
-
-}
-
-TEST(pgmap, calc_stats)
-{
-  bufferlist bl;
-  {
-    PGMap pg_map;
-    PGMap::Incremental inc;
-    osd_stat_t os;
-    pg_stat_t ps;
-
-    ps.last_epoch_clean = 999;
-    inc.pg_stat_updates[pg_t(9,9)] = ps;
-    inc.version = 1;
-    inc.update_stat(0, 123, os);
-    pg_map.apply_incremental(g_ceph_context, inc);
-    ASSERT_EQ(123u, pg_map.get_min_last_epoch_clean());
-    pg_map.encode(bl);
-  }
-  {
-    PGMap pg_map;
-    PGMap::Incremental inc;
-    osd_stat_t os;
-    pg_stat_t ps;
-
-    ps.last_epoch_clean = 999;
-    inc.pg_stat_updates[pg_t(9,9)] = ps;
-    inc.version = 1;
-    inc.update_stat(0, 321, os);
-    pg_map.apply_incremental(g_ceph_context, inc);
-    ASSERT_EQ(321u, pg_map.get_min_last_epoch_clean());
-    bufferlist::iterator p = bl.begin();
-    ::decode(pg_map, p);
-    ASSERT_EQ(123u, pg_map.get_min_last_epoch_clean());
-  }
-}
 
 namespace {
   class CheckTextTable : public TextTable {