]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
mon/PGMap: remove old PGMapUpdater methods
authorSage Weil <sage@redhat.com>
Mon, 28 Aug 2017 21:14:10 +0000 (17:14 -0400)
committerSage Weil <sage@redhat.com>
Wed, 6 Sep 2017 14:18:05 +0000 (10:18 -0400)
These were used by PGMonitor.

Signed-off-by: Sage Weil <sage@redhat.com>
src/mon/PGMap.cc
src/mon/PGMap.h

index 6aa23da5c081059a0adba105054349c50c36be2a..767cc6a5e51bd72baa31c20a16b3cdd63139190a 100644 (file)
@@ -3122,48 +3122,6 @@ stats_out:
   return -EOPNOTSUPP;
 }
 
-void PGMapUpdater::check_osd_map(const OSDMap::Incremental &osd_inc,
-                                 std::set<int> *need_check_down_pg_osds,
-                                 std::map<int,utime_t> *last_osd_report,
-                                 PGMap *pg_map,
-                                 PGMap::Incremental *pending_inc)
-{
-  for (const auto &p : osd_inc.new_weight) {
-    if (p.second == CEPH_OSD_OUT) {
-      dout(10) << __func__ << "  osd." << p.first << " went OUT" << dendl;
-      pending_inc->stat_osd_out(p.first);
-    }
-  }
-
-  // this is conservative: we want to know if any osds (maybe) got marked down.
-  for (const auto &p : osd_inc.new_state) {
-    if (p.second & CEPH_OSD_UP) {   // true if marked up OR down,
-                                     // but we're too lazy to check
-                                     // which
-      need_check_down_pg_osds->insert(p.first);
-
-      // clear out the last_osd_report for this OSD
-      auto report = last_osd_report->find(p.first);
-      if (report != last_osd_report->end()) {
-        last_osd_report->erase(report);
-      }
-
-      // clear out osd_stat slow request histogram
-      dout(20) << __func__ << " clearing osd." << p.first
-               << " request histogram" << dendl;
-      pending_inc->stat_osd_down_up(p.first, *pg_map);
-    }
-
-    if (p.second & CEPH_OSD_EXISTS) {
-      // whether it was created *or* destroyed, we can safely drop
-      // it's osd_stat_t record.
-      dout(10) << __func__ << "  osd." << p.first
-               << " created or destroyed" << dendl;
-      pending_inc->rm_stat(p.first);
-    }
-  }
-}
-
 void PGMapUpdater::check_osd_map(
   CephContext *cct,
   const OSDMap& osdmap,
@@ -3242,244 +3200,6 @@ void PGMapUpdater::check_osd_map(
   }
 }
 
