From: Radosław Zarzyński Date: Wed, 6 Apr 2022 13:50:09 +0000 (+0200) Subject: crimson/osd: bring boilerplate for LTTng-based external tracking backend X-Git-Tag: v18.0.0~947^2~35 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=cd46a273936808bce84e5c8fdabb3c74aed1b23a;p=ceph.git crimson/osd: bring boilerplate for LTTng-based external tracking backend At the moment it's mostly for verification & demonstration purposes. Signed-off-by: Radosław Zarzyński --- diff --git a/src/crimson/osd/osd_operation_external_tracking.h b/src/crimson/osd/osd_operation_external_tracking.h new file mode 100644 index 0000000000000..9a2f88b783db9 --- /dev/null +++ b/src/crimson/osd/osd_operation_external_tracking.h @@ -0,0 +1,63 @@ +// -*- mode:C++; tab-width:8; c-basic-offset:2; indent-tabs-mode:t -*- +// vim: ts=8 sw=2 smarttab + +#pragma once + +#include "crimson/osd/osdmap_gate.h" +#include "crimson/osd/osd_operations/background_recovery.h" +#include "crimson/osd/osd_operations/client_request.h" +#include "crimson/osd/osd_operations/peering_event.h" +#include "crimson/osd/osd_operations/recovery_subrequest.h" +#include "crimson/osd/osd_operations/replicated_request.h" + +namespace crimson::osd { + +// Just the boilerplate currently. Implementing +struct LttngBackend + : ClientRequest::ConnectionPipeline::AwaitMap::BlockingEvent::Backend, + OSD_OSDMapGate::OSDMapBlocker::BlockingEvent::Backend +{ + void handle(ClientRequest::ConnectionPipeline::AwaitMap::BlockingEvent& ev, + const Operation& op, + const ClientRequest::ConnectionPipeline::AwaitMap& blocker) override { + } + + void handle(OSD_OSDMapGate::OSDMapBlocker::BlockingEvent&, + const Operation&, + const OSD_OSDMapGate::OSDMapBlocker&) override { + } +}; + +} // namespace crimson::osd + +namespace crimson { + +template <> +struct EventBackendRegistry { + static std::tuple get_backends() { + return { {} }; + } +}; + +template <> +struct EventBackendRegistry { + static std::tuple<> get_backends() { + return {/* no extenral backends */}; + } +}; + +template <> +struct EventBackendRegistry { + static std::tuple<> get_backends() { + return {/* no extenral backends */}; + } +}; + +template <> +struct EventBackendRegistry { + static std::tuple<> get_backends() { + return {/* no extenral backends */}; + } +}; + +} // namespace crimson diff --git a/src/crimson/osd/osd_operations/client_request.cc b/src/crimson/osd/osd_operations/client_request.cc index 229a727c37396..532a1567de7d3 100644 --- a/src/crimson/osd/osd_operations/client_request.cc +++ b/src/crimson/osd/osd_operations/client_request.cc @@ -11,6 +11,7 @@ #include "crimson/osd/osd.h" #include "common/Formatter.h" #include "crimson/osd/osd_operation_sequencer.h" +#include "crimson/osd/osd_operation_external_tracking.h" #include "crimson/osd/osd_operations/client_request.h" #include "crimson/osd/osd_connection_priv.h" diff --git a/src/crimson/osd/osd_operations/client_request.h b/src/crimson/osd/osd_operations/client_request.h index a0e1f7acefeea..c776c89d4c00a 100644 --- a/src/crimson/osd/osd_operations/client_request.h +++ b/src/crimson/osd/osd_operations/client_request.h @@ -37,6 +37,7 @@ public: } get_pg; friend class ClientRequest; + friend class LttngBackend; }; class PGPipeline : public CommonPGPipeline { @@ -50,6 +51,7 @@ public: static constexpr auto type_name = "ClientRequest::PGPipeline::send_reply"; } send_reply; friend class ClientRequest; + friend class LttngBackend; }; static constexpr OperationTypeCode type = OperationTypeCode::client_request;