]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
crimson/osd: bring boilerplate for LTTng-based external tracking backend
authorRadosław Zarzyński <rzarzyns@redhat.com>
Wed, 6 Apr 2022 13:50:09 +0000 (15:50 +0200)
committerRadosław Zarzyński <rzarzyns@redhat.com>
Thu, 5 May 2022 02:06:31 +0000 (04:06 +0200)
At the moment it's mostly for verification & demonstration purposes.

Signed-off-by: Radosław Zarzyński <rzarzyns@redhat.com>
src/crimson/osd/osd_operation_external_tracking.h [new file with mode: 0644]
src/crimson/osd/osd_operations/client_request.cc
src/crimson/osd/osd_operations/client_request.h

diff --git a/src/crimson/osd/osd_operation_external_tracking.h b/src/crimson/osd/osd_operation_external_tracking.h
new file mode 100644 (file)
index 0000000..9a2f88b
--- /dev/null
@@ -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<osd::ClientRequest> {
+  static std::tuple<osd::LttngBackend/*, HistoricBackend*/> get_backends() {
+    return { {} };
+  }
+};
+
+template <>
+struct EventBackendRegistry<osd::PeeringEvent> {
+  static std::tuple<> get_backends() {
+    return {/* no extenral backends */};
+  }
+};
+
+template <>
+struct EventBackendRegistry<osd::RepRequest> {
+  static std::tuple<> get_backends() {
+    return {/* no extenral backends */};
+  }
+};
+
+template <>
+struct EventBackendRegistry<osd::RecoverySubRequest> {
+  static std::tuple<> get_backends() {
+    return {/* no extenral backends */};
+  }
+};
+
+} // namespace crimson
index 229a727c373968306dec1402012552e546aaffae..532a1567de7d345b95c6f2ee1c332c70c0aca355 100644 (file)
@@ -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"
 
index a0e1f7acefeea643547e9750308faf766a312f63..c776c89d4c00a89f8329a50d07eb994974800b17 100644 (file)
@@ -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;