]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
crimson/osd: clean up BackfillRecovery 60185/head
authorXuehan Xu <xuxuehan@qianxin.com>
Mon, 16 Dec 2024 05:50:48 +0000 (13:50 +0800)
committerXuehan Xu <xuxuehan@qianxin.com>
Fri, 7 Feb 2025 03:59:30 +0000 (11:59 +0800)
Signed-off-by: Xuehan Xu <xuxuehan@qianxin.com>
src/crimson/osd/osd_operation_external_tracking.h
src/crimson/osd/osd_operations/background_recovery.cc
src/crimson/osd/osd_operations/background_recovery.h
src/crimson/osd/osd_operations/peering_event.h
src/crimson/osd/pg.h
src/crimson/osd/pg_recovery.cc

index 6a2d7e3ccbd164d40a51751171e3c0ce63d51894..0f70e8407a2b440dabdb8203864afddd094ea779 100644 (file)
@@ -342,13 +342,6 @@ struct EventBackendRegistry<osd::RecoverySubRequest> {
   }
 };
 
-template <>
-struct EventBackendRegistry<osd::BackfillRecovery> {
-  static std::tuple<> get_backends() {
-    return {};
-  }
-};
-
 template <>
 struct EventBackendRegistry<osd::PGAdvanceMap> {
   static std::tuple<> get_backends() {
index c030c9d89708d5faeb02ad3f21b21b5d5a1fc827..7f93e42d53d8effd9bff74e36fc66e09e0bf10d9 100644 (file)
@@ -175,41 +175,7 @@ PglogBasedRecovery::do_recovery()
   });
 }
 
-PGPeeringPipeline &BackfillRecovery::peering_pp(PG &pg)
-{
-  return pg.peering_request_pg_pipeline;
-}
-
-BackfillRecovery::interruptible_future<bool>
-BackfillRecovery::do_recovery()
-{
-  LOG_PREFIX(BackfillRecovery::do_recovery);
-  DEBUGDPPI("{}", *pg, __func__);
-
-  if (pg->has_reset_since(epoch_started)) {
-    DEBUGDPPI("{}: pg got reset since epoch_started={}",
-               *pg, __func__, epoch_started);
-    return seastar::make_ready_future<bool>(false);
-  }
-  // TODO: limits
-  return enter_stage<interruptor>(
-    // process_event() of our boost::statechart machine is non-reentrant.
-    // with the backfill_pipeline we protect it from a second entry from
-    // the implementation of BackfillListener.
-    // additionally, this stage serves to synchronize with PeeringEvent.
-    peering_pp(*pg).process
-  ).then_interruptible([this] {
-    pg->get_recovery_handler()->dispatch_backfill_event(std::move(evt));
-    return handle.complete();
-  }).then_interruptible([] {
-    return seastar::make_ready_future<bool>(false);
-  }).finally([this] {
-    handle.exit();
-  });
-}
-
 template class BackgroundRecoveryT<UrgentRecovery>;
 template class BackgroundRecoveryT<PglogBasedRecovery>;
-template class BackgroundRecoveryT<BackfillRecovery>;
 
 } // namespace crimson::osd
index 5ae0e1a9edb8503ab228c433be83235cb8b99479..255a934cd49879263c3bc50ebaea9725af22dac9 100644 (file)
@@ -52,10 +52,9 @@ private:
 
 /// represent a recovery initiated for serving a client request
 ///
-/// unlike @c PglogBasedRecovery and @c BackfillRecovery,
-/// @c UrgentRecovery is not throttled by the scheduler. and it
-/// utilizes @c RecoveryBackend directly to recover the unreadable
-/// object.
+/// unlike @c PglogBasedRecovery, @c UrgentRecovery is not throttled
+/// by the scheduler. and it utilizes @c RecoveryBackend directly to
+/// recover the unreadable object.
 class UrgentRecovery final : public BackgroundRecoveryT<UrgentRecovery> {
 public:
   UrgentRecovery(
@@ -107,49 +106,9 @@ private:
   bool cancelled = false;
 };
 
-class BackfillRecovery final : public BackgroundRecoveryT<BackfillRecovery> {
-public:
-
-  template <class EventT>
-  BackfillRecovery(
-    Ref<PG> pg,
-    ShardServices &ss,
-    epoch_t epoch_started,
-    const EventT& evt);
-
-  PipelineHandle& get_handle() { return handle; }
-
-  std::tuple<
-    OperationThrottler::BlockingEvent,
-    PGPeeringPipeline::Process::BlockingEvent
-  > tracking_events;
-
-private:
-  boost::intrusive_ptr<const boost::statechart::event_base> evt;
-  PipelineHandle handle;
-
-  static PGPeeringPipeline &peering_pp(PG &pg);
-  interruptible_future<bool> do_recovery() override;
-};
-
-template <class EventT>
-BackfillRecovery::BackfillRecovery(
-  Ref<PG> pg,
-  ShardServices &ss,
-  const epoch_t epoch_started,
-  const EventT& evt)
-  : BackgroundRecoveryT(
-      std::move(pg),
-      ss,
-      epoch_started,
-      crimson::osd::scheduler::scheduler_class_t::background_best_effort),
-    evt(evt.intrusive_from_this())
-{}
-
 }
 
 #if FMT_VERSION >= 90000
-template <> struct fmt::formatter<crimson::osd::BackfillRecovery> : fmt::ostream_formatter {};
 template <> struct fmt::formatter<crimson::osd::PglogBasedRecovery> : fmt::ostream_formatter {};
 template <> struct fmt::formatter<crimson::osd::UrgentRecovery> : fmt::ostream_formatter {};
 template <class T> struct fmt::formatter<crimson::osd::BackgroundRecoveryT<T>> : fmt::ostream_formatter {};
index aa6b8a95a94ae2ac32d15d2034b3640763834e59..9b8723b1c147adea9eebe04efe0ed73a2ff7dc4b 100644 (file)
@@ -21,7 +21,6 @@ namespace crimson::osd {
 class OSD;
 class ShardServices;
 class PG;
-class BackfillRecovery;
 
 template <class T>
 class PeeringEvent : public PhasedOperationT<T> {
index df19ee92b3a88bf6e177f85d619135ca1f742a48..2684599d0993cf8a481f6a569bd4384cae9155cf 100644 (file)
@@ -64,7 +64,6 @@ namespace crimson::os {
 
 namespace crimson::osd {
 class OpsExecuter;
-class BackfillRecovery;
 class SnapTrimEvent;
 class PglogBasedRecovery;
 
@@ -892,7 +891,6 @@ private:
   friend class RepRequest;
   friend class LogMissingRequest;
   friend class LogMissingRequestReply;
-  friend class BackfillRecovery;
   friend struct PGFacade;
   friend class InternalClientRequest;
   friend class WatchTimeoutRequest;
index 76aac5010ce5b875356e6ec7ea70fb5cefd7062d..12c35586fc7f5b1c0bfc8fd04bea9d75bfd63677 100644 (file)
@@ -639,8 +639,6 @@ void PGRecovery::backfilled()
 
 void PGRecovery::backfill_suspended()
 {
-  // We are not creating a new BackfillRecovery request here, as we
-  // need to cancel the backfill synchronously (before this method returns).
   using BackfillState = crimson::osd::BackfillState;
   backfill_state->process_event(
     BackfillState::SuspendBackfill{}.intrusive_from_this());