#ifndef CEPH_MMDSBEACON_H
#define CEPH_MMDSBEACON_H
+#include <boost/utility/string_view.hpp>
+
#include "messages/PaxosServiceMessage.h"
#include "include/types.h"
MDS_HEALTH_DAMAGE,
MDS_HEALTH_READ_ONLY,
MDS_HEALTH_SLOW_REQUEST,
- MDS_HEALTH_CACHE_OVERSIZED
+ MDS_HEALTH_CACHE_OVERSIZED,
+ MDS_HEALTH_SLOW_METADATA_IO,
};
static inline const char *mds_metric_name(mds_metric_t m)
case MDS_HEALTH_READ_ONLY: return "MDS_READ_ONLY";
case MDS_HEALTH_SLOW_REQUEST: return "MDS_SLOW_REQUEST";
case MDS_HEALTH_CACHE_OVERSIZED: return "MDS_CACHE_OVERSIZED";
+ case MDS_HEALTH_SLOW_METADATA_IO: return "MDS_SLOW_METADATA_IO";
default:
return "???";
}
return "%num% MDSs report slow requests";
case MDS_HEALTH_CACHE_OVERSIZED:
return "%num% MDSs report oversized cache";
+ case MDS_HEALTH_SLOW_METADATA_IO:
+ return "%num% MDSs report slow metadata IOs";
default:
return "???";
}
}
MDSHealthMetric() : type(MDS_HEALTH_NULL), sev(HEALTH_OK) {}
- MDSHealthMetric(mds_metric_t type_, health_status_t sev_, std::string const &message_)
+ MDSHealthMetric(mds_metric_t type_, health_status_t sev_, boost::string_view message_)
: type(type_), sev(sev_), message(message_) {}
};
WRITE_CLASS_ENCODER(MDSHealthMetric)
: PaxosServiceMessage(MSG_MDS_BEACON, 0, HEAD_VERSION, COMPAT_VERSION),
global_id(0), state(MDSMap::STATE_NULL), standby_for_rank(MDS_RANK_NONE),
standby_for_fscid(FS_CLUSTER_ID_NONE), standby_replay(false),
- mds_features(0)
- { }
+ mds_features(0) {
+ set_priority(CEPH_MSG_PRIO_HIGH);
+ }
MMDSBeacon(const uuid_d &f, mds_gid_t g, string& n, epoch_t les, MDSMap::DaemonState st, version_t se, uint64_t feat) :
PaxosServiceMessage(MSG_MDS_BEACON, les, HEAD_VERSION, COMPAT_VERSION),
fsid(f), global_id(g), name(n), state(st), seq(se),
standby_for_rank(MDS_RANK_NONE), standby_for_fscid(FS_CLUSTER_ID_NONE),
standby_replay(false), mds_features(feat) {
+ set_priority(CEPH_MSG_PRIO_HIGH);
}
private:
~MMDSBeacon() override {}