void pg_info_t::encode(bufferlist &bl) const
{
- ENCODE_START(28, 26, bl);
+ ENCODE_START(29, 26, bl);
::encode(pgid, bl);
::encode(last_update, bl);
::encode(last_complete, bl);
::encode(purged_snaps, bl);
::encode(last_epoch_started, bl);
::encode(last_user_version, bl);
+ ::encode(hit_set, bl);
ENCODE_FINISH(bl);
}
void pg_info_t::decode(bufferlist::iterator &bl)
{
- DECODE_START_LEGACY_COMPAT_LEN(28, 26, 26, bl);
+ DECODE_START_LEGACY_COMPAT_LEN(29, 26, 26, bl);
if (struct_v < 23) {
old_pg_t opgid;
::decode(opgid, bl);
::decode(last_user_version, bl);
else
last_user_version = last_update.version;
+ if (struct_v >= 29)
+ ::decode(hit_set, bl);
DECODE_FINISH(bl);
}
f->dump_int("dne", dne());
f->dump_int("incomplete", is_incomplete());
f->dump_int("last_epoch_started", last_epoch_started);
+
+ f->open_object_section("hit_set_history");
+ hit_set.dump(f);
+ f->close_section();
}
void pg_info_t::generate_test_instances(list<pg_info_t*>& o)
o.back()->last_user_version = 2;
o.back()->log_tail = eversion_t(7, 8);
o.back()->last_backfill = hobject_t(object_t("objname"), "key", 123, 456, -1, "");
- list<pg_stat_t*> s;
- pg_stat_t::generate_test_instances(s);
- o.back()->stats = *s.back();
+ {
+ list<pg_stat_t*> s;
+ pg_stat_t::generate_test_instances(s);
+ o.back()->stats = *s.back();
+ }
+ {
+ list<pg_hit_set_history_t*> s;
+ pg_hit_set_history_t::generate_test_instances(s);
+ o.back()->hit_set = *s.back();
+ }
}
// -- pg_notify_t --
eversion_t version; ///< version this HitSet object was written
pg_hit_set_info_t() : size(0), target_size(0) {}
- pg_hit_set_info_t(uint32_t target, utime_t st)
- : size(0), target_size(target), begin(st) {}
+ pg_hit_set_info_t(uint32_t target, utime_t b)
+ : size(0), target_size(target), begin(b) {}
bool is_full() const {
return size && size >= target_size;
pg_stat_t stats;
pg_history_t history;
+ pg_hit_set_history_t hit_set;
pg_info_t()
: last_epoch_started(0), last_user_version(0),