info.stats.last_epoch_clean = info.history.last_epoch_clean;
info.stats.log_size = pg_log.get_head().version - pg_log.get_tail().version;
+ info.stats.log_dups_size = pg_log.get_log().dups.size();
info.stats.ondisk_log_size = info.stats.log_size;
info.stats.log_start = pg_log.get_tail();
info.stats.ondisk_log_start = pg_log.get_tail();
f->dump_stream("last_clean_scrub_stamp") << last_clean_scrub_stamp;
f->dump_int("objects_scrubbed", objects_scrubbed);
f->dump_int("log_size", log_size);
+ f->dump_int("log_dups_size", log_dups_size);
f->dump_int("ondisk_log_size", ondisk_log_size);
f->dump_bool("stats_invalid", stats_invalid);
f->dump_bool("dirty_stats_invalid", dirty_stats_invalid);
void pg_stat_t::encode(ceph::buffer::list &bl) const
{
- ENCODE_START(28, 22, bl);
+ ENCODE_START(29, 22, bl);
encode(version, bl);
encode(reported_seq, bl);
encode(reported_epoch, bl);
encode(scrub_duration, bl);
encode(objects_trimmed, bl);
encode(snaptrim_duration, bl);
+ encode(log_dups_size, bl);
ENCODE_FINISH(bl);
}
{
bool tmp;
uint32_t old_state;
- DECODE_START(28, bl);
+ DECODE_START(29, bl);
decode(version, bl);
decode(reported_seq, bl);
decode(reported_epoch, bl);
decode(objects_trimmed, bl);
decode(snaptrim_duration, bl);
}
+ if (struct_v >= 29) {
+ decode(log_dups_size, bl);
+ }
}
DECODE_FINISH(bl);
}
l.stats == r.stats &&
l.stats_invalid == r.stats_invalid &&
l.log_size == r.log_size &&
+ l.log_dups_size == r.log_dups_size &&
l.ondisk_log_size == r.ondisk_log_size &&
l.up == r.up &&
l.acting == r.acting &&
object_stat_collection_t stats;
int64_t log_size;
+ int64_t log_dups_size;
int64_t ondisk_log_size; // >= active_log_size
int64_t objects_scrubbed;
double scrub_duration;
state(0),
created(0), last_epoch_clean(0),
parent_split_bits(0),
- log_size(0), ondisk_log_size(0),
+ log_size(0), log_dups_size(0),
+ ondisk_log_size(0),
objects_scrubbed(0),
scrub_duration(0),
mapping_epoch(0),
void add(const pg_stat_t& o) {
stats.add(o.stats);
log_size += o.log_size;
+ log_dups_size += o.log_dups_size;
ondisk_log_size += o.ondisk_log_size;
snaptrimq_len = std::min((uint64_t)snaptrimq_len + o.snaptrimq_len,
(uint64_t)(1ull << 31));
void sub(const pg_stat_t& o) {
stats.sub(o.stats);
log_size -= o.log_size;
+ log_dups_size -= o.log_dups_size;
ondisk_log_size -= o.ondisk_log_size;
if (o.snaptrimq_len < snaptrimq_len) {
snaptrimq_len -= o.snaptrimq_len;