From 2e1f8fdb8518e8deb9eb3eebfe0f36baf20f84c1 Mon Sep 17 00:00:00 2001 From: Sage Weil Date: Tue, 23 May 2017 09:43:36 -0400 Subject: [PATCH] mon/PGMap: encode delta info in digest It was already in PGMapDigest, but not encoded. One field we didn't need; move that back to PGMap. Signed-off-by: Sage Weil --- src/mon/PGMap.cc | 14 ++++++++++++-- src/mon/PGMap.h | 2 +- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/src/mon/PGMap.cc b/src/mon/PGMap.cc index da0b5157d07..018a31255df 100644 --- a/src/mon/PGMap.cc +++ b/src/mon/PGMap.cc @@ -25,7 +25,7 @@ MEMPOOL_DEFINE_OBJECT_FACTORY(PGMap::Incremental, pgmap_inc, pgmap); void PGMapDigest::encode(bufferlist& bl, uint64_t features) const { // NOTE: see PGMap::encode_digest - ENCODE_START(3, 1, bl); + ENCODE_START(4, 1, bl); ::encode(num_pg, bl); ::encode(num_pg_active, bl); ::encode(num_osd, bl); @@ -37,12 +37,16 @@ void PGMapDigest::encode(bufferlist& bl, uint64_t features) const ::encode(num_pg_by_osd, bl); ::encode(osd_last_seq, bl); ::encode(num_pg_by_pool, bl); + ::encode(per_pool_sum_delta, bl, features); + ::encode(per_pool_sum_deltas_stamps, bl); + ::encode(pg_sum_delta, bl, features); + ::encode(stamp_delta, bl); ENCODE_FINISH(bl); } void PGMapDigest::decode(bufferlist::iterator& p) { - DECODE_START(3, p); + DECODE_START(4, p); ::decode(num_pg, p); ::decode(num_pg_active, p); ::decode(num_osd, p); @@ -66,6 +70,12 @@ void PGMapDigest::decode(bufferlist::iterator& p) if (struct_v >= 3) { ::decode(num_pg_by_pool, p); } + if (struct_v >= 4) { + ::decode(per_pool_sum_delta, p); + ::decode(per_pool_sum_deltas_stamps, p); + ::decode(pg_sum_delta, p); + ::decode(stamp_delta, p); + } DECODE_FINISH(p); } diff --git a/src/mon/PGMap.h b/src/mon/PGMap.h index 178e427dd8f..01f78062bc5 100644 --- a/src/mon/PGMap.h +++ b/src/mon/PGMap.h @@ -85,7 +85,6 @@ public: */ mempool::pgmap::unordered_map > per_pool_sum_delta; - mempool::pgmap::list< pair > pg_sum_deltas; pool_stat_t pg_sum_delta; utime_t stamp_delta; @@ -286,6 +285,7 @@ public: mutable epoch_t min_last_epoch_clean = 0; mempool::pgmap::unordered_map > pg_by_osd; mempool::pgmap::unordered_map blocked_by_sum; + mempool::pgmap::list< pair > pg_sum_deltas; utime_t stamp; -- 2.39.5