Skip to content

Commit f1dbbcb

Browse files
authored
Merge pull request ceph#58510 from sajibreadd/wip-61761
crimson: PG stats are not synced between osds after object update Reviewed-by: Matan Breizman <[email protected]>
2 parents a1f9d29 + 82ae96f commit f1dbbcb

File tree

3 files changed

+12
-0
lines changed

3 files changed

+12
-0
lines changed

src/crimson/osd/pg.cc

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1354,6 +1354,15 @@ PG::with_locked_obc(const hobject_t &hobj,
13541354
};
13551355
}
13561356

1357+
void PG::update_stats(const pg_stat_t &stat) {
1358+
peering_state.update_stats(
1359+
[&stat] (auto& history, auto& stats) {
1360+
stats = stat;
1361+
return false;
1362+
}
1363+
);
1364+
}
1365+
13571366
PG::interruptible_future<> PG::handle_rep_op(Ref<MOSDRepOp> req)
13581367
{
13591368
if (__builtin_expect(stopping, false)) {
@@ -1372,6 +1381,7 @@ PG::interruptible_future<> PG::handle_rep_op(Ref<MOSDRepOp> req)
13721381
auto p = req->logbl.cbegin();
13731382
std::vector<pg_log_entry_t> log_entries;
13741383
decode(log_entries, p);
1384+
update_stats(req->pg_stats);
13751385
log_operation(std::move(log_entries),
13761386
req->pg_trim_to,
13771387
req->version,

src/crimson/osd/pg.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -574,6 +574,7 @@ class PG : public boost::intrusive_ref_counter<
574574
with_obc_func_t&& f);
575575

576576
interruptible_future<> handle_rep_op(Ref<MOSDRepOp> m);
577+
void update_stats(const pg_stat_t &stat);
577578
void log_operation(
578579
std::vector<pg_log_entry_t>&& logv,
579580
const eversion_t &trim_to,

src/crimson/osd/replicated_backend.cc

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,7 @@ ReplicatedBackend::_submit_transaction(std::set<pg_shard_t>&& pg_shards,
7070
encode(log_entries, m->logbl);
7171
m->pg_trim_to = osd_op_p.pg_trim_to;
7272
m->min_last_complete_ondisk = osd_op_p.min_last_complete_ondisk;
73+
m->pg_stats = pg.get_info().stats;
7374
// TODO: set more stuff. e.g., pg_states
7475
sends->emplace_back(
7576
shard_services.send_to_osd(

0 commit comments

Comments
 (0)