]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph-ci.git/commitdiff
osd: EC Optimizations: Update pwlc for split/merge
authorBill Scales <bill_scales@uk.ibm.com>
Wed, 26 Mar 2025 08:55:44 +0000 (08:55 +0000)
committerAlex Ainscow <aainscow@uk.ibm.com>
Tue, 22 Apr 2025 07:04:24 +0000 (08:04 +0100)
Update pwlc data in pg_info_t when splitting and
merging PGs.

Signed-off-by: Bill Scales <bill_scales@uk.ibm.com>
src/osd/PeeringState.cc

index ad6e9283141635bd9611f95f531112234f216185..5889d6d3ba5ea5fed8a9424a3ad22090503b8e77 100644 (file)
@@ -3387,6 +3387,8 @@ void PeeringState::split_into(
 
   child->info.last_user_version = info.last_user_version;
 
+  child->info.partial_writes_last_complete = info.partial_writes_last_complete;
+
   info.log_tail = pg_log.get_tail();
   child->info.log_tail = child->pg_log.get_tail();
 
@@ -3545,6 +3547,15 @@ void PeeringState::merge_from(
       psdout(10) << "taking source's past_intervals" << dendl;
       past_intervals = source->past_intervals;
     }
+
+    // merge pwlc
+    if (!info.partial_writes_last_complete.empty()) {
+      psdout(10) << "before pwlc=" << info.partial_writes_last_complete << dendl;
+    }
+    update_peer_info(pg_whoami, source->info);
+    if (!info.partial_writes_last_complete.empty()) {
+      psdout(10) << "after pwlc=" << info.partial_writes_last_complete << dendl;
+    }
   }
 
   info.last_complete = info.last_update;