-void PGMapUpdater::register_pg(
-    const OSDMap &osd_map,
-    pg_t pgid, epoch_t epoch,
-    bool new_pool,
-    const PGMap &pg_map,
-    PGMap::Incremental *pending_inc)
-{
-  pg_t parent;
-  int split_bits = 0;
-  auto parent_stat = pg_map.pg_stat.end();
-  if (!new_pool) {
-    parent = pgid;
-    while (1) {
-      // remove most significant bit
-      int msb = cbits(parent.ps());
-      if (!msb)
-       break;
-      parent.set_ps(parent.ps() & ~(1<<(msb-1)));
-      split_bits++;
-      dout(30) << " is " << pgid << " parent " << parent << " ?" << dendl;
-      parent_stat = pg_map.pg_stat.find(parent);
-      if (parent_stat != pg_map.pg_stat.end() &&
-          parent_stat->second.state != PG_STATE_CREATING) {
-       dout(10) << "  parent is " << parent << dendl;
-       break;
-      }
-    }
-  }
-
-  pg_stat_t &stats = pending_inc->pg_stat_updates[pgid];
-  stats.state = PG_STATE_CREATING;
-  stats.created = epoch;
-  stats.parent = parent;
-  stats.parent_split_bits = split_bits;
-  stats.mapping_epoch = epoch;
-
-  if (parent_stat != pg_map.pg_stat.end()) {
-    const pg_stat_t &ps = parent_stat->second;
-    stats.last_fresh = ps.last_fresh;
-    stats.last_active = ps.last_active;
-    stats.last_change = ps.last_change;
-    stats.last_peered = ps.last_peered;
-    stats.last_clean = ps.last_clean;
-    stats.last_unstale = ps.last_unstale;
-    stats.last_undegraded = ps.last_undegraded;
-    stats.last_fullsized = ps.last_fullsized;
-    stats.last_scrub_stamp = ps.last_scrub_stamp;
-    stats.last_deep_scrub_stamp = ps.last_deep_scrub_stamp;
-    stats.last_clean_scrub_stamp = ps.last_clean_scrub_stamp;
-  } else {
-    utime_t now = osd_map.get_modified();
-    stats.last_fresh = now;
-    stats.last_active = now;
-    stats.last_change = now;
-    stats.last_peered = now;
-    stats.last_clean = now;
-    stats.last_unstale = now;
-    stats.last_undegraded = now;
-    stats.last_fullsized = now;
-    stats.last_scrub_stamp = now;
-    stats.last_deep_scrub_stamp = now;
-    stats.last_clean_scrub_stamp = now;
-  }
-
-  osd_map.pg_to_up_acting_osds(
-    pgid,
-    &stats.up,
-    &stats.up_primary,
-    &stats.acting,
-    &stats.acting_primary);
-
-  if (split_bits == 0) {
-    dout(10) << __func__ << "  will create " << pgid
-             << " primary " << stats.acting_primary
-             << " acting " << stats.acting
-             << dendl;
-  } else {
-    dout(10) << __func__ << "  will create " << pgid
-             << " primary " << stats.acting_primary
-             << " acting " << stats.acting
-             << " parent " << parent
-             << " by " << split_bits << " bits"
-             << dendl;
-  }
-}
-
-void PGMapUpdater::register_new_pgs(
-    const OSDMap &osd_map,
-    const PGMap &pg_map,
-    PGMap::Incremental *pending_inc)
-{
-  epoch_t epoch = osd_map.get_epoch();
-  dout(10) << __func__ << " checking pg pools for osdmap epoch " << epoch
-           << ", last_pg_scan " << pg_map.last_pg_scan << dendl;
-
-  int created = 0;
-  const auto &pools = osd_map.get_pools();
-
-  for (const auto &p : pools) {
-    int64_t poolid = p.first;
-    const pg_pool_t &pool = p.second;
-    int ruleno = osd_map.crush->find_rule(pool.get_crush_rule(),
-                                          pool.get_type(), pool.get_size());
-    if (ruleno < 0 || !osd_map.crush->rule_exists(ruleno))
-      continue;
-
-    if (pool.get_last_change() <= pg_map.last_pg_scan ||
-        pool.get_last_change() <= pending_inc->pg_scan) {
-      dout(10) << " no change in pool " << poolid << " " << pool << dendl;
-      continue;
-    }
-
-    dout(10) << __func__ << " scanning pool " << poolid
-             << " " << pool << dendl;
-
-    // first pgs in this pool
-    bool new_pool = pg_map.pg_pool_sum.count(poolid) == 0;
-
-    for (ps_t ps = 0; ps < pool.get_pg_num(); ps++) {
-      pg_t pgid(ps, poolid, -1);
-      if (pg_map.pg_stat.count(pgid)) {
-       dout(20) << "register_new_pgs  have " << pgid << dendl;
-       continue;
-      }
-      created++;
-      register_pg(osd_map, pgid, pool.get_last_change(), new_pool,
-                  pg_map, pending_inc);
-    }
-  }
-
-  int removed = 0;
-  for (const auto &p : pg_map.creating_pgs) {
-    if (p.preferred() >= 0) {
-      dout(20) << " removing creating_pg " << p
-               << " because it is localized and obsolete" << dendl;
-      pending_inc->pg_remove.insert(p);
-      ++removed;
-    } else if (!osd_map.have_pg_pool(p.pool())) {
-      dout(20) << " removing creating_pg " << p
-               << " because containing pool deleted" << dendl;
-      pending_inc->pg_remove.insert(p);
-      ++removed;
-    }
-  }
-
-  // deleted pools?
-  for (const auto &p : pg_map.pg_stat) {
-    if (!osd_map.have_pg_pool(p.first.pool())) {
-      dout(20) << " removing pg_stat " << p.first << " because "
-               << "containing pool deleted" << dendl;
-      pending_inc->pg_remove.insert(p.first);
-      ++removed;
-    } else if (p.first.preferred() >= 0) {
-      dout(20) << " removing localized pg " << p.first << dendl;
-      pending_inc->pg_remove.insert(p.first);
-      ++removed;
-    }
-  }
-
-  // we don't want to redo this work if we can avoid it.
-  pending_inc->pg_scan = epoch;
-
-  dout(10) << "register_new_pgs registered " << created << " new pgs, removed "
-           << removed << " uncreated pgs" << dendl;
-}
-
-
-void PGMapUpdater::update_creating_pgs(
-    const OSDMap &osd_map,
-    const PGMap &pg_map,
-    PGMap::Incremental *pending_inc)
-{
-  dout(10) << __func__ << " to " << pg_map.creating_pgs.size()
-           << " pgs, osdmap epoch " << osd_map.get_epoch()
-           << dendl;
-
-  unsigned changed = 0;
-  for (auto p = pg_map.creating_pgs.begin();
-       p != pg_map.creating_pgs.end();
-       ++p) {
-    pg_t pgid = *p;
-    pg_t on = pgid;
-    auto q = pg_map.pg_stat.find(pgid);
-    assert(q != pg_map.pg_stat.end());
-    const pg_stat_t *s = &q->second;
-
-    if (s->parent_split_bits)
-      on = s->parent;
-
-    vector<int> up, acting;
-    int up_primary, acting_primary;
-    osd_map.pg_to_up_acting_osds(
-      on,
-      &up,
-      &up_primary,
-      &acting,
-      &acting_primary);
-
-    if (up != s->up ||
-        up_primary != s->up_primary ||
-        acting !=  s->acting ||
-        acting_primary != s->acting_primary) {
-      pg_stat_t *ns = &pending_inc->pg_stat_updates[pgid];
-      if (osd_map.get_epoch() > ns->reported_epoch) {
-       dout(20) << __func__ << "  " << pgid << " "
-                << " acting_primary: " << s->acting_primary
-                << " -> " << acting_primary
-                << " acting: " << s->acting << " -> " << acting
-                << " up_primary: " << s->up_primary << " -> " << up_primary
-                << " up: " << s->up << " -> " << up
-                << dendl;
-
-       // only initialize if it wasn't already a pending update
-       if (ns->reported_epoch == 0)
-         *ns = *s;
-
-       // note epoch if the target of the create message changed
-       if (acting_primary != ns->acting_primary)
-         ns->mapping_epoch = osd_map.get_epoch();
-
-       ns->up = up;
-       ns->up_primary = up_primary;
-       ns->acting = acting;
-       ns->acting_primary = acting_primary;
-
-       ++changed;
-      } else {
-       dout(20) << __func__ << "  " << pgid << " has pending update from newer"
-                << " epoch " << ns->reported_epoch
-                << dendl;
-      }
-    }
-  }
-  if (changed) {
-    dout(10) << __func__ << " " << changed << " pgs changed primary" << dendl;
-  }
-}
-
 static void _try_mark_pg_stale(
   const OSDMap& osdmap,
   pg_t pgid,
index 37cc6f7b8be2978d6633744896223dd33031ce5f..781e3ae3af68a97ef52184748fe3d303ed85b94d 100644 (file)
@@ -465,40 +465,11 @@ int process_pg_map_command(
 class PGMapUpdater
 {
 public:
-  static void check_osd_map(
-      const OSDMap::Incremental &osd_inc,
-      std::set<int> *need_check_down_pg_osds,
-      std::map<int,utime_t> *last_osd_report,
-      PGMap *pg_map,
-      PGMap::Incremental *pending_inc);
-
   static void check_osd_map(
     CephContext *cct,
     const OSDMap &osdmap,
     const PGMap& pg_map,
     PGMap::Incremental *pending_inc);
-  /**
-   * check latest osdmap for new pgs to register
-   */
-  static void register_new_pgs(
-      const OSDMap &osd_map,
-      const PGMap &pg_map,
-      PGMap::Incremental *pending_inc);
-
-  /**
-   * recalculate creating pg mappings
-   */
-  static void update_creating_pgs(
-      const OSDMap &osd_map,
-      const PGMap &pg_map,
-      PGMap::Incremental *pending_inc);
-
-  static void register_pg(
-      const OSDMap &osd_map,
-      pg_t pgid, epoch_t epoch,
-      bool new_pool,
-      const PGMap &pg_map,
-      PGMap::Incremental *pending_inc);
 
   // mark pg's state stale if its acting primary osd is down
   static void check_down_pgs(