From: Radoslaw Zarzynski Date: Tue, 19 Mar 2024 16:49:06 +0000 (+0000) Subject: crimson/osd: bring ECRecoveryBackend, phase 0 X-Git-Tag: v21.0.0~3^2~67 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=637b3195582479f76961ac3f2562d3685cdfe691;p=ceph.git crimson/osd: bring ECRecoveryBackend, phase 0 Signed-off-by: Radoslaw Zarzynski --- diff --git a/src/crimson/osd/CMakeLists.txt b/src/crimson/osd/CMakeLists.txt index 58deea7ab51e..c0ffa4053bcc 100644 --- a/src/crimson/osd/CMakeLists.txt +++ b/src/crimson/osd/CMakeLists.txt @@ -1,6 +1,7 @@ add_executable(crimson-osd backfill_state.cc ec_backend.cc + ec_recovery_backend.cc heartbeat.cc lsan_suppressions.cc main.cc diff --git a/src/crimson/osd/ec_recovery_backend.cc b/src/crimson/osd/ec_recovery_backend.cc new file mode 100644 index 000000000000..7fa01736f323 --- /dev/null +++ b/src/crimson/osd/ec_recovery_backend.cc @@ -0,0 +1,20 @@ +// -*- mode:C++; tab-width:8; c-basic-offset:2; indent-tabs-mode:nil -*- +// vim: ts=8 sw=2 smarttab expandtab + +#include +#include +#include +#include + +#include "crimson/osd/ec_recovery_backend.h" +#include "crimson/osd/pg.h" +#include "crimson/osd/pg_backend.h" +#include "msg/Message.h" +#include "osd/osd_types_fmt.h" + +namespace { + seastar::logger& logger() { + return crimson::get_logger(ceph_subsys_osd); + } +} + diff --git a/src/crimson/osd/ec_recovery_backend.h b/src/crimson/osd/ec_recovery_backend.h new file mode 100644 index 000000000000..2abac2ed03f1 --- /dev/null +++ b/src/crimson/osd/ec_recovery_backend.h @@ -0,0 +1,49 @@ +// -*- mode:C++; tab-width:8; c-basic-offset:2; indent-tabs-mode:t -*- +// vim: ts=8 sw=2 smarttab + +#pragma once + +#include + +#include "crimson/common/type_helpers.h" +#include "crimson/os/futurized_store.h" +#include "crimson/os/futurized_collection.h" +#include "crimson/osd/object_context.h" +#include "crimson/osd/pg_interval_interrupt_condition.h" +#include "crimson/osd/recovery_backend.h" +#include "crimson/osd/shard_services.h" + + +#include "messages/MOSDPGBackfill.h" +#include "messages/MOSDPGBackfillRemove.h" +#include "messages/MOSDPGScan.h" +#include "osd/recovery_types.h" +#include "osd/osd_types.h" + +namespace crimson::osd{ + class PG; +} + +class PGBackend; + +class ECRecoveryBackend : public RecoveryBackend { +public: + ECRecoveryBackend(crimson::osd::PG& pg, + crimson::osd::ShardServices& shard_services, + crimson::os::CollectionRef coll, + PGBackend* backend) + : RecoveryBackend(pg, shard_services, coll, backend) + {} + + interruptible_future<> handle_recovery_op( + Ref m, + crimson::net::ConnectionXcoreRef conn) final; + + interruptible_future<> recover_object( + const hobject_t& soid, + eversion_t need) final; + + seastar::future<> on_stop() final { + return seastar::now(); + } +};