]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
crimson/osd: PG::log_operation() is now able to update hset
authorRadosław Zarzyński <rzarzyns@redhat.com>
Mon, 11 Sep 2023 14:24:27 +0000 (16:24 +0200)
committerRadoslaw Zarzynski <rzarzyns@redhat.com>
Tue, 24 Mar 2026 16:06:23 +0000 (16:06 +0000)
Signed-off-by: Radosław Zarzyński <rzarzyns@redhat.com>
src/crimson/osd/pg.cc
src/crimson/osd/pg.h
src/crimson/osd/replicated_backend.cc

index cd186d48dbdd76dbcb1922db396dddc8531a8533..06366b57d0767117bd7aab27709917bd65ff1558 100644 (file)
@@ -1340,6 +1340,7 @@ PG::handle_rep_op_fut PG::handle_rep_op(Ref<MOSDRepOp> req)
     txn);
 
   log_operation(std::move(log_entries),
+                std::nullopt,
                 req->pg_trim_to,
                 req->version,
                 req->pg_committed_to,
@@ -1386,6 +1387,7 @@ PG::interruptible_future<> PG::update_snap_map(
 
 void PG::log_operation(
   std::vector<pg_log_entry_t>&& logv,
+  const std::optional<pg_hit_set_history_t> &hset_history,
   const eversion_t &trim_to,
   const eversion_t &roll_forward_to,
   const eversion_t &pg_committed_to,
@@ -1397,6 +1399,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);
index 14fd36805a6dcacfaff07ce99cb691873c4d8833..7415adcc06dee6372916365b1167a5460c0fec7f 100644 (file)
@@ -677,6 +677,7 @@ public:
     ObjectStore::Transaction& t);
   void log_operation(
     std::vector<pg_log_entry_t>&& logv,
+    const std::optional<pg_hit_set_history_t> &hset_history,
     const eversion_t &trim_to,
     const eversion_t &roll_forward_to,
     const eversion_t &pg_commited_to,
index af99b8ca3568ceed5ff19c71a49181c7c03de118..e8454762e270c7fe5798b573ad28d304d73e9c7d 100644 (file)
@@ -168,6 +168,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,