f->dump_int("num_keys_recovered", num_keys_recovered);
f->dump_int("num_objects_omap", num_objects_omap);
f->dump_int("num_objects_hit_set_archive", num_objects_hit_set_archive);
+ f->dump_int("num_bytes_hit_set_archive", num_bytes_hit_set_archive);
}
void object_stat_sum_t::encode(bufferlist& bl) const
{
- ENCODE_START(10, 3, bl);
+ ENCODE_START(11, 3, bl);
::encode(num_bytes, bl);
::encode(num_objects, bl);
::encode(num_object_clones, bl);
::encode(num_objects_omap, bl);
::encode(num_objects_hit_set_archive, bl);
::encode(num_objects_misplaced, bl);
+ ::encode(num_bytes_hit_set_archive, bl);
ENCODE_FINISH(bl);
}
void object_stat_sum_t::decode(bufferlist::iterator& bl)
{
- DECODE_START_LEGACY_COMPAT_LEN(10, 3, 3, bl);
+ DECODE_START_LEGACY_COMPAT_LEN(11, 3, 3, bl);
::decode(num_bytes, bl);
if (struct_v < 3) {
uint64_t num_kb;
} else {
num_objects_misplaced = 0;
}
+ if (struct_v >= 11) {
+ ::decode(num_bytes_hit_set_archive, bl);
+ } else {
+ num_bytes_hit_set_archive = 0;
+ }
DECODE_FINISH(bl);
}
void object_stat_sum_t::generate_test_instances(list<object_stat_sum_t*>& o)
{
object_stat_sum_t a;
- o.push_back(new object_stat_sum_t(a));
a.num_bytes = 1;
a.num_objects = 3;
a.num_objects_dirty = 21;
a.num_whiteouts = 22;
a.num_objects_misplaced = 1232;
+ a.num_objects_hit_set_archive = 2;
+ a.num_bytes_hit_set_archive = 27;
o.push_back(new object_stat_sum_t(a));
}
num_whiteouts += o.num_whiteouts;
num_objects_omap += o.num_objects_omap;
num_objects_hit_set_archive += o.num_objects_hit_set_archive;
+ num_bytes_hit_set_archive += o.num_bytes_hit_set_archive;
}
void object_stat_sum_t::sub(const object_stat_sum_t& o)
num_whiteouts -= o.num_whiteouts;
num_objects_omap -= o.num_objects_omap;
num_objects_hit_set_archive -= o.num_objects_hit_set_archive;
+ num_bytes_hit_set_archive -= o.num_bytes_hit_set_archive;
}
void pg_stat_t::encode(bufferlist &bl) const
{
- ENCODE_START(19, 8, bl);
+ ENCODE_START(20, 8, bl);
::encode(version, bl);
::encode(reported_seq, bl);
::encode(reported_epoch, bl);
::encode(blocked_by, bl);
::encode(last_undegraded, bl);
::encode(last_fullsized, bl);
+ ::encode(hitset_bytes_stats_invalid, bl);
ENCODE_FINISH(bl);
}
void pg_stat_t::decode(bufferlist::iterator &bl)
{
- DECODE_START_LEGACY_COMPAT_LEN(19, 8, 8, bl);
+ DECODE_START_LEGACY_COMPAT_LEN(20, 8, 8, bl);
::decode(version, bl);
::decode(reported_seq, bl);
::decode(reported_epoch, bl);
last_undegraded = utime_t();
last_fullsized = utime_t();
}
+ if (struct_v >= 20) {
+ ::decode(hitset_bytes_stats_invalid, bl);
+ } else {
+ // if we are decoding an old encoding of this object, then the
+ // encoder may not have supported num_bytes_hit_set_archive accounting.
+ hitset_bytes_stats_invalid = true;
+ }
DECODE_FINISH(bl);
}
int64_t num_whiteouts;
int64_t num_objects_omap;
int64_t num_objects_hit_set_archive;
+ int64_t num_bytes_hit_set_archive;
object_stat_sum_t()
: num_bytes(0),
num_objects_dirty(0),
num_whiteouts(0),
num_objects_omap(0),
- num_objects_hit_set_archive(0)
+ num_objects_hit_set_archive(0),
+ num_bytes_hit_set_archive(0)
{}
void floor(int64_t f) {
FLOOR(num_whiteouts);
FLOOR(num_objects_omap);
FLOOR(num_objects_hit_set_archive);
+ FLOOR(num_bytes_hit_set_archive);
#undef FLOOR
}
SPLIT(num_whiteouts);
SPLIT(num_objects_omap);
SPLIT(num_objects_hit_set_archive);
+ SPLIT(num_bytes_hit_set_archive);
#undef SPLIT
}
bool dirty_stats_invalid;
bool omap_stats_invalid;
bool hitset_stats_invalid;
+ bool hitset_bytes_stats_invalid;
/// up, acting primaries
int32_t up_primary;
dirty_stats_invalid(false),
omap_stats_invalid(false),
hitset_stats_invalid(false),
+ hitset_bytes_stats_invalid(false),
up_primary(-1),
acting_primary(-1)
{ }