From 62a80f2ddca3cf0485da342435ebfd78df2a2ed3 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Rados=C5=82aw=20Zarzy=C5=84ski?= Date: Mon, 11 Sep 2023 16:24:27 +0200 Subject: [PATCH] crimson/osd: PG::log_operation() is now able to update hset MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Signed-off-by: Radosław Zarzyński --- src/crimson/osd/pg.cc | 5 +++++ src/crimson/osd/pg.h | 1 + src/crimson/osd/replicated_backend.cc | 1 + 3 files changed, 7 insertions(+) diff --git a/src/crimson/osd/pg.cc b/src/crimson/osd/pg.cc index 7a11316e0a2..bda0b314b83 100644 --- a/src/crimson/osd/pg.cc +++ b/src/crimson/osd/pg.cc @@ -1324,6 +1324,7 @@ PG::handle_rep_op_fut PG::handle_rep_op(Ref req) txn); log_operation(std::move(log_entries), + std::nullopt, req->pg_trim_to, req->version, req->pg_committed_to, @@ -1368,6 +1369,7 @@ PG::interruptible_future<> PG::update_snap_map( void PG::log_operation( std::vector&& logv, + const std::optional &hset_history, const eversion_t &trim_to, const eversion_t &roll_forward_to, const eversion_t &pg_committed_to, @@ -1379,6 +1381,9 @@ void PG::log_operation( if (is_primary()) { ceph_assert(trim_to <= peering_state.get_pg_committed_to()); } + if (hset_history) { + peering_state.update_hset(*hset_history); + } auto last = logv.rbegin(); if (is_primary() && last != logv.rend()) { DEBUGDPP("on primary, trimming projected log", *this); diff --git a/src/crimson/osd/pg.h b/src/crimson/osd/pg.h index ecdb72b5ae5..9b35246635a 100644 --- a/src/crimson/osd/pg.h +++ b/src/crimson/osd/pg.h @@ -669,6 +669,7 @@ public: ObjectStore::Transaction& t); void log_operation( std::vector&& logv, + const std::optional &hset_history, const eversion_t &trim_to, const eversion_t &roll_forward_to, const eversion_t &pg_commited_to, diff --git a/src/crimson/osd/replicated_backend.cc b/src/crimson/osd/replicated_backend.cc index 4122439cda0..9fc921294c6 100644 --- a/src/crimson/osd/replicated_backend.cc +++ b/src/crimson/osd/replicated_backend.cc @@ -167,6 +167,7 @@ ReplicatedBackend::submit_transaction( pg.log_operation( std::move(log_entries), + std::nullopt, osd_op_p.pg_trim_to, osd_op_p.at_version, osd_op_p.pg_committed_to, -- 2.47.3