From 19beabf83651f87cee1a136e62211412d94a0444 Mon Sep 17 00:00:00 2001 From: Sage Weil Date: Mon, 28 Aug 2017 16:54:45 -0400 Subject: [PATCH] mon/PGMap: remove min_last_epoch_clean Signed-off-by: Sage Weil --- src/mon/PGMap.cc | 56 +------------------------ src/mon/PGMap.h | 9 ---- src/test/mon/PGMap.cc | 97 ------------------------------------------- 3 files changed, 2 insertions(+), 160 deletions(-) diff --git a/src/mon/PGMap.cc b/src/mon/PGMap.cc index 939ba021f75..973c5a04bd9 100644 --- a/src/mon/PGMap.cc +++ b/src/mon/PGMap.cc @@ -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); diff --git a/src/mon/PGMap.h b/src/mon/PGMap.h index 75b15eea36d..f3304e1b38f 100644 --- a/src/mon/PGMap.h +++ b/src/mon/PGMap.h @@ -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 > pg_by_osd; mempool::pgmap::unordered_map blocked_by_sum; mempool::pgmap::list< pair > 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 creating_pgs; @@ -475,12 +472,6 @@ public: void get_filtered_pg_stats(uint32_t state, int64_t poolid, int64_t osdid, bool primary, set& 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, diff --git a/src/test/mon/PGMap.cc b/src/test/mon/PGMap.cc index 60de6b7ddae..293b7e05b57 100644 --- a/src/test/mon/PGMap.cc +++ b/src/test/mon/PGMap.cc @@ -16,103 +16,6 @@ #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 { -- 2.39.5